diff --git a/LFP_Manager.sln b/LFP_Manager.sln
new file mode 100644
index 0000000..a81c675
--- /dev/null
+++ b/LFP_Manager.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.5.33516.290
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LFP_Manager_SB", "LFP_Manager\LFP_Manager_SB.csproj", "{BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {81A464DF-E944-44BF-80EE-714CAE6FBEDB}
+ EndGlobalSection
+EndGlobal
diff --git a/LFP_Manager/AMO_LOGO.ico b/LFP_Manager/AMO_LOGO.ico
new file mode 100644
index 0000000..a18b5d2
Binary files /dev/null and b/LFP_Manager/AMO_LOGO.ico differ
diff --git a/LFP_Manager/Controls/UcAntiTheftControl.Designer.cs b/LFP_Manager/Controls/UcAntiTheftControl.Designer.cs
new file mode 100644
index 0000000..08eeb20
--- /dev/null
+++ b/LFP_Manager/Controls/UcAntiTheftControl.Designer.cs
@@ -0,0 +1,1026 @@
+namespace LFP_Manager.Controls
+{
+ partial class UcAntiTheftControl
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.LcMain = new DevExpress.XtraLayout.LayoutControl();
+ this.BtnGyroState = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnFuncSw = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnGyroPolSel = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnGyroZAxisSet = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnGyroYAxisSet = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnGyroXAxisSet = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnATCommFuncSwSet = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnATCommTimeoutSet = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnGyroUnlock = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnCommUnlock = new DevExpress.XtraEditors.SimpleButton();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem14 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem18 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem19 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem20 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem21 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem25 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem26 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.TmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.TeGyroZAxisNew = new DevExpress.XtraEditors.TextEdit();
+ this.TeGyroYAxisNew = new DevExpress.XtraEditors.TextEdit();
+ this.TeGyroXAxisNew = new DevExpress.XtraEditors.TextEdit();
+ this.TeGyroState = new DevExpress.XtraEditors.TextEdit();
+ this.TeGyroFunctionSwitch = new DevExpress.XtraEditors.TextEdit();
+ this.TeGyroPolSel = new DevExpress.XtraEditors.TextEdit();
+ this.TeGyroZAxis = new DevExpress.XtraEditors.TextEdit();
+ this.TeGyroYAxis = new DevExpress.XtraEditors.TextEdit();
+ this.TeGyroXAxis = new DevExpress.XtraEditors.TextEdit();
+ this.TeFunctionSwitch = new DevExpress.XtraEditors.TextEdit();
+ this.TeTimeOutSet = new DevExpress.XtraEditors.TextEdit();
+ this.TeTimeOutSetNew = new DevExpress.XtraEditors.TextEdit();
+ this.TeFunctionSwitchNew = new DevExpress.XtraEditors.TextEdit();
+ this.TeGyroPolSelNew = new DevExpress.XtraEditors.TextEdit();
+ this.TeGyroFunctionSwitchNew = new DevExpress.XtraEditors.TextEdit();
+ this.TeGyroStateNew = new DevExpress.XtraEditors.TextEdit();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem15 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem16 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem17 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem22 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem23 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem24 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.LcMain)).BeginInit();
+ this.LcMain.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem18)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem21)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem25)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem26)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroZAxisNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroYAxisNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroXAxisNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroState.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroFunctionSwitch.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroPolSel.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroZAxis.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroYAxis.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroXAxis.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeFunctionSwitch.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeTimeOutSet.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeTimeOutSetNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeFunctionSwitchNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroPolSelNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroFunctionSwitchNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroStateNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem17)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem23)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem24)).BeginInit();
+ this.SuspendLayout();
+ //
+ // LcMain
+ //
+ this.LcMain.Controls.Add(this.BtnGyroState);
+ this.LcMain.Controls.Add(this.BtnFuncSw);
+ this.LcMain.Controls.Add(this.BtnGyroPolSel);
+ this.LcMain.Controls.Add(this.BtnGyroZAxisSet);
+ this.LcMain.Controls.Add(this.BtnGyroYAxisSet);
+ this.LcMain.Controls.Add(this.BtnGyroXAxisSet);
+ this.LcMain.Controls.Add(this.TeGyroZAxisNew);
+ this.LcMain.Controls.Add(this.TeGyroYAxisNew);
+ this.LcMain.Controls.Add(this.TeGyroXAxisNew);
+ this.LcMain.Controls.Add(this.BtnATCommFuncSwSet);
+ this.LcMain.Controls.Add(this.BtnATCommTimeoutSet);
+ this.LcMain.Controls.Add(this.BtnGyroUnlock);
+ this.LcMain.Controls.Add(this.TeGyroState);
+ this.LcMain.Controls.Add(this.TeGyroFunctionSwitch);
+ this.LcMain.Controls.Add(this.TeGyroPolSel);
+ this.LcMain.Controls.Add(this.TeGyroZAxis);
+ this.LcMain.Controls.Add(this.TeGyroYAxis);
+ this.LcMain.Controls.Add(this.TeGyroXAxis);
+ this.LcMain.Controls.Add(this.BtnCommUnlock);
+ this.LcMain.Controls.Add(this.TeFunctionSwitch);
+ this.LcMain.Controls.Add(this.TeTimeOutSet);
+ this.LcMain.Controls.Add(this.TeTimeOutSetNew);
+ this.LcMain.Controls.Add(this.TeFunctionSwitchNew);
+ this.LcMain.Controls.Add(this.TeGyroPolSelNew);
+ this.LcMain.Controls.Add(this.TeGyroFunctionSwitchNew);
+ this.LcMain.Controls.Add(this.TeGyroStateNew);
+ this.LcMain.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.LcMain.Location = new System.Drawing.Point(0, 0);
+ this.LcMain.Name = "LcMain";
+ this.LcMain.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1097, 193, 650, 400);
+ this.LcMain.Root = this.Root;
+ this.LcMain.Size = new System.Drawing.Size(850, 190);
+ this.LcMain.TabIndex = 0;
+ this.LcMain.Text = "layoutControl1";
+ //
+ // BtnGyroState
+ //
+ this.BtnGyroState.Enabled = false;
+ this.BtnGyroState.Location = new System.Drawing.Point(792, 84);
+ this.BtnGyroState.Name = "BtnGyroState";
+ this.BtnGyroState.Size = new System.Drawing.Size(51, 24);
+ this.BtnGyroState.StyleController = this.LcMain;
+ this.BtnGyroState.TabIndex = 26;
+ this.BtnGyroState.Text = "Set";
+ this.BtnGyroState.Click += new System.EventHandler(this.BtnGyroState_Click);
+ //
+ // BtnFuncSw
+ //
+ this.BtnFuncSw.Location = new System.Drawing.Point(792, 56);
+ this.BtnFuncSw.Name = "BtnFuncSw";
+ this.BtnFuncSw.Size = new System.Drawing.Size(51, 24);
+ this.BtnFuncSw.StyleController = this.LcMain;
+ this.BtnFuncSw.TabIndex = 25;
+ this.BtnFuncSw.Text = "Set";
+ this.BtnFuncSw.Click += new System.EventHandler(this.BtnFuncSw_Click);
+ //
+ // BtnGyroPolSel
+ //
+ this.BtnGyroPolSel.Location = new System.Drawing.Point(791, 28);
+ this.BtnGyroPolSel.Name = "BtnGyroPolSel";
+ this.BtnGyroPolSel.Size = new System.Drawing.Size(52, 24);
+ this.BtnGyroPolSel.StyleController = this.LcMain;
+ this.BtnGyroPolSel.TabIndex = 24;
+ this.BtnGyroPolSel.Text = "Set";
+ this.BtnGyroPolSel.Click += new System.EventHandler(this.BtnGyroPolSel_Click);
+ //
+ // BtnGyroZAxisSet
+ //
+ this.BtnGyroZAxisSet.Enabled = false;
+ this.BtnGyroZAxisSet.Location = new System.Drawing.Point(492, 84);
+ this.BtnGyroZAxisSet.Name = "BtnGyroZAxisSet";
+ this.BtnGyroZAxisSet.Size = new System.Drawing.Size(56, 24);
+ this.BtnGyroZAxisSet.StyleController = this.LcMain;
+ this.BtnGyroZAxisSet.TabIndex = 23;
+ this.BtnGyroZAxisSet.Text = "Set";
+ this.BtnGyroZAxisSet.Click += new System.EventHandler(this.BtnGyroZAxisSet_Click);
+ //
+ // BtnGyroYAxisSet
+ //
+ this.BtnGyroYAxisSet.Enabled = false;
+ this.BtnGyroYAxisSet.Location = new System.Drawing.Point(492, 56);
+ this.BtnGyroYAxisSet.Name = "BtnGyroYAxisSet";
+ this.BtnGyroYAxisSet.Size = new System.Drawing.Size(56, 24);
+ this.BtnGyroYAxisSet.StyleController = this.LcMain;
+ this.BtnGyroYAxisSet.TabIndex = 22;
+ this.BtnGyroYAxisSet.Text = "Set";
+ this.BtnGyroYAxisSet.Click += new System.EventHandler(this.BtnGyroYAxisSet_Click);
+ //
+ // BtnGyroXAxisSet
+ //
+ this.BtnGyroXAxisSet.Enabled = false;
+ this.BtnGyroXAxisSet.Location = new System.Drawing.Point(492, 28);
+ this.BtnGyroXAxisSet.Name = "BtnGyroXAxisSet";
+ this.BtnGyroXAxisSet.Size = new System.Drawing.Size(56, 24);
+ this.BtnGyroXAxisSet.StyleController = this.LcMain;
+ this.BtnGyroXAxisSet.TabIndex = 21;
+ this.BtnGyroXAxisSet.Text = "Set";
+ this.BtnGyroXAxisSet.Click += new System.EventHandler(this.BtnGyroXAxisSet_Click);
+ //
+ // BtnATCommFuncSwSet
+ //
+ this.BtnATCommFuncSwSet.Location = new System.Drawing.Point(267, 56);
+ this.BtnATCommFuncSwSet.Name = "BtnATCommFuncSwSet";
+ this.BtnATCommFuncSwSet.Size = new System.Drawing.Size(56, 24);
+ this.BtnATCommFuncSwSet.StyleController = this.LcMain;
+ this.BtnATCommFuncSwSet.TabIndex = 17;
+ this.BtnATCommFuncSwSet.Text = "Set";
+ this.BtnATCommFuncSwSet.Click += new System.EventHandler(this.BtnATCommFuncSwSet_Click);
+ //
+ // BtnATCommTimeoutSet
+ //
+ this.BtnATCommTimeoutSet.Location = new System.Drawing.Point(267, 28);
+ this.BtnATCommTimeoutSet.Name = "BtnATCommTimeoutSet";
+ this.BtnATCommTimeoutSet.Size = new System.Drawing.Size(56, 24);
+ this.BtnATCommTimeoutSet.StyleController = this.LcMain;
+ this.BtnATCommTimeoutSet.TabIndex = 16;
+ this.BtnATCommTimeoutSet.Text = "Set";
+ this.BtnATCommTimeoutSet.Click += new System.EventHandler(this.BtnATCommTimeoutSet_Click);
+ //
+ // BtnGyroUnlock
+ //
+ this.BtnGyroUnlock.Location = new System.Drawing.Point(335, 155);
+ this.BtnGyroUnlock.Name = "BtnGyroUnlock";
+ this.BtnGyroUnlock.Size = new System.Drawing.Size(508, 28);
+ this.BtnGyroUnlock.StyleController = this.LcMain;
+ this.BtnGyroUnlock.TabIndex = 15;
+ this.BtnGyroUnlock.Text = "Anti-Theft Unlock";
+ this.BtnGyroUnlock.Click += new System.EventHandler(this.BtnGyroUnlock_Click);
+ //
+ // BtnCommUnlock
+ //
+ this.BtnCommUnlock.Location = new System.Drawing.Point(7, 155);
+ this.BtnCommUnlock.Name = "BtnCommUnlock";
+ this.BtnCommUnlock.Size = new System.Drawing.Size(316, 28);
+ this.BtnCommUnlock.StyleController = this.LcMain;
+ this.BtnCommUnlock.TabIndex = 8;
+ this.BtnCommUnlock.Text = "Anti-Theft Unlock";
+ this.BtnCommUnlock.Click += new System.EventHandler(this.BtnCommUnlock_Click);
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlGroup1,
+ this.layoutControlGroup2});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(850, 190);
+ this.Root.TextVisible = false;
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem3,
+ this.layoutControlItem1,
+ this.emptySpaceItem1,
+ this.layoutControlItem2,
+ this.layoutControlItem11,
+ this.layoutControlItem12,
+ this.layoutControlItem13,
+ this.layoutControlItem14});
+ this.layoutControlGroup1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(328, 188);
+ this.layoutControlGroup1.Text = "Anti-theft (Comm.)";
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 56);
+ this.emptySpaceItem1.MaxSize = new System.Drawing.Size(320, 0);
+ this.emptySpaceItem1.MinSize = new System.Drawing.Size(320, 24);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(320, 71);
+ this.emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.BtnCommUnlock;
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 127);
+ this.layoutControlItem2.MaxSize = new System.Drawing.Size(0, 32);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(89, 32);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(320, 32);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // layoutControlItem13
+ //
+ this.layoutControlItem13.Control = this.BtnATCommTimeoutSet;
+ this.layoutControlItem13.CustomizationFormText = " Btn";
+ this.layoutControlItem13.Location = new System.Drawing.Point(260, 0);
+ this.layoutControlItem13.MinSize = new System.Drawing.Size(60, 26);
+ this.layoutControlItem13.Name = "layoutControlItem13";
+ this.layoutControlItem13.Size = new System.Drawing.Size(60, 28);
+ this.layoutControlItem13.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem13.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem13.TextVisible = false;
+ //
+ // layoutControlItem14
+ //
+ this.layoutControlItem14.Control = this.BtnATCommFuncSwSet;
+ this.layoutControlItem14.CustomizationFormText = " Btn";
+ this.layoutControlItem14.Location = new System.Drawing.Point(260, 28);
+ this.layoutControlItem14.MinSize = new System.Drawing.Size(60, 26);
+ this.layoutControlItem14.Name = "layoutControlItem14";
+ this.layoutControlItem14.Size = new System.Drawing.Size(60, 28);
+ this.layoutControlItem14.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem14.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem14.TextVisible = false;
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem4,
+ this.layoutControlItem7,
+ this.layoutControlItem5,
+ this.layoutControlItem6,
+ this.emptySpaceItem2,
+ this.layoutControlItem8,
+ this.layoutControlItem9,
+ this.layoutControlItem10,
+ this.layoutControlItem15,
+ this.layoutControlItem16,
+ this.layoutControlItem17,
+ this.layoutControlItem18,
+ this.layoutControlItem19,
+ this.layoutControlItem20,
+ this.layoutControlItem21,
+ this.layoutControlItem22,
+ this.layoutControlItem23,
+ this.layoutControlItem24,
+ this.layoutControlItem25,
+ this.layoutControlItem26});
+ this.layoutControlGroup2.Location = new System.Drawing.Point(328, 0);
+ this.layoutControlGroup2.Name = "layoutControlGroup2";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(520, 188);
+ this.layoutControlGroup2.Text = "Anti-theft (GyroScope)";
+ //
+ // emptySpaceItem2
+ //
+ this.emptySpaceItem2.AllowHotTrack = false;
+ this.emptySpaceItem2.Location = new System.Drawing.Point(0, 84);
+ this.emptySpaceItem2.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem2.Name = "emptySpaceItem2";
+ this.emptySpaceItem2.Size = new System.Drawing.Size(512, 43);
+ this.emptySpaceItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem10
+ //
+ this.layoutControlItem10.Control = this.BtnGyroUnlock;
+ this.layoutControlItem10.Location = new System.Drawing.Point(0, 127);
+ this.layoutControlItem10.MaxSize = new System.Drawing.Size(0, 32);
+ this.layoutControlItem10.MinSize = new System.Drawing.Size(89, 32);
+ this.layoutControlItem10.Name = "layoutControlItem10";
+ this.layoutControlItem10.Size = new System.Drawing.Size(512, 32);
+ this.layoutControlItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem10.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem10.TextVisible = false;
+ //
+ // layoutControlItem18
+ //
+ this.layoutControlItem18.Control = this.BtnGyroXAxisSet;
+ this.layoutControlItem18.CustomizationFormText = " Btn";
+ this.layoutControlItem18.Location = new System.Drawing.Point(157, 0);
+ this.layoutControlItem18.MinSize = new System.Drawing.Size(60, 26);
+ this.layoutControlItem18.Name = "layoutControlItem18";
+ this.layoutControlItem18.Size = new System.Drawing.Size(60, 28);
+ this.layoutControlItem18.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem18.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem18.TextVisible = false;
+ //
+ // layoutControlItem19
+ //
+ this.layoutControlItem19.Control = this.BtnGyroYAxisSet;
+ this.layoutControlItem19.CustomizationFormText = " Btn";
+ this.layoutControlItem19.Location = new System.Drawing.Point(157, 28);
+ this.layoutControlItem19.MinSize = new System.Drawing.Size(60, 26);
+ this.layoutControlItem19.Name = "layoutControlItem19";
+ this.layoutControlItem19.Size = new System.Drawing.Size(60, 28);
+ this.layoutControlItem19.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem19.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem19.TextVisible = false;
+ //
+ // layoutControlItem20
+ //
+ this.layoutControlItem20.Control = this.BtnGyroZAxisSet;
+ this.layoutControlItem20.CustomizationFormText = " Btn";
+ this.layoutControlItem20.Location = new System.Drawing.Point(157, 56);
+ this.layoutControlItem20.MinSize = new System.Drawing.Size(60, 26);
+ this.layoutControlItem20.Name = "layoutControlItem20";
+ this.layoutControlItem20.Size = new System.Drawing.Size(60, 28);
+ this.layoutControlItem20.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem20.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem20.TextVisible = false;
+ //
+ // layoutControlItem21
+ //
+ this.layoutControlItem21.Control = this.BtnGyroPolSel;
+ this.layoutControlItem21.CustomizationFormText = " Btn";
+ this.layoutControlItem21.Location = new System.Drawing.Point(456, 0);
+ this.layoutControlItem21.MinSize = new System.Drawing.Size(55, 26);
+ this.layoutControlItem21.Name = "layoutControlItem21";
+ this.layoutControlItem21.Size = new System.Drawing.Size(56, 28);
+ this.layoutControlItem21.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem21.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem21.TextVisible = false;
+ //
+ // layoutControlItem25
+ //
+ this.layoutControlItem25.Control = this.BtnFuncSw;
+ this.layoutControlItem25.CustomizationFormText = " Btn";
+ this.layoutControlItem25.Location = new System.Drawing.Point(457, 28);
+ this.layoutControlItem25.MinSize = new System.Drawing.Size(55, 26);
+ this.layoutControlItem25.Name = "layoutControlItem25";
+ this.layoutControlItem25.Size = new System.Drawing.Size(55, 28);
+ this.layoutControlItem25.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem25.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem25.TextVisible = false;
+ //
+ // layoutControlItem26
+ //
+ this.layoutControlItem26.Control = this.BtnGyroState;
+ this.layoutControlItem26.CustomizationFormText = " Btn";
+ this.layoutControlItem26.Location = new System.Drawing.Point(457, 56);
+ this.layoutControlItem26.MinSize = new System.Drawing.Size(55, 26);
+ this.layoutControlItem26.Name = "layoutControlItem26";
+ this.layoutControlItem26.Size = new System.Drawing.Size(55, 28);
+ this.layoutControlItem26.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem26.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem26.TextVisible = false;
+ //
+ // TmrDisplay
+ //
+ this.TmrDisplay.Interval = 500;
+ this.TmrDisplay.Tick += new System.EventHandler(this.TmrDisplay_Tick);
+ //
+ // TeGyroZAxisNew
+ //
+ this.TeGyroZAxisNew.Location = new System.Drawing.Point(440, 84);
+ this.TeGyroZAxisNew.Name = "TeGyroZAxisNew";
+ this.TeGyroZAxisNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroZAxisNew.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroZAxisNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroZAxisNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroZAxisNew.Size = new System.Drawing.Size(48, 24);
+ this.TeGyroZAxisNew.StyleController = this.LcMain;
+ this.TeGyroZAxisNew.TabIndex = 20;
+ //
+ // TeGyroYAxisNew
+ //
+ this.TeGyroYAxisNew.Location = new System.Drawing.Point(440, 56);
+ this.TeGyroYAxisNew.Name = "TeGyroYAxisNew";
+ this.TeGyroYAxisNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroYAxisNew.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroYAxisNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroYAxisNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroYAxisNew.Size = new System.Drawing.Size(48, 24);
+ this.TeGyroYAxisNew.StyleController = this.LcMain;
+ this.TeGyroYAxisNew.TabIndex = 19;
+ //
+ // TeGyroXAxisNew
+ //
+ this.TeGyroXAxisNew.Location = new System.Drawing.Point(440, 28);
+ this.TeGyroXAxisNew.Name = "TeGyroXAxisNew";
+ this.TeGyroXAxisNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroXAxisNew.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroXAxisNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroXAxisNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroXAxisNew.Size = new System.Drawing.Size(48, 24);
+ this.TeGyroXAxisNew.StyleController = this.LcMain;
+ this.TeGyroXAxisNew.TabIndex = 18;
+ //
+ // TeGyroState
+ //
+ this.TeGyroState.Location = new System.Drawing.Point(693, 84);
+ this.TeGyroState.Name = "TeGyroState";
+ this.TeGyroState.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroState.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroState.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroState.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroState.Properties.ReadOnly = true;
+ this.TeGyroState.Size = new System.Drawing.Size(42, 24);
+ this.TeGyroState.StyleController = this.LcMain;
+ this.TeGyroState.TabIndex = 14;
+ //
+ // TeGyroFunctionSwitch
+ //
+ this.TeGyroFunctionSwitch.Location = new System.Drawing.Point(693, 56);
+ this.TeGyroFunctionSwitch.Name = "TeGyroFunctionSwitch";
+ this.TeGyroFunctionSwitch.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroFunctionSwitch.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroFunctionSwitch.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroFunctionSwitch.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroFunctionSwitch.Properties.ReadOnly = true;
+ this.TeGyroFunctionSwitch.Size = new System.Drawing.Size(42, 24);
+ this.TeGyroFunctionSwitch.StyleController = this.LcMain;
+ this.TeGyroFunctionSwitch.TabIndex = 13;
+ //
+ // TeGyroPolSel
+ //
+ this.TeGyroPolSel.Location = new System.Drawing.Point(693, 28);
+ this.TeGyroPolSel.Name = "TeGyroPolSel";
+ this.TeGyroPolSel.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroPolSel.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroPolSel.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroPolSel.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroPolSel.Properties.ReadOnly = true;
+ this.TeGyroPolSel.Size = new System.Drawing.Size(42, 24);
+ this.TeGyroPolSel.StyleController = this.LcMain;
+ this.TeGyroPolSel.TabIndex = 12;
+ //
+ // TeGyroZAxis
+ //
+ this.TeGyroZAxis.Location = new System.Drawing.Point(390, 84);
+ this.TeGyroZAxis.Name = "TeGyroZAxis";
+ this.TeGyroZAxis.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroZAxis.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroZAxis.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroZAxis.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroZAxis.Properties.ReadOnly = true;
+ this.TeGyroZAxis.Size = new System.Drawing.Size(46, 24);
+ this.TeGyroZAxis.StyleController = this.LcMain;
+ this.TeGyroZAxis.TabIndex = 11;
+ //
+ // TeGyroYAxis
+ //
+ this.TeGyroYAxis.Location = new System.Drawing.Point(390, 56);
+ this.TeGyroYAxis.Name = "TeGyroYAxis";
+ this.TeGyroYAxis.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroYAxis.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroYAxis.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroYAxis.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroYAxis.Properties.ReadOnly = true;
+ this.TeGyroYAxis.Size = new System.Drawing.Size(46, 24);
+ this.TeGyroYAxis.StyleController = this.LcMain;
+ this.TeGyroYAxis.TabIndex = 10;
+ //
+ // TeGyroXAxis
+ //
+ this.TeGyroXAxis.Location = new System.Drawing.Point(390, 28);
+ this.TeGyroXAxis.Name = "TeGyroXAxis";
+ this.TeGyroXAxis.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroXAxis.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroXAxis.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroXAxis.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroXAxis.Properties.ReadOnly = true;
+ this.TeGyroXAxis.Size = new System.Drawing.Size(46, 24);
+ this.TeGyroXAxis.StyleController = this.LcMain;
+ this.TeGyroXAxis.TabIndex = 9;
+ //
+ // TeFunctionSwitch
+ //
+ this.TeFunctionSwitch.Location = new System.Drawing.Point(117, 56);
+ this.TeFunctionSwitch.Name = "TeFunctionSwitch";
+ this.TeFunctionSwitch.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeFunctionSwitch.Properties.Appearance.Options.UseFont = true;
+ this.TeFunctionSwitch.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeFunctionSwitch.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeFunctionSwitch.Properties.ReadOnly = true;
+ this.TeFunctionSwitch.Size = new System.Drawing.Size(66, 24);
+ this.TeFunctionSwitch.StyleController = this.LcMain;
+ this.TeFunctionSwitch.TabIndex = 7;
+ //
+ // TeTimeOutSet
+ //
+ this.TeTimeOutSet.Location = new System.Drawing.Point(117, 28);
+ this.TeTimeOutSet.Name = "TeTimeOutSet";
+ this.TeTimeOutSet.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeTimeOutSet.Properties.Appearance.Options.UseFont = true;
+ this.TeTimeOutSet.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeTimeOutSet.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeTimeOutSet.Properties.ReadOnly = true;
+ this.TeTimeOutSet.Size = new System.Drawing.Size(66, 24);
+ this.TeTimeOutSet.StyleController = this.LcMain;
+ this.TeTimeOutSet.TabIndex = 6;
+ //
+ // TeTimeOutSetNew
+ //
+ this.TeTimeOutSetNew.Location = new System.Drawing.Point(187, 28);
+ this.TeTimeOutSetNew.Name = "TeTimeOutSetNew";
+ this.TeTimeOutSetNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeTimeOutSetNew.Properties.Appearance.Options.UseFont = true;
+ this.TeTimeOutSetNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeTimeOutSetNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeTimeOutSetNew.Size = new System.Drawing.Size(76, 24);
+ this.TeTimeOutSetNew.StyleController = this.LcMain;
+ this.TeTimeOutSetNew.TabIndex = 6;
+ //
+ // TeFunctionSwitchNew
+ //
+ this.TeFunctionSwitchNew.Location = new System.Drawing.Point(187, 56);
+ this.TeFunctionSwitchNew.Name = "TeFunctionSwitchNew";
+ this.TeFunctionSwitchNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeFunctionSwitchNew.Properties.Appearance.Options.UseFont = true;
+ this.TeFunctionSwitchNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeFunctionSwitchNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeFunctionSwitchNew.Size = new System.Drawing.Size(76, 24);
+ this.TeFunctionSwitchNew.StyleController = this.LcMain;
+ this.TeFunctionSwitchNew.TabIndex = 6;
+ //
+ // TeGyroPolSelNew
+ //
+ this.TeGyroPolSelNew.Location = new System.Drawing.Point(739, 28);
+ this.TeGyroPolSelNew.Name = "TeGyroPolSelNew";
+ this.TeGyroPolSelNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroPolSelNew.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroPolSelNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroPolSelNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroPolSelNew.Size = new System.Drawing.Size(48, 24);
+ this.TeGyroPolSelNew.StyleController = this.LcMain;
+ this.TeGyroPolSelNew.TabIndex = 12;
+ //
+ // TeGyroFunctionSwitchNew
+ //
+ this.TeGyroFunctionSwitchNew.Location = new System.Drawing.Point(739, 56);
+ this.TeGyroFunctionSwitchNew.Name = "TeGyroFunctionSwitchNew";
+ this.TeGyroFunctionSwitchNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroFunctionSwitchNew.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroFunctionSwitchNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroFunctionSwitchNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroFunctionSwitchNew.Size = new System.Drawing.Size(49, 24);
+ this.TeGyroFunctionSwitchNew.StyleController = this.LcMain;
+ this.TeGyroFunctionSwitchNew.TabIndex = 12;
+ //
+ // TeGyroStateNew
+ //
+ this.TeGyroStateNew.Location = new System.Drawing.Point(739, 84);
+ this.TeGyroStateNew.Name = "TeGyroStateNew";
+ this.TeGyroStateNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroStateNew.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroStateNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroStateNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroStateNew.Size = new System.Drawing.Size(49, 24);
+ this.TeGyroStateNew.StyleController = this.LcMain;
+ this.TeGyroStateNew.TabIndex = 12;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.TeTimeOutSet;
+ this.layoutControlItem3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem3.MaxSize = new System.Drawing.Size(0, 28);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(180, 28);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(180, 28);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.Text = " Time Out Setting";
+ this.layoutControlItem3.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(105, 14);
+ this.layoutControlItem3.TextToControlDistance = 5;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.TeFunctionSwitch;
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 28);
+ this.layoutControlItem1.MaxSize = new System.Drawing.Size(0, 28);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(164, 28);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(180, 28);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.Text = " Functional Switch";
+ this.layoutControlItem1.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(105, 20);
+ this.layoutControlItem1.TextToControlDistance = 5;
+ //
+ // layoutControlItem11
+ //
+ this.layoutControlItem11.Control = this.TeTimeOutSetNew;
+ this.layoutControlItem11.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem11.CustomizationFormText = " Set";
+ this.layoutControlItem11.Location = new System.Drawing.Point(180, 0);
+ this.layoutControlItem11.MinSize = new System.Drawing.Size(80, 28);
+ this.layoutControlItem11.Name = "layoutControlItem11";
+ this.layoutControlItem11.Size = new System.Drawing.Size(80, 28);
+ this.layoutControlItem11.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem11.Text = " Time Out Setting";
+ this.layoutControlItem11.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem11.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem11.TextToControlDistance = 0;
+ this.layoutControlItem11.TextVisible = false;
+ //
+ // layoutControlItem12
+ //
+ this.layoutControlItem12.Control = this.TeFunctionSwitchNew;
+ this.layoutControlItem12.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem12.CustomizationFormText = " Set";
+ this.layoutControlItem12.Location = new System.Drawing.Point(180, 28);
+ this.layoutControlItem12.MinSize = new System.Drawing.Size(54, 28);
+ this.layoutControlItem12.Name = "layoutControlItem12";
+ this.layoutControlItem12.Size = new System.Drawing.Size(80, 28);
+ this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem12.Text = " Time Out Setting";
+ this.layoutControlItem12.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem12.TextToControlDistance = 0;
+ this.layoutControlItem12.TextVisible = false;
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.TeGyroXAxis;
+ this.layoutControlItem4.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem4.MaxSize = new System.Drawing.Size(105, 28);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(105, 28);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(105, 28);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.Text = " X-Axis";
+ this.layoutControlItem4.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(50, 20);
+ this.layoutControlItem4.TextToControlDistance = 5;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.TeGyroPolSel;
+ this.layoutControlItem7.Location = new System.Drawing.Point(217, 0);
+ this.layoutControlItem7.MinSize = new System.Drawing.Size(187, 28);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(187, 28);
+ this.layoutControlItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem7.Text = " Gyro Policy Selection";
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(129, 14);
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.TeGyroYAxis;
+ this.layoutControlItem5.Location = new System.Drawing.Point(0, 28);
+ this.layoutControlItem5.MaxSize = new System.Drawing.Size(105, 28);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(105, 28);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(105, 28);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.Text = " Y-Axis";
+ this.layoutControlItem5.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(50, 20);
+ this.layoutControlItem5.TextToControlDistance = 5;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.TeGyroZAxis;
+ this.layoutControlItem6.Location = new System.Drawing.Point(0, 56);
+ this.layoutControlItem6.MaxSize = new System.Drawing.Size(105, 28);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(105, 28);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(105, 28);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.Text = " Z-Axis";
+ this.layoutControlItem6.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(50, 20);
+ this.layoutControlItem6.TextToControlDistance = 5;
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.TeGyroFunctionSwitch;
+ this.layoutControlItem8.Location = new System.Drawing.Point(217, 28);
+ this.layoutControlItem8.MinSize = new System.Drawing.Size(187, 28);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(187, 28);
+ this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem8.Text = " Gyro Functional Switch";
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(129, 14);
+ //
+ // layoutControlItem9
+ //
+ this.layoutControlItem9.Control = this.TeGyroState;
+ this.layoutControlItem9.Location = new System.Drawing.Point(217, 56);
+ this.layoutControlItem9.MinSize = new System.Drawing.Size(187, 28);
+ this.layoutControlItem9.Name = "layoutControlItem9";
+ this.layoutControlItem9.Size = new System.Drawing.Size(187, 28);
+ this.layoutControlItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem9.Text = " Gyro State";
+ this.layoutControlItem9.TextSize = new System.Drawing.Size(129, 14);
+ //
+ // layoutControlItem15
+ //
+ this.layoutControlItem15.Control = this.TeGyroXAxisNew;
+ this.layoutControlItem15.CustomizationFormText = " Set";
+ this.layoutControlItem15.Location = new System.Drawing.Point(105, 0);
+ this.layoutControlItem15.MaxSize = new System.Drawing.Size(52, 0);
+ this.layoutControlItem15.MinSize = new System.Drawing.Size(52, 28);
+ this.layoutControlItem15.Name = "layoutControlItem15";
+ this.layoutControlItem15.Size = new System.Drawing.Size(52, 28);
+ this.layoutControlItem15.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem15.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem15.TextVisible = false;
+ //
+ // layoutControlItem16
+ //
+ this.layoutControlItem16.Control = this.TeGyroYAxisNew;
+ this.layoutControlItem16.CustomizationFormText = " Set";
+ this.layoutControlItem16.Location = new System.Drawing.Point(105, 28);
+ this.layoutControlItem16.MaxSize = new System.Drawing.Size(52, 0);
+ this.layoutControlItem16.MinSize = new System.Drawing.Size(52, 28);
+ this.layoutControlItem16.Name = "layoutControlItem16";
+ this.layoutControlItem16.Size = new System.Drawing.Size(52, 28);
+ this.layoutControlItem16.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem16.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem16.TextVisible = false;
+ //
+ // layoutControlItem17
+ //
+ this.layoutControlItem17.Control = this.TeGyroZAxisNew;
+ this.layoutControlItem17.CustomizationFormText = " Set";
+ this.layoutControlItem17.Location = new System.Drawing.Point(105, 56);
+ this.layoutControlItem17.MaxSize = new System.Drawing.Size(52, 0);
+ this.layoutControlItem17.MinSize = new System.Drawing.Size(52, 28);
+ this.layoutControlItem17.Name = "layoutControlItem17";
+ this.layoutControlItem17.Size = new System.Drawing.Size(52, 28);
+ this.layoutControlItem17.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem17.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem17.TextVisible = false;
+ //
+ // layoutControlItem22
+ //
+ this.layoutControlItem22.Control = this.TeGyroPolSelNew;
+ this.layoutControlItem22.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem22.CustomizationFormText = " Set";
+ this.layoutControlItem22.Location = new System.Drawing.Point(404, 0);
+ this.layoutControlItem22.MaxSize = new System.Drawing.Size(52, 0);
+ this.layoutControlItem22.MinSize = new System.Drawing.Size(52, 28);
+ this.layoutControlItem22.Name = "layoutControlItem22";
+ this.layoutControlItem22.Size = new System.Drawing.Size(52, 28);
+ this.layoutControlItem22.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem22.Text = " Gyro Policy Selection";
+ this.layoutControlItem22.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem22.TextVisible = false;
+ //
+ // layoutControlItem23
+ //
+ this.layoutControlItem23.Control = this.TeGyroFunctionSwitchNew;
+ this.layoutControlItem23.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem23.CustomizationFormText = " Set";
+ this.layoutControlItem23.Location = new System.Drawing.Point(404, 28);
+ this.layoutControlItem23.MinSize = new System.Drawing.Size(52, 28);
+ this.layoutControlItem23.Name = "layoutControlItem23";
+ this.layoutControlItem23.Size = new System.Drawing.Size(53, 28);
+ this.layoutControlItem23.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem23.Text = " Gyro Policy Selection";
+ this.layoutControlItem23.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem23.TextVisible = false;
+ //
+ // layoutControlItem24
+ //
+ this.layoutControlItem24.Control = this.TeGyroStateNew;
+ this.layoutControlItem24.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem24.CustomizationFormText = " Set";
+ this.layoutControlItem24.Location = new System.Drawing.Point(404, 56);
+ this.layoutControlItem24.MinSize = new System.Drawing.Size(52, 28);
+ this.layoutControlItem24.Name = "layoutControlItem24";
+ this.layoutControlItem24.Size = new System.Drawing.Size(53, 28);
+ this.layoutControlItem24.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem24.Text = " Gyro Policy Selection";
+ this.layoutControlItem24.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem24.TextVisible = false;
+ //
+ // UcAntiTheftControl
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.LcMain);
+ this.Name = "UcAntiTheftControl";
+ this.Size = new System.Drawing.Size(850, 190);
+ ((System.ComponentModel.ISupportInitialize)(this.LcMain)).EndInit();
+ this.LcMain.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem18)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem21)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem25)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem26)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroZAxisNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroYAxisNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroXAxisNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroState.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroFunctionSwitch.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroPolSel.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroZAxis.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroYAxis.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroXAxis.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeFunctionSwitch.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeTimeOutSet.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeTimeOutSetNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeFunctionSwitchNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroPolSelNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroFunctionSwitchNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroStateNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem17)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem23)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem24)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl LcMain;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraEditors.TextEdit TeTimeOutSet;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraEditors.SimpleButton BtnCommUnlock;
+ private DevExpress.XtraEditors.TextEdit TeFunctionSwitch;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraEditors.SimpleButton BtnGyroUnlock;
+ private DevExpress.XtraEditors.TextEdit TeGyroState;
+ private DevExpress.XtraEditors.TextEdit TeGyroFunctionSwitch;
+ private DevExpress.XtraEditors.TextEdit TeGyroPolSel;
+ private DevExpress.XtraEditors.TextEdit TeGyroZAxis;
+ private DevExpress.XtraEditors.TextEdit TeGyroYAxis;
+ private DevExpress.XtraEditors.TextEdit TeGyroXAxis;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
+ private System.Windows.Forms.Timer TmrDisplay;
+ private DevExpress.XtraEditors.SimpleButton BtnATCommFuncSwSet;
+ private DevExpress.XtraEditors.SimpleButton BtnATCommTimeoutSet;
+ private DevExpress.XtraEditors.TextEdit TeTimeOutSetNew;
+ private DevExpress.XtraEditors.TextEdit TeFunctionSwitchNew;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem14;
+ private DevExpress.XtraEditors.TextEdit TeGyroZAxisNew;
+ private DevExpress.XtraEditors.TextEdit TeGyroYAxisNew;
+ private DevExpress.XtraEditors.TextEdit TeGyroXAxisNew;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem15;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem16;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem17;
+ private DevExpress.XtraEditors.SimpleButton BtnGyroZAxisSet;
+ private DevExpress.XtraEditors.SimpleButton BtnGyroYAxisSet;
+ private DevExpress.XtraEditors.SimpleButton BtnGyroXAxisSet;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem18;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem19;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem20;
+ private DevExpress.XtraEditors.SimpleButton BtnGyroPolSel;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem21;
+ private DevExpress.XtraEditors.TextEdit TeGyroPolSelNew;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem22;
+ private DevExpress.XtraEditors.TextEdit TeGyroFunctionSwitchNew;
+ private DevExpress.XtraEditors.TextEdit TeGyroStateNew;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem23;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem24;
+ private DevExpress.XtraEditors.SimpleButton BtnGyroState;
+ private DevExpress.XtraEditors.SimpleButton BtnFuncSw;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem25;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem26;
+ }
+}
diff --git a/LFP_Manager/Controls/UcAntiTheftControl.cs b/LFP_Manager/Controls/UcAntiTheftControl.cs
new file mode 100644
index 0000000..546abe2
--- /dev/null
+++ b/LFP_Manager/Controls/UcAntiTheftControl.cs
@@ -0,0 +1,289 @@
+using DevExpress.XtraEditors;
+using DevExpress.XtraRichEdit.Import.Doc;
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using static DevExpress.Xpo.Helpers.AssociatedCollectionCriteriaHelper;
+
+namespace LFP_Manager.Controls
+{
+ public partial class UcAntiTheftControl : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region DELEGATE
+
+ public delegate void setCalibUpdate(object sender);
+ public delegate void setCalibCommand(int mode, int index, int flag,
+ ref CsDeviceData.DeviceModuleData.DeviceParamData aParam,
+ ref CsDeviceData.DeviceModuleData.DeviceCalibration aCalib);
+ public delegate Int32 getBattData(int item, int cno);
+
+ #endregion
+
+ #region VARIABLES
+
+ private int SystemId = 0;
+ private const int CALC_INDEX = 6;
+
+ private CsDeviceData.DeviceModuleData.DeviceParamData rParam;
+
+ private CsDeviceData.DeviceModuleData.DeviceCalibration rCalib;
+ private CsDeviceData.DeviceModuleData.DeviceCalibration wCalib;
+
+ public event setCalibCommand OnCommand = null;
+ public event getBattData OnGetBattData = null;
+
+ public event SendDataUartEvent OnSendUartData = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+ public UcAntiTheftControl()
+ {
+ InitializeComponent();
+
+ TmrDisplay.Enabled = true;
+ }
+ #endregion
+
+ #region EXT EVENT FUNCTION
+
+ private void OnCommnadEvent(int mode, int index, int flag,
+ ref CsDeviceData.DeviceModuleData.DeviceParamData aParam,
+ ref CsDeviceData.DeviceModuleData.DeviceCalibration aCalib)
+ {
+ OnCommand?.Invoke(mode, index, flag, ref aParam, ref aCalib);
+ }
+
+ private Int32 OnGetBattDataEvent(int item, int cno)
+ {
+ Int32 result = 0;
+
+ if (OnGetBattData != null)
+ {
+ result = OnGetBattData(item, cno);
+ }
+ return result;
+ }
+
+ #endregion
+
+ #region PUBLIC FUCTIONS
+
+ public void UpdateData(int sId, CsDeviceData.DeviceModuleData.DeviceCalibration aCalib)
+ {
+ SystemId = sId;
+ rCalib = aCalib;
+ }
+
+ #endregion
+
+ #region DISPLAY DATA
+
+ private void DisplayAntiTheft()
+ {
+ if (rCalib != null)
+ {
+ TeTimeOutSet.Text = string.Format("{0}", rCalib.AntiTheftComm.TimeOut);
+ TeFunctionSwitch.Text = string.Format("{0}", rCalib.AntiTheftComm.FuncSwitch);
+
+ TeGyroXAxis.Text = string.Format("{0}", rCalib.AntiTheftGyro.XAxis);
+ TeGyroYAxis.Text = string.Format("{0}", rCalib.AntiTheftGyro.YAxis);
+ TeGyroZAxis.Text = string.Format("{0}", rCalib.AntiTheftGyro.ZAxis);
+
+ TeGyroPolSel.Text = string.Format("{0}", rCalib.AntiTheftGyro.GyroPolicySel);
+ TeGyroFunctionSwitch.Text = string.Format("{0}", rCalib.AntiTheftGyro.GyroFuncSwitch);
+ TeGyroState.Text = string.Format("{0}", rCalib.AntiTheftGyro.GyroState);
+ }
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+ private void BtnCommUnlock_Click(object sender, EventArgs e)
+ {
+ AntiTheftCommParamWrite(0x3001, 0);
+ }
+
+ private void BtnATCommTimeoutSet_Click(object sender, EventArgs e)
+ {
+ if (TeTimeOutSetNew.Text != "")
+ {
+ int tmp = Convert.ToInt32(TeTimeOutSetNew.Text);
+ AntiTheftCommParamWrite(0x3000, tmp);
+ }
+ }
+
+ private void BtnATCommFuncSwSet_Click(object sender, EventArgs e)
+ {
+ if (TeFunctionSwitchNew.Text != "")
+ {
+ int tmp = Convert.ToInt32(TeFunctionSwitchNew.Text);
+ AntiTheftCommParamWrite(0x3002, tmp);
+ }
+ }
+
+ private void BtnGyroUnlock_Click(object sender, EventArgs e)
+ {
+ GyroScopeParamWrite(0x4007, 1);
+ }
+
+ private void MultiDateWriteCmd(ushort addr, int data, int len)
+ {
+ byte[] crc;
+ int i = 0;
+ // Normal mode --> Bootloader mode
+ byte[] sdata = new byte[7 + 2 + 2];
+
+ sdata[i++] = (byte)SystemId; // Device ID
+ sdata[i++] = (byte)CsSerialCommFunctionDelta.PRESET_MULTI_REG; // Command
+ sdata[i++] = (byte)(addr >> 8); // Write Register Address MSB
+ sdata[i++] = (byte)(addr >> 0); // Write Register Address LSB
+ sdata[i++] = (byte)(1 >> 8); // Write Count of Register MSB
+ sdata[i++] = (byte)(1 >> 0); // Write Count of Register LSB
+ sdata[i++] = (byte)(1 * 2); // Byte Count - [2 * (Num of register)]
+
+ sdata[i++] = (byte)(data >> 8);
+ sdata[i++] = (byte)(data >> 0);
+
+ crc = CsSerialCommFunctionDelta.GetCRC(sdata, i);
+
+ sdata[i++] = crc[0]; // CRCH
+ sdata[i++] = crc[1]; // CRCL
+
+ OnSendUartData?.Invoke(addr, sdata, false, 1);
+ }
+
+ private void BtnGyroXAxisSet_Click(object sender, EventArgs e)
+ {
+ if (TeGyroXAxisNew.Text != "")
+ {
+ int tmp = Convert.ToInt32(TeGyroXAxisNew.Text);
+ wCalib = rCalib.DeepCopy();
+ wCalib.AntiTheftGyro.XAxis = tmp;
+ OnCommand?.Invoke(26, CALC_INDEX, 1, ref rParam, ref wCalib);
+ }
+ }
+
+ private void BtnGyroYAxisSet_Click(object sender, EventArgs e)
+ {
+ if (TeGyroYAxisNew.Text != "")
+ {
+ int tmp = Convert.ToInt32(TeGyroYAxisNew.Text);
+ wCalib = rCalib.DeepCopy();
+ wCalib.AntiTheftGyro.YAxis = tmp;
+ OnCommand?.Invoke(27, CALC_INDEX, 1, ref rParam, ref wCalib);
+ }
+ }
+
+ private void BtnGyroZAxisSet_Click(object sender, EventArgs e)
+ {
+ if (TeGyroZAxisNew.Text != "")
+ {
+ int tmp = Convert.ToInt32(TeGyroZAxisNew.Text);
+ wCalib = rCalib.DeepCopy();
+ wCalib.AntiTheftGyro.ZAxis = tmp;
+ OnCommand?.Invoke(28, CALC_INDEX, 1, ref rParam, ref wCalib);
+ }
+ }
+
+ private void GyroScopeParamWrite(ushort waddr, int data)
+ {
+ byte[] crc;
+ ushort raddr = 0x4000;
+ int i = 0;
+ // Normal mode --> Bootloader mode
+ byte[] sdata = new byte[11 + 2 + 2];
+
+ sdata[i++] = (byte)SystemId; // Device ID
+ sdata[i++] = (byte)CsSerialCommFunctionDelta.READ_WRITE_REG; // Command
+ sdata[i++] = (byte)(raddr >> 8); // Read Register Address MSB
+ sdata[i++] = (byte)(raddr >> 0); // Read Register Address LSB
+ sdata[i++] = (byte)(7 >> 8); // Read Count of Register MSB
+ sdata[i++] = (byte)(7 >> 0); // Read Count of Register LSB
+ sdata[i++] = (byte)(waddr >> 8); // Write Register Address MSB
+ sdata[i++] = (byte)(waddr >> 0); // Write Register Address LSB
+ sdata[i++] = (byte)(1 >> 8); // Write Count of Register MSB
+ sdata[i++] = (byte)(1 >> 0); // Write Count of Register LSB
+ sdata[i++] = (byte)(1 * 2); // Byte Count - [2 * (Num of register)]
+
+ sdata[i++] = (byte)(data >> 8);
+ sdata[i++] = (byte)(data >> 0);
+
+ crc = CsSerialCommFunctionDelta.GetCRC(sdata, i);
+
+ sdata[i++] = crc[1]; // CRCH
+ sdata[i++] = crc[0]; // CRCL
+
+ OnSendUartData?.Invoke((ushort)SystemId, sdata, false, 1);
+ }
+
+ private void AntiTheftCommParamWrite(ushort waddr, int data)
+ {
+ byte[] crc;
+ ushort raddr = 0x3000;
+ int i = 0;
+ // Normal mode --> Bootloader mode
+ byte[] sdata = new byte[11 + 2 + 2];
+
+ sdata[i++] = (byte)SystemId; // Device ID
+ sdata[i++] = (byte)CsSerialCommFunctionDelta.SPECIAL_REG_02; // Command
+ sdata[i++] = (byte)(raddr >> 8); // Read Register Address MSB
+ sdata[i++] = (byte)(raddr >> 0); // Read Register Address LSB
+ sdata[i++] = (byte)(3 >> 8); // Read Count of Register MSB
+ sdata[i++] = (byte)(3 >> 0); // Read Count of Register LSB
+ sdata[i++] = (byte)(waddr >> 8); // Write Register Address MSB
+ sdata[i++] = (byte)(waddr >> 0); // Write Register Address LSB
+ sdata[i++] = (byte)(1 >> 8); // Write Count of Register MSB
+ sdata[i++] = (byte)(1 >> 0); // Write Count of Register LSB
+ sdata[i++] = (byte)(1 * 2); // Byte Count - [2 * (Num of register)]
+
+ sdata[i++] = (byte)(data >> 8);
+ sdata[i++] = (byte)(data >> 0);
+
+ crc = CsSerialCommFunctionDelta.GetCRC(sdata, i);
+
+ sdata[i++] = crc[1]; // CRCH
+ sdata[i++] = crc[0]; // CRCL
+
+ OnSendUartData?.Invoke((ushort)SystemId, sdata, false, 1);
+ }
+
+ private void BtnGyroPolSel_Click(object sender, EventArgs e)
+ {
+ if (TeGyroPolSelNew.Text != "")
+ {
+ int tmp = Convert.ToInt32(TeGyroPolSelNew.Text);
+ GyroScopeParamWrite(0x4003, tmp);
+ }
+ }
+
+ private void BtnFuncSw_Click(object sender, EventArgs e)
+ {
+ if (TeGyroFunctionSwitchNew.Text != "")
+ {
+ int tmp = Convert.ToInt32(TeGyroFunctionSwitchNew.Text);
+ GyroScopeParamWrite(0x4004, tmp);
+ }
+ }
+
+ private void BtnGyroState_Click(object sender, EventArgs e)
+ {
+ }
+ #endregion
+
+ #region TIMER EVENT
+ private void TmrDisplay_Tick(object sender, EventArgs e)
+ {
+ DisplayAntiTheft();
+ }
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/UcAntiTheftControl.resx b/LFP_Manager/Controls/UcAntiTheftControl.resx
new file mode 100644
index 0000000..c9162a8
--- /dev/null
+++ b/LFP_Manager/Controls/UcAntiTheftControl.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/UcFaultAlarm.Designer.cs b/LFP_Manager/Controls/UcFaultAlarm.Designer.cs
new file mode 100644
index 0000000..d752071
--- /dev/null
+++ b/LFP_Manager/Controls/UcFaultAlarm.Designer.cs
@@ -0,0 +1,168 @@
+namespace LFP_Manager.Controls
+{
+ partial class UcFaultAlarm
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ DevExpress.XtraGauges.Core.Model.IndicatorState indicatorState1 = new DevExpress.XtraGauges.Core.Model.IndicatorState();
+ DevExpress.XtraGauges.Core.Model.IndicatorState indicatorState2 = new DevExpress.XtraGauges.Core.Model.IndicatorState();
+ DevExpress.XtraGauges.Core.Model.IndicatorState indicatorState3 = new DevExpress.XtraGauges.Core.Model.IndicatorState();
+ DevExpress.XtraGauges.Core.Model.IndicatorState indicatorState4 = new DevExpress.XtraGauges.Core.Model.IndicatorState();
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.gaugeFault = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.stateIndicatorGauge1 = new DevExpress.XtraGauges.Win.Gauges.State.StateIndicatorGauge();
+ this.IndicatorFault = new DevExpress.XtraGauges.Win.Gauges.State.StateIndicatorComponent();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.LbFaultName = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.stateIndicatorGauge1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.IndicatorFault)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.LbFaultName)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.gaugeFault);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(784, 122, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(354, 30);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // gaugeFault
+ //
+ this.gaugeFault.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.stateIndicatorGauge1});
+ this.gaugeFault.Location = new System.Drawing.Point(0, 0);
+ this.gaugeFault.Name = "gaugeFault";
+ this.gaugeFault.Size = new System.Drawing.Size(40, 30);
+ this.gaugeFault.TabIndex = 5;
+ //
+ // stateIndicatorGauge1
+ //
+ this.stateIndicatorGauge1.Bounds = new System.Drawing.Rectangle(6, 6, 28, 20);
+ this.stateIndicatorGauge1.Indicators.AddRange(new DevExpress.XtraGauges.Win.Gauges.State.StateIndicatorComponent[] {
+ this.IndicatorFault});
+ this.stateIndicatorGauge1.Name = "stateIndicatorGauge1";
+ //
+ // IndicatorFault
+ //
+ this.IndicatorFault.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(124F, 124F);
+ this.IndicatorFault.Name = "stateIndicatorComponent1";
+ this.IndicatorFault.Size = new System.Drawing.SizeF(200F, 200F);
+ this.IndicatorFault.StateIndex = 3;
+ indicatorState1.Name = "State1";
+ indicatorState1.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.ElectricLight1;
+ indicatorState2.Name = "State2";
+ indicatorState2.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.ElectricLight2;
+ indicatorState3.Name = "State3";
+ indicatorState3.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.ElectricLight3;
+ indicatorState4.Name = "State4";
+ indicatorState4.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.ElectricLight4;
+ this.IndicatorFault.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] {
+ indicatorState1,
+ indicatorState2,
+ indicatorState3,
+ indicatorState4});
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.LbFaultName,
+ this.layoutControlItem1});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.Root.Size = new System.Drawing.Size(354, 30);
+ this.Root.TextVisible = false;
+ //
+ // LbFaultName
+ //
+ this.LbFaultName.AllowHotTrack = false;
+ this.LbFaultName.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.LbFaultName.AppearanceItemCaption.Options.UseFont = true;
+ this.LbFaultName.Location = new System.Drawing.Point(40, 0);
+ this.LbFaultName.MaxSize = new System.Drawing.Size(0, 35);
+ this.LbFaultName.MinSize = new System.Drawing.Size(54, 30);
+ this.LbFaultName.Name = "LbFaultName";
+ this.LbFaultName.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.LbFaultName.Size = new System.Drawing.Size(314, 30);
+ this.LbFaultName.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.LbFaultName.Text = "Fault Name";
+ this.LbFaultName.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.LbFaultName.TextSize = new System.Drawing.Size(50, 20);
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.gaugeFault;
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.MaxSize = new System.Drawing.Size(40, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(40, 24);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.layoutControlItem1.Size = new System.Drawing.Size(40, 30);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // UcFaultAlarm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.Name = "UcFaultAlarm";
+ this.Size = new System.Drawing.Size(354, 30);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.stateIndicatorGauge1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.IndicatorFault)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.LbFaultName)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraLayout.SimpleLabelItem LbFaultName;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeFault;
+ private DevExpress.XtraGauges.Win.Gauges.State.StateIndicatorGauge stateIndicatorGauge1;
+ private DevExpress.XtraGauges.Win.Gauges.State.StateIndicatorComponent IndicatorFault;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ }
+}
diff --git a/LFP_Manager/Controls/UcFaultAlarm.cs b/LFP_Manager/Controls/UcFaultAlarm.cs
new file mode 100644
index 0000000..0b60690
--- /dev/null
+++ b/LFP_Manager/Controls/UcFaultAlarm.cs
@@ -0,0 +1,52 @@
+using DevExpress.XtraEditors;
+using DevExpress.XtraGauges.Win;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Security.Claims;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Controls
+{
+ public partial class UcFaultAlarm : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region VARIABLES
+ private int id = 0;
+ #endregion
+
+ #region CONSTRUCTOR
+ public UcFaultAlarm()
+ {
+ InitializeComponent();
+
+ gaugeFault.BackColor = SystemColors.Control;
+ gaugeFault.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
+ gaugeFault.LayoutPadding = new DevExpress.XtraGauges.Core.Base.Thickness(2, 2, 2, 2);
+ }
+ #endregion
+
+ #region PUBLIC METHODS
+ public void SetFaultName(int no, string nm)
+ {
+ id = no;
+ LbFaultName.Text = nm;
+ }
+ public void SetFault(int alarm)
+ {
+ IndicatorFault.StateIndex = alarm;
+ }
+ public void SetControlFlag(bool flag)
+ {
+ if (flag)
+ IndicatorFault.StateIndex = 3;
+ else
+ IndicatorFault.StateIndex = 0;
+ }
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/UcFaultAlarm.resx b/LFP_Manager/Controls/UcFaultAlarm.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/UcFaultAlarm.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/UcFaultAlarmGroup.Designer.cs b/LFP_Manager/Controls/UcFaultAlarmGroup.Designer.cs
new file mode 100644
index 0000000..143b9d0
--- /dev/null
+++ b/LFP_Manager/Controls/UcFaultAlarmGroup.Designer.cs
@@ -0,0 +1,455 @@
+namespace LFP_Manager.Controls
+{
+ partial class UcFaultAlarmGroup
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.ucFaultAlarm14 = new LFP_Manager.Controls.UcFaultAlarm();
+ this.ucFaultAlarm13 = new LFP_Manager.Controls.UcFaultAlarm();
+ this.ucFaultAlarm8 = new LFP_Manager.Controls.UcFaultAlarm();
+ this.ucFaultAlarm6 = new LFP_Manager.Controls.UcFaultAlarm();
+ this.ucFaultAlarm4 = new LFP_Manager.Controls.UcFaultAlarm();
+ this.ucFaultAlarm10 = new LFP_Manager.Controls.UcFaultAlarm();
+ this.ucFaultAlarm12 = new LFP_Manager.Controls.UcFaultAlarm();
+ this.ucFaultAlarm2 = new LFP_Manager.Controls.UcFaultAlarm();
+ this.ucFaultAlarm11 = new LFP_Manager.Controls.UcFaultAlarm();
+ this.ucFaultAlarm9 = new LFP_Manager.Controls.UcFaultAlarm();
+ this.ucFaultAlarm7 = new LFP_Manager.Controls.UcFaultAlarm();
+ this.ucFaultAlarm5 = new LFP_Manager.Controls.UcFaultAlarm();
+ this.ucFaultAlarm3 = new LFP_Manager.Controls.UcFaultAlarm();
+ this.ucFaultAlarm1 = new LFP_Manager.Controls.UcFaultAlarm();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem14 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.ucFaultAlarm14);
+ this.layoutControl1.Controls.Add(this.ucFaultAlarm13);
+ this.layoutControl1.Controls.Add(this.ucFaultAlarm8);
+ this.layoutControl1.Controls.Add(this.ucFaultAlarm6);
+ this.layoutControl1.Controls.Add(this.ucFaultAlarm4);
+ this.layoutControl1.Controls.Add(this.ucFaultAlarm10);
+ this.layoutControl1.Controls.Add(this.ucFaultAlarm12);
+ this.layoutControl1.Controls.Add(this.ucFaultAlarm2);
+ this.layoutControl1.Controls.Add(this.ucFaultAlarm11);
+ this.layoutControl1.Controls.Add(this.ucFaultAlarm9);
+ this.layoutControl1.Controls.Add(this.ucFaultAlarm7);
+ this.layoutControl1.Controls.Add(this.ucFaultAlarm5);
+ this.layoutControl1.Controls.Add(this.ucFaultAlarm3);
+ this.layoutControl1.Controls.Add(this.ucFaultAlarm1);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(443, 439, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(1080, 95);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlGroup1});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.Root.ShowInCustomizationForm = false;
+ this.Root.Size = new System.Drawing.Size(1080, 95);
+ this.Root.TextVisible = false;
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1,
+ this.layoutControlItem2,
+ this.layoutControlItem3,
+ this.layoutControlItem4,
+ this.layoutControlItem7,
+ this.layoutControlItem5,
+ this.layoutControlItem6,
+ this.layoutControlItem8,
+ this.layoutControlItem9,
+ this.layoutControlItem10,
+ this.layoutControlItem11,
+ this.layoutControlItem12,
+ this.layoutControlItem13,
+ this.layoutControlItem14});
+ this.layoutControlGroup1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(1080, 95);
+ this.layoutControlGroup1.Spacing = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.layoutControlGroup1.Text = "Fault Alarm";
+ //
+ // ucFaultAlarm14
+ //
+ this.ucFaultAlarm14.Location = new System.Drawing.Point(925, 60);
+ this.ucFaultAlarm14.Name = "ucFaultAlarm14";
+ this.ucFaultAlarm14.Size = new System.Drawing.Size(152, 32);
+ this.ucFaultAlarm14.TabIndex = 17;
+ //
+ // ucFaultAlarm13
+ //
+ this.ucFaultAlarm13.Location = new System.Drawing.Point(925, 24);
+ this.ucFaultAlarm13.Name = "ucFaultAlarm13";
+ this.ucFaultAlarm13.Size = new System.Drawing.Size(152, 32);
+ this.ucFaultAlarm13.TabIndex = 16;
+ //
+ // ucFaultAlarm8
+ //
+ this.ucFaultAlarm8.Location = new System.Drawing.Point(463, 60);
+ this.ucFaultAlarm8.Name = "ucFaultAlarm8";
+ this.ucFaultAlarm8.Size = new System.Drawing.Size(149, 32);
+ this.ucFaultAlarm8.TabIndex = 15;
+ //
+ // ucFaultAlarm6
+ //
+ this.ucFaultAlarm6.Location = new System.Drawing.Point(309, 60);
+ this.ucFaultAlarm6.Name = "ucFaultAlarm6";
+ this.ucFaultAlarm6.Size = new System.Drawing.Size(150, 32);
+ this.ucFaultAlarm6.TabIndex = 14;
+ //
+ // ucFaultAlarm4
+ //
+ this.ucFaultAlarm4.Location = new System.Drawing.Point(156, 60);
+ this.ucFaultAlarm4.Name = "ucFaultAlarm4";
+ this.ucFaultAlarm4.Size = new System.Drawing.Size(149, 32);
+ this.ucFaultAlarm4.TabIndex = 13;
+ //
+ // ucFaultAlarm10
+ //
+ this.ucFaultAlarm10.Location = new System.Drawing.Point(616, 60);
+ this.ucFaultAlarm10.Name = "ucFaultAlarm10";
+ this.ucFaultAlarm10.Size = new System.Drawing.Size(152, 32);
+ this.ucFaultAlarm10.TabIndex = 12;
+ //
+ // ucFaultAlarm12
+ //
+ this.ucFaultAlarm12.Location = new System.Drawing.Point(772, 60);
+ this.ucFaultAlarm12.Name = "ucFaultAlarm12";
+ this.ucFaultAlarm12.Size = new System.Drawing.Size(149, 32);
+ this.ucFaultAlarm12.TabIndex = 11;
+ //
+ // ucFaultAlarm2
+ //
+ this.ucFaultAlarm2.Location = new System.Drawing.Point(3, 60);
+ this.ucFaultAlarm2.Name = "ucFaultAlarm2";
+ this.ucFaultAlarm2.Size = new System.Drawing.Size(149, 32);
+ this.ucFaultAlarm2.TabIndex = 10;
+ //
+ // ucFaultAlarm11
+ //
+ this.ucFaultAlarm11.Location = new System.Drawing.Point(772, 24);
+ this.ucFaultAlarm11.Name = "ucFaultAlarm11";
+ this.ucFaultAlarm11.Size = new System.Drawing.Size(149, 32);
+ this.ucFaultAlarm11.TabIndex = 9;
+ //
+ // ucFaultAlarm9
+ //
+ this.ucFaultAlarm9.Location = new System.Drawing.Point(616, 24);
+ this.ucFaultAlarm9.Name = "ucFaultAlarm9";
+ this.ucFaultAlarm9.Size = new System.Drawing.Size(152, 32);
+ this.ucFaultAlarm9.TabIndex = 8;
+ //
+ // ucFaultAlarm7
+ //
+ this.ucFaultAlarm7.Location = new System.Drawing.Point(463, 24);
+ this.ucFaultAlarm7.Name = "ucFaultAlarm7";
+ this.ucFaultAlarm7.Size = new System.Drawing.Size(149, 32);
+ this.ucFaultAlarm7.TabIndex = 7;
+ //
+ // ucFaultAlarm5
+ //
+ this.ucFaultAlarm5.Location = new System.Drawing.Point(309, 24);
+ this.ucFaultAlarm5.Name = "ucFaultAlarm5";
+ this.ucFaultAlarm5.Size = new System.Drawing.Size(150, 32);
+ this.ucFaultAlarm5.TabIndex = 6;
+ //
+ // ucFaultAlarm3
+ //
+ this.ucFaultAlarm3.Location = new System.Drawing.Point(156, 24);
+ this.ucFaultAlarm3.Name = "ucFaultAlarm3";
+ this.ucFaultAlarm3.Size = new System.Drawing.Size(149, 32);
+ this.ucFaultAlarm3.TabIndex = 5;
+ //
+ // ucFaultAlarm1
+ //
+ this.ucFaultAlarm1.Location = new System.Drawing.Point(3, 24);
+ this.ucFaultAlarm1.Name = "ucFaultAlarm1";
+ this.ucFaultAlarm1.Size = new System.Drawing.Size(149, 32);
+ this.ucFaultAlarm1.TabIndex = 4;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.ucFaultAlarm1;
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(108, 34);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(153, 36);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.ucFaultAlarm3;
+ this.layoutControlItem2.Location = new System.Drawing.Point(153, 0);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(108, 30);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(153, 36);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.ucFaultAlarm5;
+ this.layoutControlItem3.Location = new System.Drawing.Point(306, 0);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(108, 30);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(154, 36);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.ucFaultAlarm7;
+ this.layoutControlItem4.Location = new System.Drawing.Point(460, 0);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(108, 30);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(153, 36);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.ucFaultAlarm2;
+ this.layoutControlItem7.Location = new System.Drawing.Point(0, 36);
+ this.layoutControlItem7.MinSize = new System.Drawing.Size(108, 34);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(153, 36);
+ this.layoutControlItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.ucFaultAlarm9;
+ this.layoutControlItem5.Location = new System.Drawing.Point(613, 0);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(108, 30);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(156, 36);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.ucFaultAlarm11;
+ this.layoutControlItem6.Location = new System.Drawing.Point(769, 0);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(108, 30);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(153, 36);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.ucFaultAlarm4;
+ this.layoutControlItem8.CustomizationFormText = "layoutControlItem8";
+ this.layoutControlItem8.Location = new System.Drawing.Point(153, 36);
+ this.layoutControlItem8.MinSize = new System.Drawing.Size(108, 30);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(153, 36);
+ this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem8.TextVisible = false;
+ //
+ // layoutControlItem9
+ //
+ this.layoutControlItem9.Control = this.ucFaultAlarm6;
+ this.layoutControlItem9.Location = new System.Drawing.Point(306, 36);
+ this.layoutControlItem9.MinSize = new System.Drawing.Size(108, 30);
+ this.layoutControlItem9.Name = "layoutControlItem9";
+ this.layoutControlItem9.Size = new System.Drawing.Size(154, 36);
+ this.layoutControlItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem9.TextVisible = false;
+ //
+ // layoutControlItem10
+ //
+ this.layoutControlItem10.Control = this.ucFaultAlarm8;
+ this.layoutControlItem10.Location = new System.Drawing.Point(460, 36);
+ this.layoutControlItem10.MinSize = new System.Drawing.Size(108, 30);
+ this.layoutControlItem10.Name = "layoutControlItem10";
+ this.layoutControlItem10.Size = new System.Drawing.Size(153, 36);
+ this.layoutControlItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem10.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem10.TextVisible = false;
+ //
+ // layoutControlItem11
+ //
+ this.layoutControlItem11.Control = this.ucFaultAlarm10;
+ this.layoutControlItem11.Location = new System.Drawing.Point(613, 36);
+ this.layoutControlItem11.MinSize = new System.Drawing.Size(108, 30);
+ this.layoutControlItem11.Name = "layoutControlItem11";
+ this.layoutControlItem11.Size = new System.Drawing.Size(156, 36);
+ this.layoutControlItem11.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem11.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem11.TextVisible = false;
+ //
+ // layoutControlItem12
+ //
+ this.layoutControlItem12.Control = this.ucFaultAlarm12;
+ this.layoutControlItem12.Location = new System.Drawing.Point(769, 36);
+ this.layoutControlItem12.MinSize = new System.Drawing.Size(108, 30);
+ this.layoutControlItem12.Name = "layoutControlItem12";
+ this.layoutControlItem12.Size = new System.Drawing.Size(153, 36);
+ this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem12.TextVisible = false;
+ //
+ // layoutControlItem13
+ //
+ this.layoutControlItem13.Control = this.ucFaultAlarm13;
+ this.layoutControlItem13.Location = new System.Drawing.Point(922, 0);
+ this.layoutControlItem13.Name = "layoutControlItem13";
+ this.layoutControlItem13.Size = new System.Drawing.Size(156, 36);
+ this.layoutControlItem13.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem13.TextVisible = false;
+ //
+ // layoutControlItem14
+ //
+ this.layoutControlItem14.Control = this.ucFaultAlarm14;
+ this.layoutControlItem14.Location = new System.Drawing.Point(922, 36);
+ this.layoutControlItem14.Name = "layoutControlItem14";
+ this.layoutControlItem14.Size = new System.Drawing.Size(156, 36);
+ this.layoutControlItem14.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem14.TextVisible = false;
+ //
+ // UcFaultAlarmGroup
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.Name = "UcFaultAlarmGroup";
+ this.Size = new System.Drawing.Size(1080, 95);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private UcFaultAlarm ucFaultAlarm5;
+ private UcFaultAlarm ucFaultAlarm3;
+ private UcFaultAlarm ucFaultAlarm1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private UcFaultAlarm ucFaultAlarm7;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private UcFaultAlarm ucFaultAlarm6;
+ private UcFaultAlarm ucFaultAlarm4;
+ private UcFaultAlarm ucFaultAlarm10;
+ private UcFaultAlarm ucFaultAlarm12;
+ private UcFaultAlarm ucFaultAlarm2;
+ private UcFaultAlarm ucFaultAlarm11;
+ private UcFaultAlarm ucFaultAlarm9;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
+ private UcFaultAlarm ucFaultAlarm8;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
+ private UcFaultAlarm ucFaultAlarm14;
+ private UcFaultAlarm ucFaultAlarm13;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem14;
+ }
+}
diff --git a/LFP_Manager/Controls/UcFaultAlarmGroup.cs b/LFP_Manager/Controls/UcFaultAlarmGroup.cs
new file mode 100644
index 0000000..e1fa1fb
--- /dev/null
+++ b/LFP_Manager/Controls/UcFaultAlarmGroup.cs
@@ -0,0 +1,442 @@
+using DevExpress.XtraEditors;
+using LFP_Manager.DataStructure;
+using LFP_Manager.Utils;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Controls
+{
+ public partial class UcFaultAlarmGroup : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region CONSTANTS
+ private const int FAULT_ALARM_COUNT = 14;
+
+ private enum eAlarmComp
+ {
+ MODULE_OV = 0,
+ CELL_OV = 1,
+ MODULE_UV = 2,
+ CELL_UV = 3,
+ CHG_OC = 4,
+ DCH_OC = 5,
+ CHG_OT = 6,
+ CHG_UT = 7,
+ DCH_OT = 8,
+ DCH_UT = 9,
+ LOW_SOC = 10,
+ MOS_OT = 11,
+ SC = 12,
+ CB_OFF = 13,
+ }
+ #endregion
+
+ #region VARIABLES
+ private CommConfig Config;
+
+ private UcFaultAlarm[] FaultAlarm;
+ #endregion
+
+ #region CONSTRUCTORS
+ public UcFaultAlarmGroup()
+ {
+ InitializeComponent();
+
+ CreateAlarmComponent();
+ }
+ #endregion
+
+ #region COMPONENTS
+
+ private void CreateAlarmComponent()
+ {
+ FaultAlarm = new UcFaultAlarm[FAULT_ALARM_COUNT];
+
+ void Bind(eAlarmComp comp, UcFaultAlarm control, int displayNo, string title)
+ {
+ FaultAlarm[(int)comp] = control;
+ FaultAlarm[(int)comp].SetFaultName(displayNo, title);
+ }
+
+ Bind(eAlarmComp.MODULE_OV , ucFaultAlarm1 , 1, "Module OV");
+ Bind(eAlarmComp.CELL_OV , ucFaultAlarm3 , 3, "Cell OV");
+ Bind(eAlarmComp.MODULE_UV , ucFaultAlarm2 , 2, "Module UV");
+ Bind(eAlarmComp.CELL_UV , ucFaultAlarm4 , 4, "Cell UV");
+ Bind(eAlarmComp.CHG_OC , ucFaultAlarm5 , 5, "Chg OC");
+ Bind(eAlarmComp.DCH_OC , ucFaultAlarm6 , 6, "Dch OC");
+ Bind(eAlarmComp.CHG_OT , ucFaultAlarm7 , 7, "Chg OT");
+ Bind(eAlarmComp.CHG_UT , ucFaultAlarm8 , 8, "Chg UT");
+ Bind(eAlarmComp.DCH_OT , ucFaultAlarm9 , 9, "Dch OT");
+ Bind(eAlarmComp.DCH_UT , ucFaultAlarm10, 10, "Dch UT");
+ Bind(eAlarmComp.LOW_SOC , ucFaultAlarm11, 11, "Low SOC");
+ Bind(eAlarmComp.MOS_OT , ucFaultAlarm12, 12, "Mos OT");
+ Bind(eAlarmComp.SC , ucFaultAlarm13, 13, "S-C");
+ Bind(eAlarmComp.CB_OFF , ucFaultAlarm14, 14, "CB Off");
+ }
+ #endregion
+
+ #region PUBLIC METHODS
+ public void SetData(CommConfig aConfig, CsDeviceData.DeviceModuleData rModuleData)
+ {
+ DisplayAlarm(rModuleData);
+ //switch (aConfig.CommType)
+ //{
+ // case csConstData.CommType.COMM_UART:
+ // DisplayAlarmDeltaIndUart(rModuleData);
+ // break;
+ // case csConstData.CommType.COMM_RS485:
+ // DisplayAlarmDeltaInd485(rModuleData);
+ // break;
+ // case csConstData.CommType.COMM_SNMP:
+ // DisplayAlarmSnmp(rModuleData);
+ // break;
+ // default:
+ // break;
+ //}
+ }
+ #endregion
+
+ #region DISPLAY FUNCTION
+
+ private void DisplayAlarm(CsDeviceData.DeviceModuleData rModuleData)
+ {
+ bool[] aProtect = csUtils.UInt16ToBitArray(rModuleData.StatusData.protect);
+ bool[] aWarning = csUtils.UInt16ToBitArray(rModuleData.StatusData.warning);
+
+ // 공통 헬퍼: protect 비트가 우선, 없으면 warning, 둘 다 없으면 정상
+ void SetByBits(eAlarmComp comp, int? protectBit, int? warningBit)
+ {
+ int idx = (int)comp;
+ if (protectBit.HasValue && aProtect[protectBit.Value]) { FaultAlarm[idx].SetFault(1); return; }
+ if (warningBit.HasValue && aWarning[warningBit.Value]) { FaultAlarm[idx].SetFault(2); return; }
+ FaultAlarm[idx].SetFault(3);
+ }
+
+ // 1) OV/UV/OC (양쪽에 동일 인덱스 존재)
+ SetByBits(eAlarmComp.MODULE_OV, (int)CsAlarmDefine.eGuiProtectBit.PACK_OV, (int)CsAlarmDefine.eGuiWarningBit.PACK_OV);
+ SetByBits(eAlarmComp.CELL_OV , (int)CsAlarmDefine.eGuiProtectBit.CELL_OV, (int)CsAlarmDefine.eGuiWarningBit.CELL_OV);
+ SetByBits(eAlarmComp.MODULE_UV, (int)CsAlarmDefine.eGuiProtectBit.PACK_UV, (int)CsAlarmDefine.eGuiWarningBit.PACK_UV);
+ SetByBits(eAlarmComp.CELL_UV , (int)CsAlarmDefine.eGuiProtectBit.CELL_UV, (int)CsAlarmDefine.eGuiWarningBit.CELL_UV);
+ SetByBits(eAlarmComp.CHG_OC , (int)CsAlarmDefine.eGuiProtectBit.CHG_OC , (int)CsAlarmDefine.eGuiWarningBit.CHG_OC );
+ SetByBits(eAlarmComp.DCH_OC , (int)CsAlarmDefine.eGuiProtectBit.DCH_OC , (int)CsAlarmDefine.eGuiWarningBit.DCH_OC );
+
+ // 2) 온도류
+ SetByBits(eAlarmComp.CHG_OT , (int)CsAlarmDefine.eGuiProtectBit.CHG_OT , (int)CsAlarmDefine.eGuiWarningBit.CHG_OT );
+ SetByBits(eAlarmComp.CHG_UT , (int)CsAlarmDefine.eGuiProtectBit.CHG_UT , (int)CsAlarmDefine.eGuiWarningBit.CHG_UT );
+ SetByBits(eAlarmComp.DCH_OT , (int)CsAlarmDefine.eGuiProtectBit.DCH_OT , (int)CsAlarmDefine.eGuiWarningBit.DCH_OT );
+ SetByBits(eAlarmComp.DCH_UT , (int)CsAlarmDefine.eGuiProtectBit.DCH_UT , (int)CsAlarmDefine.eGuiWarningBit.DCH_UT );
+
+ // 3) Low SOC : 경고 전용
+ SetByBits(eAlarmComp.LOW_SOC , null , (int)CsAlarmDefine.eGuiWarningBit.LOW_SOC);
+
+ // 4) MOS OT : 보호/경고 모두 사용
+ SetByBits(eAlarmComp.MOS_OT , (int)CsAlarmDefine.eGuiProtectBit.MOS_OT, (int)CsAlarmDefine.eGuiWarningBit.MOS_OT);
+
+ // 5) SC(단락) : 보호 전용
+ SetByBits(eAlarmComp.SC , (int)CsAlarmDefine.eGuiProtectBit.SC , null);
+
+ // 6) DIFF_VOLT : 경고 전용
+ SetByBits(eAlarmComp.CB_OFF , null , (int)CsAlarmDefine.eGuiWarningBit.CB_OFF);
+ }
+
+ private void DisplayAlarmDeltaIndUart(CsDeviceData.DeviceModuleData rModuleData)
+ {
+ bool[] aProtect = csUtils.UInt16ToBitArray(rModuleData.StatusData.protect);
+ bool[] aWarning = csUtils.UInt16ToBitArray(rModuleData.StatusData.warning);
+ bool[] error = csUtils.UInt16ToBitArray(rModuleData.StatusData.errorCode);
+
+ for (int i = 0; i < 6; i++)
+ {
+ if (aProtect[i] == true) { FaultAlarm[i].SetFault(1); }
+ else if (aWarning[i] == true) { FaultAlarm[i].SetFault(2); }
+ else { FaultAlarm[i].SetFault(3); }
+ }
+
+ // Charge over temperature warning / protect
+ int aComp = 6;
+ int alarmID = (int)CsAlarmDefine.eGuiWarningBit.CHG_OT;
+ if (aProtect[alarmID] == true) { FaultAlarm[aComp].SetFault(1); }
+ else if (aWarning[alarmID] == true) { FaultAlarm[aComp].SetFault(2); }
+ else { FaultAlarm[aComp].SetFault(3); }
+
+ // Charge under temperature warning / protect
+ aComp = 7;
+ alarmID = (int)CsAlarmDefine.eGuiWarningBit.CHG_UT;
+ if (aProtect[alarmID] == true) { FaultAlarm[aComp].SetFault(1); }
+ else if (aWarning[alarmID] == true) { FaultAlarm[aComp].SetFault(2); }
+ else { FaultAlarm[aComp].SetFault(3); }
+
+ // Discharge over temperature warning / protect
+ aComp = 8;
+ alarmID = (int)CsAlarmDefine.eGuiWarningBit.DCH_OT;
+ if (aProtect[alarmID] == true) { FaultAlarm[aComp].SetFault(1); }
+ else if (aWarning[alarmID] == true) { FaultAlarm[aComp].SetFault(2); }
+ else { FaultAlarm[aComp].SetFault(3); }
+
+ // Discharge under temperature warning / protect
+ aComp = 9;
+ alarmID = (int)CsAlarmDefine.eGuiWarningBit.DCH_UT;
+ if (aProtect[alarmID] == true) { FaultAlarm[aComp].SetFault(1); }
+ else if (aWarning[alarmID] == true) { FaultAlarm[aComp].SetFault(2); }
+ else { FaultAlarm[aComp].SetFault(3); }
+
+ // Low SOC
+ // Discharge under temperature warning / protect
+ aComp = 10;
+ alarmID = (int)CsAlarmDefine.eGuiWarningBit.LOW_SOC;
+ if (aWarning[alarmID] == true) { FaultAlarm[aComp].SetFault(2); }
+ else { FaultAlarm[aComp].SetFault(3); }
+
+ // MOS Over Temperature Alarm
+ aComp = 11;
+ alarmID = (int)CsAlarmDefine.eGuiWarningBit.MOS_OT;
+ if (aProtect[alarmID] == true) { FaultAlarm[aComp].SetFault(1); }
+ else if (aWarning[alarmID] == true) { FaultAlarm[aComp].SetFault(2); }
+ else { FaultAlarm[aComp].SetFault(3); }
+
+ // Short Circuit Protect
+ aComp = 12;
+ alarmID = (int)CsAlarmDefine.eGuiProtectBit.SC;
+ if (aProtect[alarmID] == true) { FaultAlarm[aComp].SetFault(1); }
+ else { FaultAlarm[aComp].SetFault(3); }
+
+ // DIFF Cell Voltage Alarm
+ aComp = 12;
+ alarmID = (int)CsAlarmDefine.eGuiWarningBit.DIFF_VOLT;
+ if (aWarning[alarmID] == true) { FaultAlarm[aComp].SetFault(2); }
+ else { FaultAlarm[aComp].SetFault(3); }
+ }
+ private void DisplayAlarmDeltaInd485(CsDeviceData.DeviceModuleData rModuleData)
+ {
+ bool[] aProtect = csUtils.UInt16ToBitArray(rModuleData.StatusData.protect);
+ bool[] aWarning = csUtils.UInt16ToBitArray(rModuleData.StatusData.warning);
+ bool[] error = csUtils.UInt16ToBitArray(rModuleData.StatusData.errorCode);
+
+ for (int i = 0; i < 6; i++)
+ {
+ if (aProtect[i] == true) { FaultAlarm[i].SetFault(1); }
+ else if (aWarning[i] == true) { FaultAlarm[i].SetFault(2); }
+ else { FaultAlarm[i].SetFault(3); }
+ }
+
+ // Charge over temperature warning / protect
+ int aComp = 6;
+ int alarmID = 8;
+ if (aProtect[alarmID] == true) { FaultAlarm[aComp].SetFault(1); }
+ else if (aWarning[alarmID] == true) { FaultAlarm[aComp].SetFault(2); }
+ else { FaultAlarm[aComp].SetFault(3); }
+
+ // Discharge over temperature warning / protect
+ aComp = 8;
+ alarmID = 9;
+ if (aProtect[alarmID] == true) { FaultAlarm[aComp].SetFault(1); }
+ else if (aWarning[alarmID] == true) { FaultAlarm[aComp].SetFault(2); }
+ else { FaultAlarm[aComp].SetFault(3); }
+
+ // Charge under temperature warning / protect
+ aComp = 7;
+ alarmID = 10;
+ if (aProtect[alarmID] == true) { FaultAlarm[aComp].SetFault(1); }
+ else if (aWarning[alarmID] == true) { FaultAlarm[aComp].SetFault(2); }
+ else { FaultAlarm[aComp].SetFault(3); }
+
+ // Discharge under temperature warning / protect
+ aComp = 9;
+ alarmID = 11;
+ if (aProtect[alarmID] == true) { FaultAlarm[aComp].SetFault(1); }
+ else if (aWarning[alarmID] == true) { FaultAlarm[aComp].SetFault(2); }
+ else { FaultAlarm[aComp].SetFault(3); }
+
+ // Low SOC / SOH
+ if (aWarning[12] == true)
+ {
+ // Low SOC
+ FaultAlarm[10].SetFaultName(11, "Low SOC");
+ FaultAlarm[10].SetFault(2);
+ }
+ else if (aWarning[13] == true)
+ {
+ // Low SOH
+ FaultAlarm[10].SetFaultName(11, "Low SOH");
+ FaultAlarm[10].SetFault(2);
+ }
+ else
+ {
+ FaultAlarm[10].SetFaultName(11, "SOC/SOH");
+ FaultAlarm[10].SetFault(3);
+ }
+
+ // MOS Over Temperature Alarm
+ aComp = 11;
+ alarmID = 7;
+ if (aProtect[alarmID] == true) { FaultAlarm[aComp].SetFault(1); }
+ else if (aWarning[alarmID] == true) { FaultAlarm[aComp].SetFault(2); }
+ else { FaultAlarm[aComp].SetFault(3); }
+
+ // Cell ETC. Alarm
+ if (aProtect[13] == true)
+ {
+ // Short Circuit Protect
+ FaultAlarm[12].SetFaultName(13, "Short Circuit");
+ FaultAlarm[12].SetFault(1);
+ }
+ else if (aWarning[14] == true)
+ {
+ FaultAlarm[12].SetFaultName(13, "MD ISO");
+ FaultAlarm[12].SetFault(2);
+ }
+ else
+ {
+ FaultAlarm[12].SetFaultName(13, "ETC. Alarm");
+ FaultAlarm[12].SetFault(3);
+ }
+
+ // Error Code
+ if (error[0] == true)
+ {
+ FaultAlarm[13].SetFaultName(14, "Volt Error");
+ FaultAlarm[13].SetFault(1);
+ }
+ else if (error[1] == true)
+ {
+ FaultAlarm[13].SetFaultName(14, "Temp Error");
+ FaultAlarm[13].SetFault(1);
+ }
+ else if (error[4] == true)
+ {
+ FaultAlarm[13].SetFaultName(14, "Unbalance");
+ FaultAlarm[13].SetFault(1);
+ }
+ else if (error[5] == true)
+ {
+ FaultAlarm[13].SetFaultName(14, "Emergency");
+ FaultAlarm[13].SetFault(1);
+ }
+ else
+ {
+ FaultAlarm[13].SetFaultName(14, "Error Code");
+ FaultAlarm[13].SetFault(3);
+ }
+ }
+
+ private void DisplayAlarmSnmp(CsDeviceData.DeviceModuleData rModuleData)
+ {
+ bool[] aProtect = csUtils.UInt16ToBitArray(rModuleData.StatusData.protect);
+ bool[] aWarning = csUtils.UInt16ToBitArray(rModuleData.StatusData.warning);
+ bool[] error = csUtils.UInt16ToBitArray(rModuleData.StatusData.errorCode);
+
+ for (int i = 0; i < 6; i++)
+ {
+ if (aProtect[i] == true) { FaultAlarm[i].SetFault(1); }
+ else if (aWarning[i] == true) { FaultAlarm[i].SetFault(2); }
+ else { FaultAlarm[i].SetFault(3); }
+ }
+
+ // Charge over temperature warning / protect
+ int aComp = 6;
+ int alarmID = 8;
+ if (aProtect[alarmID] == true) { FaultAlarm[aComp].SetFault(1); }
+ else if (aWarning[alarmID] == true) { FaultAlarm[aComp].SetFault(2); }
+ else { FaultAlarm[aComp].SetFault(3); }
+
+ // Charge under temperature warning / protect
+ aComp = 7;
+ alarmID = 10;
+ if (aProtect[alarmID] == true) { FaultAlarm[aComp].SetFault(1); }
+ else if (aWarning[alarmID] == true) { FaultAlarm[aComp].SetFault(2); }
+ else { FaultAlarm[aComp].SetFault(3); }
+
+ // Discharge over temperature warning / protect
+ aComp = 8;
+ alarmID = 9;
+ if (aProtect[alarmID] == true) { FaultAlarm[aComp].SetFault(1); }
+ else if (aWarning[alarmID] == true) { FaultAlarm[aComp].SetFault(2); }
+ else { FaultAlarm[aComp].SetFault(3); }
+
+ // Discharge under temperature warning / protect
+ aComp = 9;
+ alarmID = 11;
+ if (aProtect[alarmID] == true) { FaultAlarm[aComp].SetFault(1); }
+ else if (aWarning[alarmID] == true) { FaultAlarm[aComp].SetFault(2); }
+ else { FaultAlarm[aComp].SetFault(3); }
+
+ // Low SOC / SOH
+ if (aWarning[12] == true)
+ {
+ // Low SOC
+ FaultAlarm[10].SetFaultName(11, "Low SOC");
+ FaultAlarm[10].SetFault(2);
+ }
+ else if (aWarning[13] == true)
+ {
+ // Low SOH
+ FaultAlarm[10].SetFaultName(11, "Low SOH");
+ FaultAlarm[10].SetFault(2);
+ }
+ else
+ {
+ FaultAlarm[10].SetFaultName(11, "SOC/SOH");
+ FaultAlarm[10].SetFault(3);
+ }
+
+ // MOS Over Temperature Alarm
+ aComp = 11;
+ alarmID = 7;
+ if (aProtect[alarmID] == true) { FaultAlarm[aComp].SetFault(1); }
+ else if (aWarning[alarmID] == true) { FaultAlarm[aComp].SetFault(2); }
+ else { FaultAlarm[aComp].SetFault(3); }
+
+ // Cell ETC. Alarm
+ if (aProtect[13] == true)
+ {
+ // Short Circuit Protect
+ FaultAlarm[12].SetFaultName(13, "Short Circuit");
+ FaultAlarm[12].SetFault(1);
+ }
+ else if (aWarning[14] == true)
+ {
+ FaultAlarm[12].SetFaultName(13, "MD ISO");
+ FaultAlarm[12].SetFault(2);
+ }
+ else
+ {
+ FaultAlarm[12].SetFaultName(13, "ETC. Alarm");
+ FaultAlarm[12].SetFault(3);
+ }
+
+ // Error Code
+ if (error[0] == true)
+ {
+ FaultAlarm[13].SetFaultName(14, "Volt Error");
+ FaultAlarm[13].SetFault(1);
+ }
+ else if (error[1] == true)
+ {
+ FaultAlarm[13].SetFaultName(14, "Temp Error");
+ FaultAlarm[13].SetFault(1);
+ }
+ else if (error[4] == true)
+ {
+ FaultAlarm[13].SetFaultName(14, "Unbalance");
+ FaultAlarm[13].SetFault(1);
+ }
+ else if (error[5] == true)
+ {
+ FaultAlarm[13].SetFaultName(14, "Emergency");
+ FaultAlarm[13].SetFault(1);
+ }
+ else
+ {
+ FaultAlarm[13].SetFaultName(14, "Error Code");
+ FaultAlarm[13].SetFault(3);
+ }
+ }
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/UcFaultAlarmGroup.resx b/LFP_Manager/Controls/UcFaultAlarmGroup.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/UcFaultAlarmGroup.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucCalibration.Designer.cs b/LFP_Manager/Controls/ucCalibration.Designer.cs
new file mode 100644
index 0000000..fa2bd9b
--- /dev/null
+++ b/LFP_Manager/Controls/ucCalibration.Designer.cs
@@ -0,0 +1,1210 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucCalibration
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.TeCommTimeoutNew = new DevExpress.XtraEditors.TextEdit();
+ this.BtnRS485TimeoutSet = new DevExpress.XtraEditors.SimpleButton();
+ this.TeCommTimeout = new DevExpress.XtraEditors.TextEdit();
+ this.BtnAntiTheftEnable = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnClearAntiTheftProtect = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnAntiTheftDisable = new DevExpress.XtraEditors.SimpleButton();
+ this.gbBmsDateTime = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl();
+ this.BtnGetCurrTime = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnBmsDateTimeSet = new DevExpress.XtraEditors.SimpleButton();
+ this.TeCurrDateTime = new DevExpress.XtraEditors.TextEdit();
+ this.TeNewDateTime = new DevExpress.XtraEditors.TextEdit();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem3 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.emptySpaceItem4 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.gbChaModeControl = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
+ this.TeChgModeValueNew = new DevExpress.XtraEditors.TextEdit();
+ this.TeChgModeValueCurr = new DevExpress.XtraEditors.TextEdit();
+ this.CbNewChaMode = new DevExpress.XtraEditors.ComboBoxEdit();
+ this.BtnChaModeSet = new DevExpress.XtraEditors.SimpleButton();
+ this.TeChaMode = new DevExpress.XtraEditors.TextEdit();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.simpleLabelItem3 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem14 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.gbCapacityControl = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl7 = new DevExpress.XtraLayout.LayoutControl();
+ this.teNewSoc = new DevExpress.XtraEditors.TextEdit();
+ this.teCurrSoc = new DevExpress.XtraEditors.TextEdit();
+ this.teNewCapacity = new DevExpress.XtraEditors.TextEdit();
+ this.btnCapacitySet = new DevExpress.XtraEditors.SimpleButton();
+ this.teCurrCapacity = new DevExpress.XtraEditors.TextEdit();
+ this.layoutControlGroup7 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lcitemDesignCapacity = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem12 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.emptySpaceItem13 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem25 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.simpleLabelItem1 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.simpleLabelItem2 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.TeAntiTheftGyroCurr = new DevExpress.XtraEditors.TextEdit();
+ this.TeSensitive = new DevExpress.XtraEditors.TextEdit();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem19 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.emptySpaceItem6 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem17 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem21 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem20 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem15 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem23 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup4 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem18 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem7 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem16 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem22 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem8 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.emptySpaceItem5 = new DevExpress.XtraLayout.EmptySpaceItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.TeCommTimeoutNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeCommTimeout.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbBmsDateTime)).BeginInit();
+ this.gbBmsDateTime.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit();
+ this.layoutControl3.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.TeCurrDateTime.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeNewDateTime.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbChaModeControl)).BeginInit();
+ this.gbChaModeControl.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit();
+ this.layoutControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.TeChgModeValueNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeChgModeValueCurr.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.CbNewChaMode.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeChaMode.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbCapacityControl)).BeginInit();
+ this.gbCapacityControl.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl7)).BeginInit();
+ this.layoutControl7.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.teNewSoc.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.teCurrSoc.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.teNewCapacity.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.teCurrCapacity.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemDesignCapacity)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem12)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem13)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem25)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeAntiTheftGyroCurr.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeSensitive.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem17)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem21)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem23)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem18)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem5)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.TeCommTimeoutNew);
+ this.layoutControl1.Controls.Add(this.BtnRS485TimeoutSet);
+ this.layoutControl1.Controls.Add(this.TeCommTimeout);
+ this.layoutControl1.Controls.Add(this.BtnAntiTheftEnable);
+ this.layoutControl1.Controls.Add(this.BtnClearAntiTheftProtect);
+ this.layoutControl1.Controls.Add(this.BtnAntiTheftDisable);
+ this.layoutControl1.Controls.Add(this.gbBmsDateTime);
+ this.layoutControl1.Controls.Add(this.gbChaModeControl);
+ this.layoutControl1.Controls.Add(this.gbCapacityControl);
+ this.layoutControl1.Controls.Add(this.TeAntiTheftGyroCurr);
+ this.layoutControl1.Controls.Add(this.TeSensitive);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(881, 251, 815, 497);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(838, 406);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // TeCommTimeoutNew
+ //
+ this.TeCommTimeoutNew.Location = new System.Drawing.Point(472, 237);
+ this.TeCommTimeoutNew.Name = "TeCommTimeoutNew";
+ this.TeCommTimeoutNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeCommTimeoutNew.Properties.Appearance.Options.UseFont = true;
+ this.TeCommTimeoutNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeCommTimeoutNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeCommTimeoutNew.Size = new System.Drawing.Size(80, 24);
+ this.TeCommTimeoutNew.StyleController = this.layoutControl1;
+ this.TeCommTimeoutNew.TabIndex = 20;
+ //
+ // BtnRS485TimeoutSet
+ //
+ this.BtnRS485TimeoutSet.Location = new System.Drawing.Point(480, 370);
+ this.BtnRS485TimeoutSet.Name = "BtnRS485TimeoutSet";
+ this.BtnRS485TimeoutSet.Size = new System.Drawing.Size(72, 30);
+ this.BtnRS485TimeoutSet.StyleController = this.layoutControl1;
+ this.BtnRS485TimeoutSet.TabIndex = 19;
+ this.BtnRS485TimeoutSet.Text = "Set";
+ this.BtnRS485TimeoutSet.Click += new System.EventHandler(this.BtnRS485TimeoutSet_Click);
+ //
+ // TeCommTimeout
+ //
+ this.TeCommTimeout.Location = new System.Drawing.Point(397, 237);
+ this.TeCommTimeout.Name = "TeCommTimeout";
+ this.TeCommTimeout.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeCommTimeout.Properties.Appearance.Options.UseFont = true;
+ this.TeCommTimeout.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeCommTimeout.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeCommTimeout.Properties.ReadOnly = true;
+ this.TeCommTimeout.Size = new System.Drawing.Size(71, 24);
+ this.TeCommTimeout.StyleController = this.layoutControl1;
+ this.TeCommTimeout.TabIndex = 18;
+ //
+ // BtnAntiTheftEnable
+ //
+ this.BtnAntiTheftEnable.Location = new System.Drawing.Point(109, 370);
+ this.BtnAntiTheftEnable.Name = "BtnAntiTheftEnable";
+ this.BtnAntiTheftEnable.Size = new System.Drawing.Size(85, 30);
+ this.BtnAntiTheftEnable.StyleController = this.layoutControl1;
+ this.BtnAntiTheftEnable.TabIndex = 17;
+ this.BtnAntiTheftEnable.Text = "Enable";
+ this.BtnAntiTheftEnable.Click += new System.EventHandler(this.BtnAntiTheftEnable_Click);
+ //
+ // BtnClearAntiTheftProtect
+ //
+ this.BtnClearAntiTheftProtect.Location = new System.Drawing.Point(6, 370);
+ this.BtnClearAntiTheftProtect.Name = "BtnClearAntiTheftProtect";
+ this.BtnClearAntiTheftProtect.Size = new System.Drawing.Size(99, 30);
+ this.BtnClearAntiTheftProtect.StyleController = this.layoutControl1;
+ this.BtnClearAntiTheftProtect.TabIndex = 16;
+ this.BtnClearAntiTheftProtect.Text = "Clear Protect";
+ this.BtnClearAntiTheftProtect.Click += new System.EventHandler(this.BtnClearAntiTheftProtect_Click);
+ //
+ // BtnAntiTheftDisable
+ //
+ this.BtnAntiTheftDisable.Location = new System.Drawing.Point(198, 370);
+ this.BtnAntiTheftDisable.Name = "BtnAntiTheftDisable";
+ this.BtnAntiTheftDisable.Size = new System.Drawing.Size(82, 30);
+ this.BtnAntiTheftDisable.StyleController = this.layoutControl1;
+ this.BtnAntiTheftDisable.TabIndex = 15;
+ this.BtnAntiTheftDisable.Text = "Disable";
+ this.BtnAntiTheftDisable.Click += new System.EventHandler(this.BtnAntiTheftDisable_Click);
+ //
+ // gbBmsDateTime
+ //
+ this.gbBmsDateTime.Controls.Add(this.layoutControl3);
+ this.gbBmsDateTime.Location = new System.Drawing.Point(560, 2);
+ this.gbBmsDateTime.Name = "gbBmsDateTime";
+ this.gbBmsDateTime.Size = new System.Drawing.Size(276, 206);
+ this.gbBmsDateTime.TabIndex = 12;
+ this.gbBmsDateTime.Text = "BMS DateTime";
+ //
+ // layoutControl3
+ //
+ this.layoutControl3.Controls.Add(this.BtnGetCurrTime);
+ this.layoutControl3.Controls.Add(this.BtnBmsDateTimeSet);
+ this.layoutControl3.Controls.Add(this.TeCurrDateTime);
+ this.layoutControl3.Controls.Add(this.TeNewDateTime);
+ this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl3.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl3.Name = "layoutControl3";
+ this.layoutControl3.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1137, 0, 650, 400);
+ this.layoutControl3.Root = this.layoutControlGroup2;
+ this.layoutControl3.Size = new System.Drawing.Size(272, 181);
+ this.layoutControl3.TabIndex = 0;
+ this.layoutControl3.Text = "layoutControl3";
+ //
+ // BtnGetCurrTime
+ //
+ this.BtnGetCurrTime.Location = new System.Drawing.Point(107, 148);
+ this.BtnGetCurrTime.Name = "BtnGetCurrTime";
+ this.BtnGetCurrTime.Size = new System.Drawing.Size(90, 30);
+ this.BtnGetCurrTime.StyleController = this.layoutControl3;
+ this.BtnGetCurrTime.TabIndex = 14;
+ this.BtnGetCurrTime.Text = "Get RealTime";
+ this.BtnGetCurrTime.Click += new System.EventHandler(this.BtnGetCurrTime_Click);
+ //
+ // BtnBmsDateTimeSet
+ //
+ this.BtnBmsDateTimeSet.Location = new System.Drawing.Point(201, 148);
+ this.BtnBmsDateTimeSet.Name = "BtnBmsDateTimeSet";
+ this.BtnBmsDateTimeSet.Size = new System.Drawing.Size(68, 30);
+ this.BtnBmsDateTimeSet.StyleController = this.layoutControl3;
+ this.BtnBmsDateTimeSet.TabIndex = 13;
+ this.BtnBmsDateTimeSet.Text = "Set";
+ this.BtnBmsDateTimeSet.Click += new System.EventHandler(this.BtnBmsDateTimeSet_Click);
+ //
+ // TeCurrDateTime
+ //
+ this.TeCurrDateTime.Location = new System.Drawing.Point(60, 3);
+ this.TeCurrDateTime.Name = "TeCurrDateTime";
+ this.TeCurrDateTime.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeCurrDateTime.Properties.Appearance.Options.UseFont = true;
+ this.TeCurrDateTime.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeCurrDateTime.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeCurrDateTime.Properties.ReadOnly = true;
+ this.TeCurrDateTime.Size = new System.Drawing.Size(209, 24);
+ this.TeCurrDateTime.StyleController = this.layoutControl3;
+ this.TeCurrDateTime.TabIndex = 10;
+ //
+ // TeNewDateTime
+ //
+ this.TeNewDateTime.Location = new System.Drawing.Point(60, 31);
+ this.TeNewDateTime.Name = "TeNewDateTime";
+ this.TeNewDateTime.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeNewDateTime.Properties.Appearance.Options.UseFont = true;
+ this.TeNewDateTime.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeNewDateTime.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeNewDateTime.Size = new System.Drawing.Size(209, 24);
+ this.TeNewDateTime.StyleController = this.layoutControl3;
+ this.TeNewDateTime.TabIndex = 10;
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem9,
+ this.layoutControlItem10,
+ this.emptySpaceItem3,
+ this.emptySpaceItem4,
+ this.layoutControlItem11,
+ this.layoutControlItem12});
+ this.layoutControlGroup2.Name = "Root";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(272, 181);
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // layoutControlItem9
+ //
+ this.layoutControlItem9.Control = this.TeCurrDateTime;
+ this.layoutControlItem9.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem9.CustomizationFormText = "Curr DateTime";
+ this.layoutControlItem9.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem9.Name = "layoutControlItem9";
+ this.layoutControlItem9.Size = new System.Drawing.Size(270, 28);
+ this.layoutControlItem9.Text = " Current";
+ this.layoutControlItem9.TextSize = new System.Drawing.Size(45, 14);
+ //
+ // layoutControlItem10
+ //
+ this.layoutControlItem10.Control = this.TeNewDateTime;
+ this.layoutControlItem10.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem10.CustomizationFormText = "New DateTime";
+ this.layoutControlItem10.Location = new System.Drawing.Point(0, 28);
+ this.layoutControlItem10.Name = "layoutControlItem10";
+ this.layoutControlItem10.Size = new System.Drawing.Size(270, 28);
+ this.layoutControlItem10.Text = " New";
+ this.layoutControlItem10.TextSize = new System.Drawing.Size(45, 14);
+ //
+ // emptySpaceItem3
+ //
+ this.emptySpaceItem3.AllowHotTrack = false;
+ this.emptySpaceItem3.Location = new System.Drawing.Point(0, 56);
+ this.emptySpaceItem3.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem3.Name = "emptySpaceItem3";
+ this.emptySpaceItem3.Size = new System.Drawing.Size(270, 89);
+ this.emptySpaceItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem3.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // emptySpaceItem4
+ //
+ this.emptySpaceItem4.AllowHotTrack = false;
+ this.emptySpaceItem4.Location = new System.Drawing.Point(0, 145);
+ this.emptySpaceItem4.MinSize = new System.Drawing.Size(104, 34);
+ this.emptySpaceItem4.Name = "emptySpaceItem4";
+ this.emptySpaceItem4.Size = new System.Drawing.Size(104, 34);
+ this.emptySpaceItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem4.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem11
+ //
+ this.layoutControlItem11.Control = this.BtnBmsDateTimeSet;
+ this.layoutControlItem11.Location = new System.Drawing.Point(198, 145);
+ this.layoutControlItem11.MinSize = new System.Drawing.Size(30, 26);
+ this.layoutControlItem11.Name = "layoutControlItem11";
+ this.layoutControlItem11.Size = new System.Drawing.Size(72, 34);
+ this.layoutControlItem11.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem11.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem11.TextVisible = false;
+ //
+ // layoutControlItem12
+ //
+ this.layoutControlItem12.Control = this.BtnGetCurrTime;
+ this.layoutControlItem12.Location = new System.Drawing.Point(104, 145);
+ this.layoutControlItem12.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem12.Name = "layoutControlItem12";
+ this.layoutControlItem12.Size = new System.Drawing.Size(94, 34);
+ this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem12.TextVisible = false;
+ //
+ // gbChaModeControl
+ //
+ this.gbChaModeControl.Controls.Add(this.layoutControl2);
+ this.gbChaModeControl.Location = new System.Drawing.Point(288, 2);
+ this.gbChaModeControl.Name = "gbChaModeControl";
+ this.gbChaModeControl.Size = new System.Drawing.Size(268, 206);
+ this.gbChaModeControl.TabIndex = 11;
+ this.gbChaModeControl.Text = "Charge Mode";
+ //
+ // layoutControl2
+ //
+ this.layoutControl2.Controls.Add(this.TeChgModeValueNew);
+ this.layoutControl2.Controls.Add(this.TeChgModeValueCurr);
+ this.layoutControl2.Controls.Add(this.CbNewChaMode);
+ this.layoutControl2.Controls.Add(this.BtnChaModeSet);
+ this.layoutControl2.Controls.Add(this.TeChaMode);
+ this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl2.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl2.Name = "layoutControl2";
+ this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(915, 0, 650, 400);
+ this.layoutControl2.Root = this.Root;
+ this.layoutControl2.Size = new System.Drawing.Size(264, 181);
+ this.layoutControl2.TabIndex = 0;
+ this.layoutControl2.Text = "`";
+ //
+ // TeChgModeValueNew
+ //
+ this.TeChgModeValueNew.Location = new System.Drawing.Point(157, 59);
+ this.TeChgModeValueNew.Name = "TeChgModeValueNew";
+ this.TeChgModeValueNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeChgModeValueNew.Properties.Appearance.Options.UseFont = true;
+ this.TeChgModeValueNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeChgModeValueNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeChgModeValueNew.Size = new System.Drawing.Size(74, 24);
+ this.TeChgModeValueNew.StyleController = this.layoutControl2;
+ this.TeChgModeValueNew.TabIndex = 15;
+ //
+ // TeChgModeValueCurr
+ //
+ this.TeChgModeValueCurr.Location = new System.Drawing.Point(81, 59);
+ this.TeChgModeValueCurr.Name = "TeChgModeValueCurr";
+ this.TeChgModeValueCurr.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeChgModeValueCurr.Properties.Appearance.Options.UseFont = true;
+ this.TeChgModeValueCurr.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeChgModeValueCurr.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeChgModeValueCurr.Properties.ReadOnly = true;
+ this.TeChgModeValueCurr.Size = new System.Drawing.Size(72, 24);
+ this.TeChgModeValueCurr.StyleController = this.layoutControl2;
+ this.TeChgModeValueCurr.TabIndex = 14;
+ //
+ // CbNewChaMode
+ //
+ this.CbNewChaMode.Location = new System.Drawing.Point(81, 31);
+ this.CbNewChaMode.Name = "CbNewChaMode";
+ this.CbNewChaMode.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.CbNewChaMode.Properties.Appearance.Options.UseFont = true;
+ this.CbNewChaMode.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+ new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+ this.CbNewChaMode.Size = new System.Drawing.Size(180, 24);
+ this.CbNewChaMode.StyleController = this.layoutControl2;
+ this.CbNewChaMode.TabIndex = 13;
+ this.CbNewChaMode.SelectedIndexChanged += new System.EventHandler(this.CbNewChaMode_SelectedIndexChanged);
+ //
+ // BtnChaModeSet
+ //
+ this.BtnChaModeSet.Location = new System.Drawing.Point(191, 148);
+ this.BtnChaModeSet.Name = "BtnChaModeSet";
+ this.BtnChaModeSet.Size = new System.Drawing.Size(70, 30);
+ this.BtnChaModeSet.StyleController = this.layoutControl2;
+ this.BtnChaModeSet.TabIndex = 12;
+ this.BtnChaModeSet.Text = "Set";
+ this.BtnChaModeSet.Click += new System.EventHandler(this.BtnChaModeSet_Click);
+ //
+ // TeChaMode
+ //
+ this.TeChaMode.Location = new System.Drawing.Point(81, 3);
+ this.TeChaMode.Name = "TeChaMode";
+ this.TeChaMode.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeChaMode.Properties.Appearance.Options.UseFont = true;
+ this.TeChaMode.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeChaMode.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near;
+ this.TeChaMode.Properties.ReadOnly = true;
+ this.TeChaMode.Size = new System.Drawing.Size(180, 24);
+ this.TeChaMode.StyleController = this.layoutControl2;
+ this.TeChaMode.TabIndex = 10;
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.emptySpaceItem1,
+ this.layoutControlItem6,
+ this.layoutControlItem7,
+ this.emptySpaceItem2,
+ this.layoutControlItem13,
+ this.layoutControlItem5,
+ this.simpleLabelItem3,
+ this.layoutControlItem14});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(264, 181);
+ this.Root.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 84);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(262, 61);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.TeChaMode;
+ this.layoutControlItem6.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(262, 28);
+ this.layoutControlItem6.Text = " Mode (Curr)";
+ this.layoutControlItem6.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(73, 14);
+ this.layoutControlItem6.TextToControlDistance = 5;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.BtnChaModeSet;
+ this.layoutControlItem7.Location = new System.Drawing.Point(188, 145);
+ this.layoutControlItem7.MinSize = new System.Drawing.Size(30, 26);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(74, 34);
+ this.layoutControlItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // emptySpaceItem2
+ //
+ this.emptySpaceItem2.AllowHotTrack = false;
+ this.emptySpaceItem2.Location = new System.Drawing.Point(0, 145);
+ this.emptySpaceItem2.MinSize = new System.Drawing.Size(104, 34);
+ this.emptySpaceItem2.Name = "emptySpaceItem2";
+ this.emptySpaceItem2.Size = new System.Drawing.Size(188, 34);
+ this.emptySpaceItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem13
+ //
+ this.layoutControlItem13.Control = this.CbNewChaMode;
+ this.layoutControlItem13.Location = new System.Drawing.Point(0, 28);
+ this.layoutControlItem13.Name = "layoutControlItem13";
+ this.layoutControlItem13.Size = new System.Drawing.Size(262, 28);
+ this.layoutControlItem13.Text = " Mode (New)";
+ this.layoutControlItem13.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem13.TextSize = new System.Drawing.Size(73, 14);
+ this.layoutControlItem13.TextToControlDistance = 5;
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.TeChgModeValueCurr;
+ this.layoutControlItem5.Location = new System.Drawing.Point(0, 56);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(154, 28);
+ this.layoutControlItem5.Text = " - Value";
+ this.layoutControlItem5.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(73, 20);
+ this.layoutControlItem5.TextToControlDistance = 5;
+ //
+ // simpleLabelItem3
+ //
+ this.simpleLabelItem3.AllowHotTrack = false;
+ this.simpleLabelItem3.Location = new System.Drawing.Point(232, 56);
+ this.simpleLabelItem3.MaxSize = new System.Drawing.Size(30, 0);
+ this.simpleLabelItem3.MinSize = new System.Drawing.Size(30, 18);
+ this.simpleLabelItem3.Name = "simpleLabelItem3";
+ this.simpleLabelItem3.Size = new System.Drawing.Size(30, 28);
+ this.simpleLabelItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem3.Text = " V";
+ this.simpleLabelItem3.TextSize = new System.Drawing.Size(12, 14);
+ //
+ // layoutControlItem14
+ //
+ this.layoutControlItem14.Control = this.TeChgModeValueNew;
+ this.layoutControlItem14.Location = new System.Drawing.Point(154, 56);
+ this.layoutControlItem14.Name = "layoutControlItem14";
+ this.layoutControlItem14.Size = new System.Drawing.Size(78, 28);
+ this.layoutControlItem14.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem14.TextVisible = false;
+ //
+ // gbCapacityControl
+ //
+ this.gbCapacityControl.Controls.Add(this.layoutControl7);
+ this.gbCapacityControl.Location = new System.Drawing.Point(2, 2);
+ this.gbCapacityControl.Name = "gbCapacityControl";
+ this.gbCapacityControl.Size = new System.Drawing.Size(282, 206);
+ this.gbCapacityControl.TabIndex = 10;
+ this.gbCapacityControl.Text = "Capacity Control";
+ //
+ // layoutControl7
+ //
+ this.layoutControl7.Controls.Add(this.teNewSoc);
+ this.layoutControl7.Controls.Add(this.teCurrSoc);
+ this.layoutControl7.Controls.Add(this.teNewCapacity);
+ this.layoutControl7.Controls.Add(this.btnCapacitySet);
+ this.layoutControl7.Controls.Add(this.teCurrCapacity);
+ this.layoutControl7.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl7.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl7.Name = "layoutControl7";
+ this.layoutControl7.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1050, 144, 609, 350);
+ this.layoutControl7.Root = this.layoutControlGroup7;
+ this.layoutControl7.Size = new System.Drawing.Size(278, 181);
+ this.layoutControl7.TabIndex = 0;
+ this.layoutControl7.Text = "layoutControl7";
+ //
+ // teNewSoc
+ //
+ this.teNewSoc.Location = new System.Drawing.Point(158, 31);
+ this.teNewSoc.Name = "teNewSoc";
+ this.teNewSoc.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.teNewSoc.Properties.Appearance.Options.UseFont = true;
+ this.teNewSoc.Properties.Appearance.Options.UseTextOptions = true;
+ this.teNewSoc.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.teNewSoc.Size = new System.Drawing.Size(79, 24);
+ this.teNewSoc.StyleController = this.layoutControl7;
+ this.teNewSoc.TabIndex = 11;
+ //
+ // teCurrSoc
+ //
+ this.teCurrSoc.Location = new System.Drawing.Point(88, 31);
+ this.teCurrSoc.Name = "teCurrSoc";
+ this.teCurrSoc.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.teCurrSoc.Properties.Appearance.Options.UseFont = true;
+ this.teCurrSoc.Properties.Appearance.Options.UseTextOptions = true;
+ this.teCurrSoc.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.teCurrSoc.Properties.ReadOnly = true;
+ this.teCurrSoc.Size = new System.Drawing.Size(66, 24);
+ this.teCurrSoc.StyleController = this.layoutControl7;
+ this.teCurrSoc.TabIndex = 10;
+ //
+ // teNewCapacity
+ //
+ this.teNewCapacity.Location = new System.Drawing.Point(158, 3);
+ this.teNewCapacity.Name = "teNewCapacity";
+ this.teNewCapacity.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.teNewCapacity.Properties.Appearance.Options.UseFont = true;
+ this.teNewCapacity.Properties.Appearance.Options.UseTextOptions = true;
+ this.teNewCapacity.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.teNewCapacity.Size = new System.Drawing.Size(79, 24);
+ this.teNewCapacity.StyleController = this.layoutControl7;
+ this.teNewCapacity.TabIndex = 9;
+ //
+ // btnCapacitySet
+ //
+ this.btnCapacitySet.Location = new System.Drawing.Point(198, 148);
+ this.btnCapacitySet.Name = "btnCapacitySet";
+ this.btnCapacitySet.Size = new System.Drawing.Size(77, 30);
+ this.btnCapacitySet.StyleController = this.layoutControl7;
+ this.btnCapacitySet.TabIndex = 6;
+ this.btnCapacitySet.Text = "Set";
+ this.btnCapacitySet.Click += new System.EventHandler(this.btnCapacitySet_Click);
+ //
+ // teCurrCapacity
+ //
+ this.teCurrCapacity.Location = new System.Drawing.Point(88, 3);
+ this.teCurrCapacity.Name = "teCurrCapacity";
+ this.teCurrCapacity.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.teCurrCapacity.Properties.Appearance.Options.UseFont = true;
+ this.teCurrCapacity.Properties.Appearance.Options.UseTextOptions = true;
+ this.teCurrCapacity.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.teCurrCapacity.Properties.ReadOnly = true;
+ this.teCurrCapacity.Size = new System.Drawing.Size(66, 24);
+ this.teCurrCapacity.StyleController = this.layoutControl7;
+ this.teCurrCapacity.TabIndex = 4;
+ //
+ // layoutControlGroup7
+ //
+ this.layoutControlGroup7.CustomizationFormText = "Root";
+ this.layoutControlGroup7.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup7.GroupBordersVisible = false;
+ this.layoutControlGroup7.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lcitemDesignCapacity,
+ this.emptySpaceItem12,
+ this.emptySpaceItem13,
+ this.layoutControlItem25,
+ this.layoutControlItem1,
+ this.simpleLabelItem1,
+ this.layoutControlItem2,
+ this.layoutControlItem3,
+ this.simpleLabelItem2});
+ this.layoutControlGroup7.Name = "Root";
+ this.layoutControlGroup7.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup7.Size = new System.Drawing.Size(278, 181);
+ this.layoutControlGroup7.TextVisible = false;
+ //
+ // lcitemDesignCapacity
+ //
+ this.lcitemDesignCapacity.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lcitemDesignCapacity.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near;
+ this.lcitemDesignCapacity.Control = this.teCurrCapacity;
+ this.lcitemDesignCapacity.CustomizationFormText = "Range";
+ this.lcitemDesignCapacity.Location = new System.Drawing.Point(0, 0);
+ this.lcitemDesignCapacity.MinSize = new System.Drawing.Size(115, 28);
+ this.lcitemDesignCapacity.Name = "lcitemDesignCapacity";
+ this.lcitemDesignCapacity.Size = new System.Drawing.Size(155, 28);
+ this.lcitemDesignCapacity.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemDesignCapacity.Text = " Capacity";
+ this.lcitemDesignCapacity.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemDesignCapacity.TextSize = new System.Drawing.Size(80, 20);
+ this.lcitemDesignCapacity.TextToControlDistance = 5;
+ //
+ // emptySpaceItem12
+ //
+ this.emptySpaceItem12.AllowHotTrack = false;
+ this.emptySpaceItem12.CustomizationFormText = "emptySpaceItem12";
+ this.emptySpaceItem12.Location = new System.Drawing.Point(0, 56);
+ this.emptySpaceItem12.Name = "emptySpaceItem12";
+ this.emptySpaceItem12.Size = new System.Drawing.Size(276, 89);
+ this.emptySpaceItem12.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // emptySpaceItem13
+ //
+ this.emptySpaceItem13.AllowHotTrack = false;
+ this.emptySpaceItem13.CustomizationFormText = "emptySpaceItem13";
+ this.emptySpaceItem13.Location = new System.Drawing.Point(0, 145);
+ this.emptySpaceItem13.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem13.Name = "emptySpaceItem13";
+ this.emptySpaceItem13.Size = new System.Drawing.Size(195, 34);
+ this.emptySpaceItem13.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem13.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem25
+ //
+ this.layoutControlItem25.Control = this.btnCapacitySet;
+ this.layoutControlItem25.CustomizationFormText = "layoutControlItem25";
+ this.layoutControlItem25.Location = new System.Drawing.Point(195, 145);
+ this.layoutControlItem25.MinSize = new System.Drawing.Size(30, 34);
+ this.layoutControlItem25.Name = "layoutControlItem25";
+ this.layoutControlItem25.Size = new System.Drawing.Size(81, 34);
+ this.layoutControlItem25.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem25.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem25.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.teNewCapacity;
+ this.layoutControlItem1.Location = new System.Drawing.Point(155, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(83, 28);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // simpleLabelItem1
+ //
+ this.simpleLabelItem1.AllowHotTrack = false;
+ this.simpleLabelItem1.Location = new System.Drawing.Point(238, 0);
+ this.simpleLabelItem1.MaxSize = new System.Drawing.Size(38, 18);
+ this.simpleLabelItem1.MinSize = new System.Drawing.Size(38, 18);
+ this.simpleLabelItem1.Name = "simpleLabelItem1";
+ this.simpleLabelItem1.Size = new System.Drawing.Size(38, 28);
+ this.simpleLabelItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem1.Text = " Ah";
+ this.simpleLabelItem1.TextSize = new System.Drawing.Size(19, 14);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.layoutControlItem2.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near;
+ this.layoutControlItem2.Control = this.teCurrSoc;
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 28);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(129, 28);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(155, 28);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.Text = " SOC";
+ this.layoutControlItem2.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(80, 20);
+ this.layoutControlItem2.TextToControlDistance = 5;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.teNewSoc;
+ this.layoutControlItem3.Location = new System.Drawing.Point(155, 28);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(54, 28);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(83, 28);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // simpleLabelItem2
+ //
+ this.simpleLabelItem2.AllowHotTrack = false;
+ this.simpleLabelItem2.Location = new System.Drawing.Point(238, 28);
+ this.simpleLabelItem2.MaxSize = new System.Drawing.Size(38, 0);
+ this.simpleLabelItem2.MinSize = new System.Drawing.Size(38, 18);
+ this.simpleLabelItem2.Name = "simpleLabelItem2";
+ this.simpleLabelItem2.Size = new System.Drawing.Size(38, 28);
+ this.simpleLabelItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem2.Text = " %";
+ this.simpleLabelItem2.TextSize = new System.Drawing.Size(19, 14);
+ //
+ // TeAntiTheftGyroCurr
+ //
+ this.TeAntiTheftGyroCurr.Location = new System.Drawing.Point(86, 237);
+ this.TeAntiTheftGyroCurr.Name = "TeAntiTheftGyroCurr";
+ this.TeAntiTheftGyroCurr.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeAntiTheftGyroCurr.Properties.Appearance.Options.UseFont = true;
+ this.TeAntiTheftGyroCurr.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeAntiTheftGyroCurr.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeAntiTheftGyroCurr.Properties.ReadOnly = true;
+ this.TeAntiTheftGyroCurr.Size = new System.Drawing.Size(194, 24);
+ this.TeAntiTheftGyroCurr.StyleController = this.layoutControl1;
+ this.TeAntiTheftGyroCurr.TabIndex = 13;
+ //
+ // TeSensitive
+ //
+ this.TeSensitive.Location = new System.Drawing.Point(86, 265);
+ this.TeSensitive.Name = "TeSensitive";
+ this.TeSensitive.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeSensitive.Properties.Appearance.Options.UseFont = true;
+ this.TeSensitive.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeSensitive.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeSensitive.Properties.ReadOnly = true;
+ this.TeSensitive.Size = new System.Drawing.Size(194, 24);
+ this.TeSensitive.StyleController = this.layoutControl1;
+ this.TeSensitive.TabIndex = 18;
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem19,
+ this.layoutControlItem4,
+ this.layoutControlItem8,
+ this.layoutControlGroup3,
+ this.layoutControlGroup4,
+ this.emptySpaceItem5});
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(838, 406);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem19
+ //
+ this.layoutControlItem19.Control = this.gbCapacityControl;
+ this.layoutControlItem19.CustomizationFormText = "layoutControlItem19";
+ this.layoutControlItem19.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem19.MaxSize = new System.Drawing.Size(286, 210);
+ this.layoutControlItem19.MinSize = new System.Drawing.Size(286, 210);
+ this.layoutControlItem19.Name = "layoutControlItem19";
+ this.layoutControlItem19.Size = new System.Drawing.Size(286, 210);
+ this.layoutControlItem19.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem19.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem19.TextVisible = false;
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.gbChaModeControl;
+ this.layoutControlItem4.Location = new System.Drawing.Point(286, 0);
+ this.layoutControlItem4.MaxSize = new System.Drawing.Size(272, 0);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(272, 95);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(272, 210);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.gbBmsDateTime;
+ this.layoutControlItem8.Location = new System.Drawing.Point(558, 0);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(280, 210);
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem8.TextVisible = false;
+ //
+ // layoutControlGroup3
+ //
+ this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.emptySpaceItem6,
+ this.layoutControlItem17,
+ this.layoutControlItem21,
+ this.layoutControlItem20,
+ this.layoutControlItem15,
+ this.layoutControlItem23});
+ this.layoutControlGroup3.Location = new System.Drawing.Point(0, 210);
+ this.layoutControlGroup3.Name = "layoutControlGroup3";
+ this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup3.Size = new System.Drawing.Size(286, 196);
+ this.layoutControlGroup3.Text = "Anti-Theft (Gyro Scope)";
+ //
+ // emptySpaceItem6
+ //
+ this.emptySpaceItem6.AllowHotTrack = false;
+ this.emptySpaceItem6.Location = new System.Drawing.Point(0, 56);
+ this.emptySpaceItem6.Name = "emptySpaceItem6";
+ this.emptySpaceItem6.Size = new System.Drawing.Size(278, 77);
+ this.emptySpaceItem6.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem17
+ //
+ this.layoutControlItem17.Control = this.TeAntiTheftGyroCurr;
+ this.layoutControlItem17.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem17.CustomizationFormText = " Gyro-Scope Curr";
+ this.layoutControlItem17.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem17.MaxSize = new System.Drawing.Size(0, 28);
+ this.layoutControlItem17.MinSize = new System.Drawing.Size(134, 28);
+ this.layoutControlItem17.Name = "layoutControlItem17";
+ this.layoutControlItem17.Size = new System.Drawing.Size(278, 28);
+ this.layoutControlItem17.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem17.Text = " Gyro Scope";
+ this.layoutControlItem17.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem17.TextSize = new System.Drawing.Size(75, 20);
+ this.layoutControlItem17.TextToControlDistance = 5;
+ //
+ // layoutControlItem21
+ //
+ this.layoutControlItem21.Control = this.BtnAntiTheftDisable;
+ this.layoutControlItem21.Location = new System.Drawing.Point(192, 133);
+ this.layoutControlItem21.MaxSize = new System.Drawing.Size(0, 34);
+ this.layoutControlItem21.MinSize = new System.Drawing.Size(30, 34);
+ this.layoutControlItem21.Name = "layoutControlItem21";
+ this.layoutControlItem21.Size = new System.Drawing.Size(86, 34);
+ this.layoutControlItem21.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem21.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem21.TextVisible = false;
+ //
+ // layoutControlItem20
+ //
+ this.layoutControlItem20.Control = this.BtnClearAntiTheftProtect;
+ this.layoutControlItem20.Location = new System.Drawing.Point(0, 133);
+ this.layoutControlItem20.MinSize = new System.Drawing.Size(30, 26);
+ this.layoutControlItem20.Name = "layoutControlItem20";
+ this.layoutControlItem20.Size = new System.Drawing.Size(103, 34);
+ this.layoutControlItem20.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem20.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem20.TextVisible = false;
+ //
+ // layoutControlItem15
+ //
+ this.layoutControlItem15.Control = this.BtnAntiTheftEnable;
+ this.layoutControlItem15.Location = new System.Drawing.Point(103, 133);
+ this.layoutControlItem15.MinSize = new System.Drawing.Size(30, 26);
+ this.layoutControlItem15.Name = "layoutControlItem15";
+ this.layoutControlItem15.Size = new System.Drawing.Size(89, 34);
+ this.layoutControlItem15.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem15.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem15.TextVisible = false;
+ //
+ // layoutControlItem23
+ //
+ this.layoutControlItem23.Control = this.TeSensitive;
+ this.layoutControlItem23.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem23.CustomizationFormText = " Sensitive";
+ this.layoutControlItem23.Location = new System.Drawing.Point(0, 28);
+ this.layoutControlItem23.MinSize = new System.Drawing.Size(178, 28);
+ this.layoutControlItem23.Name = "layoutControlItem23";
+ this.layoutControlItem23.Size = new System.Drawing.Size(278, 28);
+ this.layoutControlItem23.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem23.Text = " Sensitive";
+ this.layoutControlItem23.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem23.TextSize = new System.Drawing.Size(75, 14);
+ this.layoutControlItem23.TextToControlDistance = 5;
+ //
+ // layoutControlGroup4
+ //
+ this.layoutControlGroup4.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem18,
+ this.emptySpaceItem7,
+ this.layoutControlItem16,
+ this.layoutControlItem22,
+ this.emptySpaceItem8});
+ this.layoutControlGroup4.Location = new System.Drawing.Point(286, 210);
+ this.layoutControlGroup4.Name = "layoutControlGroup4";
+ this.layoutControlGroup4.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup4.Size = new System.Drawing.Size(272, 196);
+ this.layoutControlGroup4.Text = "Anti-Theft (RS-485 Timeout)";
+ //
+ // layoutControlItem18
+ //
+ this.layoutControlItem18.Control = this.BtnRS485TimeoutSet;
+ this.layoutControlItem18.Location = new System.Drawing.Point(188, 133);
+ this.layoutControlItem18.MaxSize = new System.Drawing.Size(0, 34);
+ this.layoutControlItem18.MinSize = new System.Drawing.Size(76, 34);
+ this.layoutControlItem18.Name = "layoutControlItem18";
+ this.layoutControlItem18.Size = new System.Drawing.Size(76, 34);
+ this.layoutControlItem18.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem18.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem18.TextVisible = false;
+ //
+ // emptySpaceItem7
+ //
+ this.emptySpaceItem7.AllowHotTrack = false;
+ this.emptySpaceItem7.Location = new System.Drawing.Point(0, 28);
+ this.emptySpaceItem7.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem7.Name = "emptySpaceItem7";
+ this.emptySpaceItem7.Size = new System.Drawing.Size(264, 105);
+ this.emptySpaceItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem7.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem16
+ //
+ this.layoutControlItem16.Control = this.TeCommTimeout;
+ this.layoutControlItem16.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem16.MinSize = new System.Drawing.Size(178, 28);
+ this.layoutControlItem16.Name = "layoutControlItem16";
+ this.layoutControlItem16.Size = new System.Drawing.Size(180, 28);
+ this.layoutControlItem16.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem16.Text = " RS-485 Timeout";
+ this.layoutControlItem16.TextSize = new System.Drawing.Size(93, 14);
+ //
+ // layoutControlItem22
+ //
+ this.layoutControlItem22.Control = this.TeCommTimeoutNew;
+ this.layoutControlItem22.Location = new System.Drawing.Point(180, 0);
+ this.layoutControlItem22.Name = "layoutControlItem22";
+ this.layoutControlItem22.Size = new System.Drawing.Size(84, 28);
+ this.layoutControlItem22.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem22.TextVisible = false;
+ //
+ // emptySpaceItem8
+ //
+ this.emptySpaceItem8.AllowHotTrack = false;
+ this.emptySpaceItem8.Location = new System.Drawing.Point(0, 133);
+ this.emptySpaceItem8.Name = "emptySpaceItem8";
+ this.emptySpaceItem8.Size = new System.Drawing.Size(188, 34);
+ this.emptySpaceItem8.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // emptySpaceItem5
+ //
+ this.emptySpaceItem5.AllowHotTrack = false;
+ this.emptySpaceItem5.Location = new System.Drawing.Point(558, 210);
+ this.emptySpaceItem5.Name = "emptySpaceItem5";
+ this.emptySpaceItem5.Size = new System.Drawing.Size(280, 196);
+ this.emptySpaceItem5.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // ucCalibration
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.Name = "ucCalibration";
+ this.Size = new System.Drawing.Size(838, 406);
+ this.Load += new System.EventHandler(this.ucCalibration_Load);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.TeCommTimeoutNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeCommTimeout.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbBmsDateTime)).EndInit();
+ this.gbBmsDateTime.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit();
+ this.layoutControl3.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.TeCurrDateTime.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeNewDateTime.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbChaModeControl)).EndInit();
+ this.gbChaModeControl.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit();
+ this.layoutControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.TeChgModeValueNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeChgModeValueCurr.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.CbNewChaMode.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeChaMode.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbCapacityControl)).EndInit();
+ this.gbCapacityControl.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl7)).EndInit();
+ this.layoutControl7.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.teNewSoc.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.teCurrSoc.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.teNewCapacity.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.teCurrCapacity.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemDesignCapacity)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem12)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem13)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem25)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeAntiTheftGyroCurr.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeSensitive.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem17)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem21)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem23)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem18)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem5)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.GroupControl gbCapacityControl;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem19;
+ private DevExpress.XtraLayout.LayoutControl layoutControl7;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup7;
+ private DevExpress.XtraEditors.TextEdit teCurrCapacity;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemDesignCapacity;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem12;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem13;
+ private DevExpress.XtraEditors.SimpleButton btnCapacitySet;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem25;
+ private DevExpress.XtraEditors.TextEdit teNewCapacity;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem1;
+ private DevExpress.XtraEditors.TextEdit teCurrSoc;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraEditors.TextEdit teNewSoc;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem2;
+ private DevExpress.XtraEditors.GroupControl gbChaModeControl;
+ private DevExpress.XtraLayout.LayoutControl layoutControl2;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraEditors.SimpleButton BtnChaModeSet;
+ private DevExpress.XtraEditors.TextEdit TeChaMode;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+ private DevExpress.XtraEditors.GroupControl gbBmsDateTime;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ private DevExpress.XtraLayout.LayoutControl layoutControl3;
+ private DevExpress.XtraEditors.TextEdit TeCurrDateTime;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
+ private DevExpress.XtraEditors.TextEdit TeNewDateTime;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem3;
+ private DevExpress.XtraEditors.SimpleButton BtnBmsDateTimeSet;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem4;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11;
+ private DevExpress.XtraEditors.SimpleButton BtnGetCurrTime;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12;
+ private DevExpress.XtraEditors.ComboBoxEdit CbNewChaMode;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13;
+ private DevExpress.XtraEditors.TextEdit TeChgModeValueCurr;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem3;
+ private DevExpress.XtraEditors.TextEdit TeChgModeValueNew;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem14;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem6;
+ private DevExpress.XtraEditors.TextEdit TeAntiTheftGyroCurr;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem17;
+ private DevExpress.XtraEditors.SimpleButton BtnAntiTheftDisable;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem21;
+ private DevExpress.XtraEditors.SimpleButton BtnClearAntiTheftProtect;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem20;
+ private DevExpress.XtraEditors.SimpleButton BtnAntiTheftEnable;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem15;
+ private DevExpress.XtraEditors.SimpleButton BtnRS485TimeoutSet;
+ private DevExpress.XtraEditors.TextEdit TeCommTimeout;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem16;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem18;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup4;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem7;
+ private DevExpress.XtraEditors.TextEdit TeCommTimeoutNew;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem22;
+ private DevExpress.XtraEditors.TextEdit TeSensitive;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem23;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem8;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem5;
+ }
+}
diff --git a/LFP_Manager/Controls/ucCalibration.cs b/LFP_Manager/Controls/ucCalibration.cs
new file mode 100644
index 0000000..a4b2f97
--- /dev/null
+++ b/LFP_Manager/Controls/ucCalibration.cs
@@ -0,0 +1,443 @@
+using LFP_Manager.DataStructure;
+using LFP_Manager.Utils;
+using System;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Controls
+{
+ public partial class ucCalibration : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region DELEGATE
+
+ public delegate void setCalibUpdate(object sender);
+ public delegate void setCalibCommand(int mode, int index, int flag,
+ ref CsDeviceData.DeviceModuleData.DeviceParamData aParm,
+ ref CsDeviceData.DeviceModuleData.DeviceCalibration aCalib);
+ public delegate Int32 getBattData(int item, int cno);
+
+ #endregion
+
+ #region ENUMS
+
+ private enum ControlLevel
+ {
+ User = 0,
+ Technician = 1,
+ Engineer = 2,
+ Master = 3
+ }
+
+ private enum CommandMode
+ {
+ SetCapacity = 15,
+ SetChargeMode = 16,
+ SetDateTime = 17,
+ SetAntiTheft = 18,
+ ClearAntiTheft = 19,
+ SetRS485Timeout = 20,
+ SetBalanceVoltage = 21,
+ SetBalanceDiff = 22
+ }
+
+ #endregion
+
+ #region VARIABLES
+
+ const int CALC_INDEX = 6;
+
+ CommConfig Config;
+
+ CsDeviceData.DeviceModuleData ModuleData;
+ CsDeviceData.DeviceModuleData.DeviceCalibration rCalib;
+ CsDeviceData.DeviceModuleData.DeviceCalibration wCalib;
+
+ CsDeviceData.DeviceModuleData.DeviceParamData rParam;
+
+ public event setCalibCommand OnCommand = null;
+
+ int wFlag = 0;
+
+ int dFlag;
+
+ int PasswordResult;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ // Battery No:
+ // 0: No 1,3,5,7,9,11,13,15 ODD
+ // 1: No 2,4,6,8,10,12,14 Even
+ public ucCalibration()
+ {
+ InitializeComponent();
+
+ ComponentLoad();
+
+ Config = new CommConfig();
+
+ dFlag = 0;
+ }
+
+ private void ComponentLoad()
+ {
+ CbNewChaMode.Clear();
+ for (int i = 0; i < csConstData.SystemInfo.CHG_MODE.Length; i++)
+ {
+ CbNewChaMode.Properties.Items.Add(csConstData.SystemInfo.CHG_MODE[i]);
+ }
+
+ teNewCapacity.KeyPress += TextBox_KeyPress;
+ teNewSoc.KeyPress += TextBox_KeyPress;
+ TeCommTimeoutNew.KeyPress += TextBox_KeyPress;
+ TeChgModeValueNew.KeyPress += TextBox_KeyPress2;
+ }
+ #endregion
+
+ #region EXT EVENT FUNCTION
+
+ private void OnCommnadEvent(int mode, int index, int flag,
+ ref CsDeviceData.DeviceModuleData.DeviceParamData aParam,
+ ref CsDeviceData.DeviceModuleData.DeviceCalibration aCalib)
+ {
+ OnCommand?.Invoke(mode, index, flag, ref aParam, ref aCalib);
+ }
+
+ #endregion
+
+ #region PUBLIC FUCTIONS
+
+ public void UpdateConfig(CommConfig aConfig)
+ {
+ Config = aConfig;
+ }
+ public void UpdateData(CsDeviceData.DeviceModuleData mData, CsDeviceData.DeviceModuleData.DeviceCalibration aCalib)
+ {
+ ModuleData = mData;
+ rCalib = aCalib;
+ DisplayCalib();
+ UpdateNewCalib();
+ }
+
+ private void UpdateNewCalib()
+ {
+ if (ModuleData != null)
+ {
+ if (wFlag == 0)
+ {
+ teNewCapacity.Text = teCurrCapacity.Text;
+ teNewSoc.Text = teCurrSoc.Text;
+
+ wFlag = 1;
+ }
+ }
+ }
+ #endregion
+
+ #region DISPLAY DATA
+
+ private void DisplayCalib()
+ {
+ if (ModuleData != null)
+ {
+ teCurrCapacity.Text = string.Format("{0}", ModuleData.ValueData.designedCapacity / 10);
+ teCurrSoc.Text = string.Format("{0}", ModuleData.ValueData.SOC / 10);
+
+ switch (ModuleData.CalibrationData.ChaMode.Mode)
+ {
+ case 0:
+ TeChaMode.Text = csConstData.SystemInfo.CHG_MODE[0];
+ break;
+ case 1:
+ TeChaMode.Text = csConstData.SystemInfo.CHG_MODE[1];
+ break;
+ case 2:
+ TeChaMode.Text = csConstData.SystemInfo.CHG_MODE[2];
+ break;
+ case 4:
+ TeChaMode.Text = csConstData.SystemInfo.CHG_MODE[3];
+ break;
+ case 8:
+ TeChaMode.Text = csConstData.SystemInfo.CHG_MODE[4];
+ break;
+ default:
+ TeChaMode.Text = string.Format("UNKNOWN({0})", ModuleData.CalibrationData.ChaMode.Mode);
+ break;
+ }
+ TeChgModeValueCurr.Text = string.Format("{0:0.00}", Convert.ToDouble(ModuleData.CalibrationData.ChaMode.Value) / 100);
+
+ TeCurrDateTime.Text = ModuleData.BmsDateTime.DateTimeStr;
+
+ // Anti-Theft Data Display
+ if (ModuleData.CalibrationData.AntiTheft.GyroScope == 0)
+ {
+ TeAntiTheftGyroCurr.Text = "DISABLE";
+ }
+ else
+ {
+ TeAntiTheftGyroCurr.Text = "ENABLE";
+ }
+ TeSensitive.Text = string.Format("{0}", ModuleData.CalibrationData.AntiTheft.GyroScope);
+
+ // Anti-Theft - RS-485 Comm. Timeout
+ TeCommTimeout.Text = string.Format("{0}", ModuleData.CalibrationData.AntiTheft.Comm);
+
+ if (dFlag == 0)
+ {
+ CbNewChaMode.SelectedIndex = 1;
+ switch (ModuleData.CalibrationData.ChaMode.Mode)
+ {
+ case 0:
+ CbNewChaMode.SelectedIndex = 0;
+ break;
+ case 1:
+ CbNewChaMode.SelectedIndex = 1;
+ break;
+ case 2:
+ CbNewChaMode.SelectedIndex = 2;
+ break;
+ case 4:
+ CbNewChaMode.SelectedIndex = 3;
+ break;
+ case 8:
+ CbNewChaMode.SelectedIndex = 4;
+ break;
+ default:
+ CbNewChaMode.Text = string.Format("UNKNOWN({0})", ModuleData.CalibrationData.ChaMode.Mode);
+ break;
+ }
+
+ TeChgModeValueNew.Text = TeChgModeValueCurr.Text;
+
+ dFlag = 1;
+ }
+ }
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+
+ private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
+ {
+ csUtils.TypingOnlyNumber(sender, e, false, false);
+ }
+ private void TextBox_KeyPress2(object sender, KeyPressEventArgs e)
+ {
+ csUtils.TypingOnlyNumber(sender, e, true, false);
+ }
+
+ private void btnCapacitySet_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ if (!ValidateNumericInput(teNewCapacity.Text, "Capacity") ||
+ !ValidateNumericInput(teNewSoc.Text, "SOC"))
+ {
+ return;
+ }
+
+ wCalib = rCalib.DeepCopy();
+ wCalib.CapCalib.DesignCapacity = Convert.ToInt32(teNewCapacity.Text) * 10;
+ wCalib.CapCalib.SocValue = Convert.ToInt32(teNewSoc.Text);
+
+ OnCommnadEvent((int)CommandMode.SetCapacity, CALC_INDEX, 1, ref rParam, ref wCalib);
+ }
+ catch (Exception ex)
+ {
+ ShowError($"Failed to set capacity: {ex.Message}");
+ }
+ }
+
+ private void BtnChaModeSet_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ if (string.IsNullOrEmpty(CbNewChaMode.Text))
+ {
+ ShowError("Please select a charge mode");
+ return;
+ }
+
+ if (CbNewChaMode.SelectedIndex > 1 &&
+ !ValidateNumericInput(TeChgModeValueNew.Text, "Charge Mode Value"))
+ {
+ return;
+ }
+
+ wCalib = rCalib.DeepCopy();
+ wCalib.ChaMode.Mode = CbNewChaMode.SelectedIndex;
+ wCalib.ChaMode.Value = (int)(Convert.ToDouble(TeChgModeValueNew.Text) * 100);
+
+ OnCommnadEvent((int)CommandMode.SetChargeMode, CALC_INDEX, 1, ref rParam, ref wCalib);
+ }
+ catch (Exception ex)
+ {
+ ShowError($"Failed to set charge mode: {ex.Message}");
+ }
+ }
+ private void BtnBmsDateTimeSet_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ if (string.IsNullOrEmpty(TeNewDateTime.Text))
+ {
+ ShowError("Please enter a date/time value");
+ return;
+ }
+
+ DateTime dateTime = Convert.ToDateTime(TeNewDateTime.Text);
+ int iDateTime = CalculateDateTimeValue(dateTime);
+
+ wCalib = rCalib.DeepCopy();
+ wCalib.BmsDateTime.sValue[0] = (short)(iDateTime >> 16);
+ wCalib.BmsDateTime.sValue[1] = (short)(iDateTime >> 0);
+
+ OnCommnadEvent((int)CommandMode.SetDateTime, CALC_INDEX, 1, ref rParam, ref wCalib);
+ }
+ catch (Exception ex)
+ {
+ ShowError($"Failed to set date/time: {ex.Message}");
+ }
+ }
+ private int CalculateDateTimeValue(DateTime dateTime)
+ {
+ return ((dateTime.Year - 2000) << 26)
+ | (dateTime.Month << 22)
+ | (dateTime.Day << 17)
+ | (dateTime.Hour << 12)
+ | (dateTime.Minute << 6)
+ | (dateTime.Second << 0);
+ }
+
+ private void BtnGetCurrTime_Click(object sender, EventArgs e)
+ {
+ TeNewDateTime.Text = string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now);
+ }
+
+ private void BtnClearAntiTheftProtect_Click(object sender, EventArgs e)
+ {
+ wCalib = rCalib.DeepCopy();
+ wCalib.AntiTheft.GyroScope = Config.GyroSensitive;
+
+ OnCommnadEvent(19, CALC_INDEX, 1, ref rParam, ref wCalib);
+ }
+
+ private void PassWordResultProc(int result)
+ {
+ PasswordResult = result;
+ }
+
+ private void BtnAntiTheftEnable_Click(object sender, EventArgs e)
+ {
+ wCalib = rCalib.DeepCopy();
+ wCalib.AntiTheft.GyroScope = Config.GyroSensitive;
+
+ OnCommnadEvent(18, CALC_INDEX, 1, ref rParam, ref wCalib);
+ }
+
+ private void BtnAntiTheftDisable_Click(object sender, EventArgs e)
+ {
+ wCalib = rCalib.DeepCopy();
+ wCalib.AntiTheft.GyroScope = 0;
+
+ OnCommnadEvent(18, CALC_INDEX, 1, ref rParam, ref wCalib);
+ }
+
+ private void BtnRS485TimeoutSet_Click(object sender, EventArgs e)
+ {
+ string stTimeout = TeCommTimeoutNew.Text;
+ int Timeout = 0;
+
+ try
+ {
+ Timeout = Convert.ToInt32(stTimeout);
+ }
+ catch (Exception)
+ {
+ MessageBox.Show("Timeout data Format Error", "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+
+ wCalib = rCalib.DeepCopy();
+ wCalib.AntiTheft.Comm = Timeout;
+
+ OnCommnadEvent(20, CALC_INDEX, 1, ref rParam, ref wCalib);
+ }
+ #endregion
+
+ #region COMPONENT EVENT
+ private void CbNewChaMode_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ switch (CbNewChaMode.SelectedIndex)
+ {
+ case 0:
+ TeChgModeValueNew.Enabled = false;
+ break;
+ case 1:
+ TeChgModeValueNew.Enabled = false;
+ break;
+ case 2:
+ TeChgModeValueNew.Enabled = true;
+ break;
+ case 3:
+ TeChgModeValueNew.Enabled = true;
+ break;
+ case 4:
+ TeChgModeValueNew.Enabled = true;
+ break;
+ default:
+ TeChgModeValueNew.Enabled = false;
+ break;
+ }
+ }
+ #endregion
+
+ #region FORM EVENT
+ private void ucCalibration_Load(object sender, EventArgs e)
+ {
+ CalibConfig_ReLoad();
+ }
+
+ private void CalibConfig_ReLoad()
+ {
+ var level = (ControlLevel)Config.ControlLevel;
+
+ btnCapacitySet.Enabled = level == ControlLevel.Master;
+ BtnChaModeSet.Enabled = level >= ControlLevel.Engineer;
+ BtnBmsDateTimeSet.Enabled = level >= ControlLevel.Engineer;
+ BtnClearAntiTheftProtect.Enabled = level >= ControlLevel.Technician;
+ BtnAntiTheftEnable.Enabled = level >= ControlLevel.Engineer;
+ BtnAntiTheftDisable.Enabled = level >= ControlLevel.Engineer;
+ BtnRS485TimeoutSet.Enabled = level >= ControlLevel.Technician;
+ }
+
+ #endregion
+
+ #region VALIDATION METHODS
+
+ private bool ValidateNumericInput(string input, string fieldName)
+ {
+ if (string.IsNullOrEmpty(input))
+ {
+ ShowError($"Please enter a value for {fieldName}");
+ return false;
+ }
+
+ if (!int.TryParse(input, out _))
+ {
+ ShowError($"Invalid numeric value for {fieldName}");
+ return false;
+ }
+
+ return true;
+ }
+
+ private void ShowError(string message)
+ {
+ MessageBox.Show(message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucCalibration.resx b/LFP_Manager/Controls/ucCalibration.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/ucCalibration.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucCalibrationView.Designer.cs b/LFP_Manager/Controls/ucCalibrationView.Designer.cs
new file mode 100644
index 0000000..2ad16c0
--- /dev/null
+++ b/LFP_Manager/Controls/ucCalibrationView.Designer.cs
@@ -0,0 +1,303 @@
+
+namespace LFP_Manager.Controls
+{
+ partial class ucCalibrationView
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.edDchCalibration = new DevExpress.XtraEditors.TextEdit();
+ this.edChgCalibration = new DevExpress.XtraEditors.TextEdit();
+ this.edChgOption = new DevExpress.XtraEditors.TextEdit();
+ this.edBattCapacity = new DevExpress.XtraEditors.TextEdit();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.gbBattCapacity = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lbBattCapacity = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.gbCalibrationValue = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lbChgOption = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lbChgCalibration = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lbDchCalibration = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.edDchCalibration.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edChgCalibration.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edChgOption.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edBattCapacity.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbBattCapacity)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbBattCapacity)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbCalibrationValue)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbChgOption)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbChgCalibration)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbDchCalibration)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.AllowCustomization = false;
+ this.layoutControl1.Controls.Add(this.edDchCalibration);
+ this.layoutControl1.Controls.Add(this.edChgCalibration);
+ this.layoutControl1.Controls.Add(this.edChgOption);
+ this.layoutControl1.Controls.Add(this.edBattCapacity);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(993, 152, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(449, 277);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // edDchCalibration
+ //
+ this.edDchCalibration.Location = new System.Drawing.Point(129, 132);
+ this.edDchCalibration.Name = "edDchCalibration";
+ this.edDchCalibration.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.edDchCalibration.Properties.Appearance.Options.UseFont = true;
+ this.edDchCalibration.Properties.Appearance.Options.UseTextOptions = true;
+ this.edDchCalibration.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edDchCalibration.Size = new System.Drawing.Size(314, 22);
+ this.edDchCalibration.StyleController = this.layoutControl1;
+ this.edDchCalibration.TabIndex = 7;
+ //
+ // edChgCalibration
+ //
+ this.edChgCalibration.Location = new System.Drawing.Point(129, 106);
+ this.edChgCalibration.Name = "edChgCalibration";
+ this.edChgCalibration.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.edChgCalibration.Properties.Appearance.Options.UseFont = true;
+ this.edChgCalibration.Properties.Appearance.Options.UseTextOptions = true;
+ this.edChgCalibration.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edChgCalibration.Size = new System.Drawing.Size(314, 22);
+ this.edChgCalibration.StyleController = this.layoutControl1;
+ this.edChgCalibration.TabIndex = 6;
+ //
+ // edChgOption
+ //
+ this.edChgOption.Location = new System.Drawing.Point(129, 80);
+ this.edChgOption.Name = "edChgOption";
+ this.edChgOption.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.edChgOption.Properties.Appearance.Options.UseFont = true;
+ this.edChgOption.Properties.Appearance.Options.UseTextOptions = true;
+ this.edChgOption.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edChgOption.Size = new System.Drawing.Size(314, 22);
+ this.edChgOption.StyleController = this.layoutControl1;
+ this.edChgOption.TabIndex = 5;
+ //
+ // edBattCapacity
+ //
+ this.edBattCapacity.Location = new System.Drawing.Point(129, 27);
+ this.edBattCapacity.Name = "edBattCapacity";
+ this.edBattCapacity.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.edBattCapacity.Properties.Appearance.Options.UseFont = true;
+ this.edBattCapacity.Properties.Appearance.Options.UseTextOptions = true;
+ this.edBattCapacity.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edBattCapacity.Size = new System.Drawing.Size(314, 22);
+ this.edBattCapacity.StyleController = this.layoutControl1;
+ this.edBattCapacity.TabIndex = 4;
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.emptySpaceItem1,
+ this.gbBattCapacity,
+ this.gbCalibrationValue});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(449, 277);
+ this.Root.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 158);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(447, 117);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // gbBattCapacity
+ //
+ this.gbBattCapacity.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lbBattCapacity,
+ this.layoutControlItem1});
+ this.gbBattCapacity.Location = new System.Drawing.Point(0, 0);
+ this.gbBattCapacity.Name = "gbBattCapacity";
+ this.gbBattCapacity.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.gbBattCapacity.Size = new System.Drawing.Size(447, 53);
+ this.gbBattCapacity.Spacing = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.gbBattCapacity.Text = "Battery Capacity";
+ //
+ // lbBattCapacity
+ //
+ this.lbBattCapacity.AllowHotTrack = false;
+ this.lbBattCapacity.Location = new System.Drawing.Point(0, 0);
+ this.lbBattCapacity.Name = "lbBattCapacity";
+ this.lbBattCapacity.Size = new System.Drawing.Size(123, 26);
+ this.lbBattCapacity.Text = " Battery Capacity";
+ this.lbBattCapacity.TextSize = new System.Drawing.Size(96, 14);
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.edBattCapacity;
+ this.layoutControlItem1.Location = new System.Drawing.Point(123, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(318, 26);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // gbCalibrationValue
+ //
+ this.gbCalibrationValue.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lbChgOption,
+ this.layoutControlItem2,
+ this.lbChgCalibration,
+ this.layoutControlItem3,
+ this.lbDchCalibration,
+ this.layoutControlItem4});
+ this.gbCalibrationValue.Location = new System.Drawing.Point(0, 53);
+ this.gbCalibrationValue.Name = "gbCalibrationValue";
+ this.gbCalibrationValue.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.gbCalibrationValue.Size = new System.Drawing.Size(447, 105);
+ this.gbCalibrationValue.Spacing = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.gbCalibrationValue.Text = "Calibration Value";
+ //
+ // lbChgOption
+ //
+ this.lbChgOption.AllowHotTrack = false;
+ this.lbChgOption.Location = new System.Drawing.Point(0, 0);
+ this.lbChgOption.Name = "lbChgOption";
+ this.lbChgOption.Size = new System.Drawing.Size(123, 26);
+ this.lbChgOption.Text = " Charge Option";
+ this.lbChgOption.TextSize = new System.Drawing.Size(96, 14);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.edChgOption;
+ this.layoutControlItem2.Location = new System.Drawing.Point(123, 0);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(318, 26);
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // lbChgCalibration
+ //
+ this.lbChgCalibration.AllowHotTrack = false;
+ this.lbChgCalibration.Location = new System.Drawing.Point(0, 26);
+ this.lbChgCalibration.Name = "lbChgCalibration";
+ this.lbChgCalibration.Size = new System.Drawing.Size(123, 26);
+ this.lbChgCalibration.Text = " Calibration (CHG)";
+ this.lbChgCalibration.TextSize = new System.Drawing.Size(96, 14);
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.edChgCalibration;
+ this.layoutControlItem3.Location = new System.Drawing.Point(123, 26);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(318, 26);
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // lbDchCalibration
+ //
+ this.lbDchCalibration.AllowHotTrack = false;
+ this.lbDchCalibration.Location = new System.Drawing.Point(0, 52);
+ this.lbDchCalibration.Name = "lbDchCalibration";
+ this.lbDchCalibration.Size = new System.Drawing.Size(123, 26);
+ this.lbDchCalibration.Text = " Calibration (DCH)";
+ this.lbDchCalibration.TextSize = new System.Drawing.Size(96, 14);
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.edDchCalibration;
+ this.layoutControlItem4.Location = new System.Drawing.Point(123, 52);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(318, 26);
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // ucCalibrationView
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.Name = "ucCalibrationView";
+ this.Size = new System.Drawing.Size(449, 277);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.edDchCalibration.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edChgCalibration.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edChgOption.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edBattCapacity.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbBattCapacity)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbBattCapacity)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbCalibrationValue)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbChgOption)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbChgCalibration)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbDchCalibration)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraEditors.TextEdit edBattCapacity;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraEditors.TextEdit edDchCalibration;
+ private DevExpress.XtraEditors.TextEdit edChgCalibration;
+ private DevExpress.XtraEditors.TextEdit edChgOption;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraLayout.SimpleLabelItem lbBattCapacity;
+ private DevExpress.XtraLayout.SimpleLabelItem lbChgOption;
+ private DevExpress.XtraLayout.SimpleLabelItem lbChgCalibration;
+ private DevExpress.XtraLayout.SimpleLabelItem lbDchCalibration;
+ private DevExpress.XtraLayout.LayoutControlGroup gbBattCapacity;
+ private DevExpress.XtraLayout.LayoutControlGroup gbCalibrationValue;
+ }
+}
diff --git a/LFP_Manager/Controls/ucCalibrationView.cs b/LFP_Manager/Controls/ucCalibrationView.cs
new file mode 100644
index 0000000..ee0b154
--- /dev/null
+++ b/LFP_Manager/Controls/ucCalibrationView.cs
@@ -0,0 +1,34 @@
+using DevExpress.XtraEditors;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+using LFP_Manager.DataStructure;
+
+namespace LFP_Manager.Controls
+{
+ public partial class ucCalibrationView : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region VARIABLES
+
+ private CsDeviceData.DeviceModuleData ModuleData;
+
+ #endregion
+
+ public ucCalibrationView()
+ {
+ InitializeComponent();
+
+ edBattCapacity.Enabled = false;
+ edChgOption.Enabled = false;
+ edChgCalibration.Enabled = false;
+ edDchCalibration.Enabled = false;
+ }
+ }
+}
diff --git a/LFP_Manager/Controls/ucCalibrationView.resx b/LFP_Manager/Controls/ucCalibrationView.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/ucCalibrationView.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucCommConfig.Designer.cs b/LFP_Manager/Controls/ucCommConfig.Designer.cs
new file mode 100644
index 0000000..69f8507
--- /dev/null
+++ b/LFP_Manager/Controls/ucCommConfig.Designer.cs
@@ -0,0 +1,721 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucCommConfig
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.RbRS485 = new DevExpress.XtraEditors.CheckEdit();
+ this.CbSnmpModel = new DevExpress.XtraEditors.ComboBoxEdit();
+ this.teTargetIP = new IPAddressControlLib.IPAddressControl();
+ this.RbSnmp = new DevExpress.XtraEditors.CheckEdit();
+ this.edRecvWaitTime = new DevExpress.XtraEditors.TextEdit();
+ this.cbUartModel = new DevExpress.XtraEditors.ComboBoxEdit();
+ this.RbUart = new DevExpress.XtraEditors.CheckEdit();
+ this.cbUartPort = new DevExpress.XtraEditors.ComboBoxEdit();
+ this.cbDbLogPeriod = new DevExpress.XtraEditors.ComboBoxEdit();
+ this.btnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.btnSave = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.gbDbConfig = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lbDbLogPeriod = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem15 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlGroup4 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.LcGroupUart = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.simpleLabelItem3 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.simpleLabelItem4 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.simpleLabelItem2 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.LcGroupSnmp = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.simpleLabelItem6 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.simpleLabelItem1 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.CbModuleQty = new DevExpress.XtraEditors.ComboBoxEdit();
+ this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.simpleLabelItem5 = new DevExpress.XtraLayout.SimpleLabelItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.RbRS485.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.CbSnmpModel.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.RbSnmp.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edRecvWaitTime.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.cbUartModel.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.RbUart.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.cbUartPort.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.cbDbLogPeriod.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbDbConfig)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbDbLogPeriod)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.LcGroupUart)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.LcGroupSnmp)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.CbModuleQty.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem5)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.CbModuleQty);
+ this.layoutControl1.Controls.Add(this.RbRS485);
+ this.layoutControl1.Controls.Add(this.CbSnmpModel);
+ this.layoutControl1.Controls.Add(this.teTargetIP);
+ this.layoutControl1.Controls.Add(this.RbSnmp);
+ this.layoutControl1.Controls.Add(this.edRecvWaitTime);
+ this.layoutControl1.Controls.Add(this.cbUartModel);
+ this.layoutControl1.Controls.Add(this.RbUart);
+ this.layoutControl1.Controls.Add(this.cbUartPort);
+ this.layoutControl1.Controls.Add(this.cbDbLogPeriod);
+ this.layoutControl1.Controls.Add(this.btnClose);
+ this.layoutControl1.Controls.Add(this.btnSave);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(889, 267, 774, 451);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(462, 458);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // RbRS485
+ //
+ this.RbRS485.Location = new System.Drawing.Point(161, 37);
+ this.RbRS485.Name = "RbRS485";
+ this.RbRS485.Properties.Caption = "RS-485";
+ this.RbRS485.Properties.CheckStyle = DevExpress.XtraEditors.Controls.CheckStyles.Radio;
+ this.RbRS485.Properties.RadioGroupIndex = 1;
+ this.RbRS485.Size = new System.Drawing.Size(140, 20);
+ this.RbRS485.StyleController = this.layoutControl1;
+ this.RbRS485.TabIndex = 18;
+ this.RbRS485.TabStop = false;
+ this.RbRS485.CheckStateChanged += new System.EventHandler(this.RbRS485_CheckStateChanged);
+ //
+ // CbSnmpModel
+ //
+ this.CbSnmpModel.EditValue = "LFPS-48100D";
+ this.CbSnmpModel.Location = new System.Drawing.Point(146, 128);
+ this.CbSnmpModel.Name = "CbSnmpModel";
+ this.CbSnmpModel.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.CbSnmpModel.Properties.Appearance.Options.UseFont = true;
+ this.CbSnmpModel.Properties.Appearance.Options.UseTextOptions = true;
+ this.CbSnmpModel.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.CbSnmpModel.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+ new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+ this.CbSnmpModel.Properties.Items.AddRange(new object[] {
+ "LFPR-481000S-J"});
+ this.CbSnmpModel.Size = new System.Drawing.Size(308, 24);
+ this.CbSnmpModel.StyleController = this.layoutControl1;
+ this.CbSnmpModel.TabIndex = 17;
+ //
+ // teTargetIP
+ //
+ this.teTargetIP.AllowInternalTab = false;
+ this.teTargetIP.AutoHeight = true;
+ this.teTargetIP.BackColor = System.Drawing.SystemColors.Window;
+ this.teTargetIP.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.teTargetIP.Cursor = System.Windows.Forms.Cursors.IBeam;
+ this.teTargetIP.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.teTargetIP.Location = new System.Drawing.Point(146, 98);
+ this.teTargetIP.MinimumSize = new System.Drawing.Size(117, 26);
+ this.teTargetIP.Name = "teTargetIP";
+ this.teTargetIP.ReadOnly = false;
+ this.teTargetIP.Size = new System.Drawing.Size(308, 26);
+ this.teTargetIP.TabIndex = 16;
+ this.teTargetIP.Text = "192.168.0.200";
+ //
+ // RbSnmp
+ //
+ this.RbSnmp.Location = new System.Drawing.Point(305, 37);
+ this.RbSnmp.Name = "RbSnmp";
+ this.RbSnmp.Properties.Caption = "SNMP";
+ this.RbSnmp.Properties.CheckBoxOptions.Style = DevExpress.XtraEditors.Controls.CheckBoxStyle.Radio;
+ this.RbSnmp.Properties.RadioGroupIndex = 1;
+ this.RbSnmp.Size = new System.Drawing.Size(141, 20);
+ this.RbSnmp.StyleController = this.layoutControl1;
+ this.RbSnmp.TabIndex = 15;
+ this.RbSnmp.TabStop = false;
+ this.RbSnmp.CheckedChanged += new System.EventHandler(this.RbSnmp_CheckedChanged);
+ //
+ // edRecvWaitTime
+ //
+ this.edRecvWaitTime.EditValue = "100";
+ this.edRecvWaitTime.Location = new System.Drawing.Point(146, 269);
+ this.edRecvWaitTime.Name = "edRecvWaitTime";
+ this.edRecvWaitTime.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.edRecvWaitTime.Properties.Appearance.Options.UseFont = true;
+ this.edRecvWaitTime.Properties.Appearance.Options.UseTextOptions = true;
+ this.edRecvWaitTime.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edRecvWaitTime.Size = new System.Drawing.Size(308, 24);
+ this.edRecvWaitTime.StyleController = this.layoutControl1;
+ this.edRecvWaitTime.TabIndex = 14;
+ //
+ // cbUartModel
+ //
+ this.cbUartModel.EditValue = "LFPS-48100D";
+ this.cbUartModel.Location = new System.Drawing.Point(146, 213);
+ this.cbUartModel.Name = "cbUartModel";
+ this.cbUartModel.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.cbUartModel.Properties.Appearance.Options.UseFont = true;
+ this.cbUartModel.Properties.Appearance.Options.UseTextOptions = true;
+ this.cbUartModel.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cbUartModel.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+ new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+ this.cbUartModel.Properties.Items.AddRange(new object[] {
+ "LFPS-48100S-J"});
+ this.cbUartModel.Size = new System.Drawing.Size(308, 24);
+ this.cbUartModel.StyleController = this.layoutControl1;
+ this.cbUartModel.TabIndex = 11;
+ //
+ // RbUart
+ //
+ this.RbUart.Location = new System.Drawing.Point(16, 37);
+ this.RbUart.Name = "RbUart";
+ this.RbUart.Properties.Caption = "RS-232";
+ this.RbUart.Properties.CheckStyle = DevExpress.XtraEditors.Controls.CheckStyles.Radio;
+ this.RbUart.Properties.RadioGroupIndex = 1;
+ this.RbUart.Size = new System.Drawing.Size(141, 20);
+ this.RbUart.StyleController = this.layoutControl1;
+ this.RbUart.TabIndex = 8;
+ this.RbUart.TabStop = false;
+ this.RbUart.CheckStateChanged += new System.EventHandler(this.RbUart_CheckStateChanged);
+ //
+ // cbUartPort
+ //
+ this.cbUartPort.EditValue = "";
+ this.cbUartPort.Location = new System.Drawing.Point(146, 185);
+ this.cbUartPort.Name = "cbUartPort";
+ this.cbUartPort.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.cbUartPort.Properties.Appearance.Options.UseFont = true;
+ this.cbUartPort.Properties.Appearance.Options.UseTextOptions = true;
+ this.cbUartPort.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cbUartPort.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+ new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+ this.cbUartPort.Size = new System.Drawing.Size(308, 24);
+ this.cbUartPort.StyleController = this.layoutControl1;
+ this.cbUartPort.TabIndex = 6;
+ //
+ // cbDbLogPeriod
+ //
+ this.cbDbLogPeriod.EditValue = "1";
+ this.cbDbLogPeriod.Location = new System.Drawing.Point(145, 345);
+ this.cbDbLogPeriod.Name = "cbDbLogPeriod";
+ this.cbDbLogPeriod.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.cbDbLogPeriod.Properties.Appearance.Options.UseFont = true;
+ this.cbDbLogPeriod.Properties.Appearance.Options.UseTextOptions = true;
+ this.cbDbLogPeriod.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cbDbLogPeriod.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+ new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+ this.cbDbLogPeriod.Properties.Items.AddRange(new object[] {
+ "1",
+ "5",
+ "10",
+ "15",
+ "30",
+ "60"});
+ this.cbDbLogPeriod.Size = new System.Drawing.Size(310, 24);
+ this.cbDbLogPeriod.StyleController = this.layoutControl1;
+ this.cbDbLogPeriod.TabIndex = 9;
+ //
+ // btnClose
+ //
+ this.btnClose.Appearance.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnClose.Appearance.Options.UseFont = true;
+ this.btnClose.Location = new System.Drawing.Point(233, 418);
+ this.btnClose.Name = "btnClose";
+ this.btnClose.Size = new System.Drawing.Size(225, 36);
+ this.btnClose.StyleController = this.layoutControl1;
+ this.btnClose.TabIndex = 7;
+ this.btnClose.Text = "CLOSE";
+ this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+ //
+ // btnSave
+ //
+ this.btnSave.Appearance.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnSave.Appearance.Options.UseFont = true;
+ this.btnSave.Location = new System.Drawing.Point(4, 418);
+ this.btnSave.Name = "btnSave";
+ this.btnSave.Size = new System.Drawing.Size(225, 36);
+ this.btnSave.StyleController = this.layoutControl1;
+ this.btnSave.TabIndex = 6;
+ this.btnSave.Text = "SAVE";
+ this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem12,
+ this.layoutControlItem13,
+ this.gbDbConfig,
+ this.emptySpaceItem2,
+ this.layoutControlGroup4,
+ this.LcGroupUart,
+ this.emptySpaceItem1,
+ this.LcGroupSnmp});
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(462, 458);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem12
+ //
+ this.layoutControlItem12.Control = this.btnSave;
+ this.layoutControlItem12.CustomizationFormText = "layoutControlItem12";
+ this.layoutControlItem12.Location = new System.Drawing.Point(0, 414);
+ this.layoutControlItem12.MaxSize = new System.Drawing.Size(0, 40);
+ this.layoutControlItem12.MinSize = new System.Drawing.Size(93, 40);
+ this.layoutControlItem12.Name = "layoutControlItem12";
+ this.layoutControlItem12.Size = new System.Drawing.Size(229, 40);
+ this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem12.TextVisible = false;
+ //
+ // layoutControlItem13
+ //
+ this.layoutControlItem13.Control = this.btnClose;
+ this.layoutControlItem13.CustomizationFormText = "layoutControlItem13";
+ this.layoutControlItem13.Location = new System.Drawing.Point(229, 414);
+ this.layoutControlItem13.MaxSize = new System.Drawing.Size(0, 40);
+ this.layoutControlItem13.MinSize = new System.Drawing.Size(93, 40);
+ this.layoutControlItem13.Name = "layoutControlItem13";
+ this.layoutControlItem13.Size = new System.Drawing.Size(229, 40);
+ this.layoutControlItem13.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem13.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem13.TextVisible = false;
+ //
+ // gbDbConfig
+ //
+ this.gbDbConfig.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lbDbLogPeriod,
+ this.layoutControlItem15});
+ this.gbDbConfig.Location = new System.Drawing.Point(0, 317);
+ this.gbDbConfig.Name = "gbDbConfig";
+ this.gbDbConfig.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.gbDbConfig.Size = new System.Drawing.Size(458, 55);
+ this.gbDbConfig.Spacing = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.gbDbConfig.Text = "Database Config";
+ //
+ // lbDbLogPeriod
+ //
+ this.lbDbLogPeriod.AllowHotTrack = false;
+ this.lbDbLogPeriod.Location = new System.Drawing.Point(0, 0);
+ this.lbDbLogPeriod.MinSize = new System.Drawing.Size(138, 18);
+ this.lbDbLogPeriod.Name = "lbDbLogPeriod";
+ this.lbDbLogPeriod.Size = new System.Drawing.Size(138, 28);
+ this.lbDbLogPeriod.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lbDbLogPeriod.Text = " DB Log Period";
+ this.lbDbLogPeriod.TextSize = new System.Drawing.Size(123, 14);
+ //
+ // layoutControlItem15
+ //
+ this.layoutControlItem15.Control = this.cbDbLogPeriod;
+ this.layoutControlItem15.Location = new System.Drawing.Point(138, 0);
+ this.layoutControlItem15.MaxSize = new System.Drawing.Size(0, 28);
+ this.layoutControlItem15.MinSize = new System.Drawing.Size(54, 28);
+ this.layoutControlItem15.Name = "layoutControlItem15";
+ this.layoutControlItem15.Size = new System.Drawing.Size(314, 28);
+ this.layoutControlItem15.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem15.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem15.TextVisible = false;
+ //
+ // emptySpaceItem2
+ //
+ this.emptySpaceItem2.AllowHotTrack = false;
+ this.emptySpaceItem2.Location = new System.Drawing.Point(0, 372);
+ this.emptySpaceItem2.Name = "emptySpaceItem2";
+ this.emptySpaceItem2.Size = new System.Drawing.Size(458, 42);
+ this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlGroup4
+ //
+ this.layoutControlGroup4.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem3,
+ this.layoutControlItem7,
+ this.layoutControlItem5});
+ this.layoutControlGroup4.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup4.Name = "layoutControlGroup4";
+ this.layoutControlGroup4.Size = new System.Drawing.Size(458, 69);
+ this.layoutControlGroup4.Text = "Comm. Type";
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.RbUart;
+ this.layoutControlItem3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(145, 24);
+ this.layoutControlItem3.Text = "Comm. Type";
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.RbSnmp;
+ this.layoutControlItem7.Location = new System.Drawing.Point(289, 0);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(145, 24);
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.RbRS485;
+ this.layoutControlItem5.Location = new System.Drawing.Point(145, 0);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(144, 24);
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // LcGroupUart
+ //
+ this.LcGroupUart.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.simpleLabelItem3,
+ this.layoutControlItem1,
+ this.simpleLabelItem4,
+ this.layoutControlItem4,
+ this.simpleLabelItem2,
+ this.layoutControlItem6,
+ this.layoutControlItem9,
+ this.simpleLabelItem5});
+ this.LcGroupUart.Location = new System.Drawing.Point(0, 156);
+ this.LcGroupUart.Name = "LcGroupUart";
+ this.LcGroupUart.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.LcGroupUart.Size = new System.Drawing.Size(458, 141);
+ this.LcGroupUart.Text = "RS-232 && RS-485 Config";
+ //
+ // simpleLabelItem3
+ //
+ this.simpleLabelItem3.AllowHotTrack = false;
+ this.simpleLabelItem3.Location = new System.Drawing.Point(0, 0);
+ this.simpleLabelItem3.MinSize = new System.Drawing.Size(138, 18);
+ this.simpleLabelItem3.Name = "simpleLabelItem3";
+ this.simpleLabelItem3.Size = new System.Drawing.Size(138, 28);
+ this.simpleLabelItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem3.Text = " Serial Port";
+ this.simpleLabelItem3.TextSize = new System.Drawing.Size(123, 14);
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.cbUartPort;
+ this.layoutControlItem1.Location = new System.Drawing.Point(138, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(312, 28);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // simpleLabelItem4
+ //
+ this.simpleLabelItem4.AllowHotTrack = false;
+ this.simpleLabelItem4.Location = new System.Drawing.Point(0, 28);
+ this.simpleLabelItem4.MinSize = new System.Drawing.Size(138, 18);
+ this.simpleLabelItem4.Name = "simpleLabelItem4";
+ this.simpleLabelItem4.Size = new System.Drawing.Size(138, 28);
+ this.simpleLabelItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem4.Text = " Model";
+ this.simpleLabelItem4.TextSize = new System.Drawing.Size(123, 14);
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.cbUartModel;
+ this.layoutControlItem4.Location = new System.Drawing.Point(138, 28);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(312, 28);
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // simpleLabelItem2
+ //
+ this.simpleLabelItem2.AllowHotTrack = false;
+ this.simpleLabelItem2.Location = new System.Drawing.Point(0, 84);
+ this.simpleLabelItem2.MinSize = new System.Drawing.Size(138, 18);
+ this.simpleLabelItem2.Name = "simpleLabelItem2";
+ this.simpleLabelItem2.Size = new System.Drawing.Size(138, 28);
+ this.simpleLabelItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem2.Text = " Recv Wait Time (ms)";
+ this.simpleLabelItem2.TextSize = new System.Drawing.Size(123, 14);
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.edRecvWaitTime;
+ this.layoutControlItem6.Location = new System.Drawing.Point(138, 84);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(312, 28);
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 297);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(458, 20);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // LcGroupSnmp
+ //
+ this.LcGroupSnmp.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem8,
+ this.simpleLabelItem6,
+ this.layoutControlItem2,
+ this.simpleLabelItem1});
+ this.LcGroupSnmp.Location = new System.Drawing.Point(0, 69);
+ this.LcGroupSnmp.Name = "LcGroupSnmp";
+ this.LcGroupSnmp.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.LcGroupSnmp.Size = new System.Drawing.Size(458, 87);
+ this.LcGroupSnmp.Text = "SNMP Config";
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.teTargetIP;
+ this.layoutControlItem8.Location = new System.Drawing.Point(138, 0);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(312, 30);
+ this.layoutControlItem8.Text = " IP Address";
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem8.TextVisible = false;
+ //
+ // simpleLabelItem6
+ //
+ this.simpleLabelItem6.AllowHotTrack = false;
+ this.simpleLabelItem6.Location = new System.Drawing.Point(0, 0);
+ this.simpleLabelItem6.MaxSize = new System.Drawing.Size(0, 30);
+ this.simpleLabelItem6.MinSize = new System.Drawing.Size(138, 30);
+ this.simpleLabelItem6.Name = "simpleLabelItem6";
+ this.simpleLabelItem6.Size = new System.Drawing.Size(138, 30);
+ this.simpleLabelItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem6.Text = " IP Address";
+ this.simpleLabelItem6.TextSize = new System.Drawing.Size(123, 14);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.CbSnmpModel;
+ this.layoutControlItem2.Location = new System.Drawing.Point(138, 30);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(312, 28);
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // simpleLabelItem1
+ //
+ this.simpleLabelItem1.AllowHotTrack = false;
+ this.simpleLabelItem1.Location = new System.Drawing.Point(0, 30);
+ this.simpleLabelItem1.MaxSize = new System.Drawing.Size(0, 28);
+ this.simpleLabelItem1.MinSize = new System.Drawing.Size(127, 28);
+ this.simpleLabelItem1.Name = "simpleLabelItem1";
+ this.simpleLabelItem1.Size = new System.Drawing.Size(138, 28);
+ this.simpleLabelItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem1.Text = " Model";
+ this.simpleLabelItem1.TextSize = new System.Drawing.Size(123, 14);
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2";
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup2.Name = "Root";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(433, 34);
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // layoutControlGroup3
+ //
+ this.layoutControlGroup3.CustomizationFormText = "layoutControlGroup3";
+ this.layoutControlGroup3.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup3.GroupBordersVisible = false;
+ this.layoutControlGroup3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup3.Name = "Root";
+ this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup3.Size = new System.Drawing.Size(433, 85);
+ this.layoutControlGroup3.TextVisible = false;
+ //
+ // CbModuleQty
+ //
+ this.CbModuleQty.EditValue = "1";
+ this.CbModuleQty.Location = new System.Drawing.Point(146, 241);
+ this.CbModuleQty.Name = "CbModuleQty";
+ this.CbModuleQty.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.CbModuleQty.Properties.Appearance.Options.UseFont = true;
+ this.CbModuleQty.Properties.Appearance.Options.UseTextOptions = true;
+ this.CbModuleQty.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.CbModuleQty.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+ new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+ this.CbModuleQty.Size = new System.Drawing.Size(308, 24);
+ this.CbModuleQty.StyleController = this.layoutControl1;
+ this.CbModuleQty.TabIndex = 19;
+ //
+ // layoutControlItem9
+ //
+ this.layoutControlItem9.Control = this.CbModuleQty;
+ this.layoutControlItem9.Location = new System.Drawing.Point(138, 56);
+ this.layoutControlItem9.MinSize = new System.Drawing.Size(55, 28);
+ this.layoutControlItem9.Name = "layoutControlItem9";
+ this.layoutControlItem9.Size = new System.Drawing.Size(312, 28);
+ this.layoutControlItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem9.TextVisible = false;
+ //
+ // simpleLabelItem5
+ //
+ this.simpleLabelItem5.AllowHotTrack = false;
+ this.simpleLabelItem5.Location = new System.Drawing.Point(0, 56);
+ this.simpleLabelItem5.MaxSize = new System.Drawing.Size(0, 28);
+ this.simpleLabelItem5.MinSize = new System.Drawing.Size(127, 28);
+ this.simpleLabelItem5.Name = "simpleLabelItem5";
+ this.simpleLabelItem5.Size = new System.Drawing.Size(138, 28);
+ this.simpleLabelItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem5.Text = " Module Q\'ty";
+ this.simpleLabelItem5.TextSize = new System.Drawing.Size(123, 14);
+ //
+ // ucCommConfig
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.Name = "ucCommConfig";
+ this.Size = new System.Drawing.Size(462, 458);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.RbRS485.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.CbSnmpModel.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.RbSnmp.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edRecvWaitTime.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.cbUartModel.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.RbUart.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.cbUartPort.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.cbDbLogPeriod.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbDbConfig)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbDbLogPeriod)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.LcGroupUart)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.LcGroupSnmp)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.CbModuleQty.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem5)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.SimpleButton btnClose;
+ private DevExpress.XtraEditors.SimpleButton btnSave;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13;
+ private DevExpress.XtraEditors.ComboBoxEdit cbDbLogPeriod;
+ private DevExpress.XtraLayout.LayoutControlGroup gbDbConfig;
+ private DevExpress.XtraLayout.SimpleLabelItem lbDbLogPeriod;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem15;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+ private DevExpress.XtraEditors.ComboBoxEdit cbUartPort;
+ private DevExpress.XtraEditors.CheckEdit RbUart;
+ private DevExpress.XtraEditors.ComboBoxEdit cbUartModel;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup4;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.LayoutControlGroup LcGroupUart;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem4;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem2;
+ private DevExpress.XtraEditors.TextEdit edRecvWaitTime;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraEditors.CheckEdit RbSnmp;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private IPAddressControlLib.IPAddressControl teTargetIP;
+ private DevExpress.XtraLayout.LayoutControlGroup LcGroupSnmp;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem6;
+ private DevExpress.XtraEditors.ComboBoxEdit CbSnmpModel;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem1;
+ private DevExpress.XtraEditors.CheckEdit RbRS485;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraEditors.ComboBoxEdit CbModuleQty;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem5;
+ }
+}
diff --git a/LFP_Manager/Controls/ucCommConfig.cs b/LFP_Manager/Controls/ucCommConfig.cs
new file mode 100644
index 0000000..3cdbc07
--- /dev/null
+++ b/LFP_Manager/Controls/ucCommConfig.cs
@@ -0,0 +1,237 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+using System.Runtime.InteropServices;
+using System.IO;
+using System.IO.Ports;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using System.Data.Entity.Infrastructure;
+
+namespace LFP_Manager.Controls
+{
+ public partial class ucCommConfig : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region EVENT
+
+ public delegate void CloseEvent(object aConfig, bool saved);
+
+ #endregion
+
+ #region VARIABLES
+
+ CommConfig Config = new CommConfig();
+ public event CloseEvent OnClose = null;
+
+ DataTable dtComport = new DataTable();
+ private bool saved = false;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public ucCommConfig()
+ {
+ InitializeComponent();
+
+ CommPortLoad();
+
+ IniLoad();
+ }
+
+ private void InitComportDataTable()
+ {
+ dtComport = new DataTable();
+ dtComport.Columns.Add("name", typeof(string));
+ dtComport.Columns.Add("name2", typeof(string));
+ }
+
+ #endregion
+
+ #region DATA LOAD AND SAVE
+
+ private void CommPortLoad()
+ {
+ bool found = false;
+ int ComId = 0;
+
+ InitComportDataTable();
+ foreach (string comport in SerialPort.GetPortNames())
+ {
+ DataRow aRow = dtComport.NewRow();
+ aRow["name"] = comport;
+ dtComport.Rows.Add(aRow);
+ }
+
+ for (int i = 0; i < dtComport.Rows.Count; i++)
+ {
+ cbUartPort.Properties.Items.Add(dtComport.Rows[i]["name"].ToString());
+ }
+
+ if (Config.UartPort != "")
+ {
+ for (int i = 0; i < cbUartPort.Properties.Items.Count; i++)
+ {
+ if (dtComport.Rows[i]["name"].ToString() == Config.UartPort)
+ {
+ found = true;
+ ComId = i;
+ break;
+ }
+ }
+ }
+
+ if (found)
+ {
+ cbUartPort.SelectedIndex = ComId;
+ Config.UartPort = cbUartPort.Properties.Items[ComId].ToString();
+ }
+ else
+ {
+ if (cbUartPort.Properties.Items.Count > 0)
+ {
+ cbUartPort.SelectedIndex = 0;
+ }
+ }
+ }
+
+ private void IniLoad()
+ {
+ csIniControlFunction.IniLoad(Application.ExecutablePath, ref Config);
+
+ cbUartModel.Properties.Items.Clear();
+ CbSnmpModel.Properties.Items.Clear();
+ foreach (string m_name in csConstData.UART_MODEL)
+ {
+ cbUartModel.Properties.Items.Add(m_name);
+ CbSnmpModel.Properties.Items.Add(m_name);
+ }
+ CbModuleQty.Properties.Items.Clear();
+ for (int i = 0; i < csConstData.SystemInfo.MAX_MODULE_SIZE; i++)
+ {
+ CbModuleQty.Properties.Items.Add(string.Format("{0}", i + 1));
+ }
+
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ RbUart.Checked = true;
+ break;
+ case csConstData.CommType.COMM_RS485:
+ RbRS485.Checked = true;
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ RbSnmp.Checked = true;
+ break;
+ default:
+ RbUart.Checked = true;
+ break;
+ }
+
+ if (Config.SnmpIP == "")
+ { Config.SnmpIP = teTargetIP.Text; }
+ teTargetIP.Text = Config.SnmpIP;
+ CbSnmpModel.SelectedIndex = Config.SnmpModelIndex;
+
+ cbUartPort.Text = Config.UartPort;
+ cbUartModel.SelectedIndex = Config.UartModelIndex;
+ CbModuleQty.Text = string.Format("{0}", Config.ModuleQty);
+ edRecvWaitTime.Text = string.Format("{0}", Config.RecvWaitTime);
+
+ cbDbLogPeriod.Text = Config.DbLogPeriod.ToString();
+ }
+
+ private void IniSave()
+ {
+ if (RbUart.Checked)
+ {
+ Config.CommType = csConstData.CommType.COMM_UART;
+ }
+ else if (RbRS485.Checked)
+ {
+ Config.CommType = csConstData.CommType.COMM_RS485;
+ }
+ else if (RbSnmp.Checked)
+ {
+ Config.CommType = csConstData.CommType.COMM_SNMP;
+ }
+
+ try
+ {
+ Config.SnmpIP = teTargetIP.Text;
+ Config.SnmpModelIndex = CbSnmpModel.SelectedIndex;
+
+ Config.UartPort = cbUartPort.Text;
+ Config.UartModelIndex = cbUartModel.SelectedIndex;
+ Config.ModuleQty = Convert.ToInt32(CbModuleQty.Text);
+ Config.RecvWaitTime = Convert.ToInt32(edRecvWaitTime.Text);
+
+ Config.DbLogPeriod = Convert.ToInt32(cbDbLogPeriod.Text);
+
+ csIniControlFunction.IniSave(Application.ExecutablePath, Config);
+
+ saved = true;
+ }
+ catch (Exception)
+ {
+ MessageBox.Show("Save fail - Please check config", "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+ private void btnClose_Click(object sender, EventArgs e)
+ {
+ OnClose?.Invoke(Config, saved);
+ }
+
+ private void btnSave_Click(object sender, EventArgs e)
+ {
+ IniSave();
+ }
+ #endregion
+
+ #region COMPONENT EVENT
+ private void RbUart_CheckStateChanged(object sender, EventArgs e)
+ {
+ if (RbUart.Checked)
+ {
+ LcGroupUart.Enabled = true;
+ LcGroupSnmp.Enabled = false;
+ CbModuleQty.Enabled = false;
+ CbModuleQty.Text = "1";
+ }
+ }
+
+ private void RbRS485_CheckStateChanged(object sender, EventArgs e)
+ {
+ if (RbRS485.Checked)
+ {
+ LcGroupUart.Enabled = true;
+ LcGroupSnmp.Enabled = false;
+ CbModuleQty.Enabled = true;
+ }
+ }
+
+ private void RbSnmp_CheckedChanged(object sender, EventArgs e)
+ {
+ if (RbSnmp.Checked)
+ {
+ LcGroupUart.Enabled = false;
+ LcGroupSnmp.Enabled = true;
+ CbModuleQty.Enabled = true;
+ CbModuleQty.Text = "1";
+ }
+ }
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucCommConfig.resx b/LFP_Manager/Controls/ucCommConfig.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/ucCommConfig.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucDataLog.Designer.cs b/LFP_Manager/Controls/ucDataLog.Designer.cs
new file mode 100644
index 0000000..e2dd28d
--- /dev/null
+++ b/LFP_Manager/Controls/ucDataLog.Designer.cs
@@ -0,0 +1,257 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucDataLog
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.gbDataLog = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl6 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnOpenLogFolder = new DevExpress.XtraEditors.SimpleButton();
+ this.btnLogStart = new DevExpress.XtraEditors.SimpleButton();
+ this.cbLogTime = new DevExpress.XtraEditors.ComboBoxEdit();
+ this.layoutControlGroup6 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lcitemLogTime = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.tmrLogging = new System.Windows.Forms.Timer(this.components);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.gbDataLog)).BeginInit();
+ this.gbDataLog.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl6)).BeginInit();
+ this.layoutControl6.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.cbLogTime.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemLogTime)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.AllowCustomization = false;
+ this.layoutControl1.Controls.Add(this.gbDataLog);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(354, 204);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // gbDataLog
+ //
+ this.gbDataLog.Controls.Add(this.layoutControl6);
+ this.gbDataLog.Location = new System.Drawing.Point(3, 3);
+ this.gbDataLog.Name = "gbDataLog";
+ this.gbDataLog.Size = new System.Drawing.Size(348, 198);
+ this.gbDataLog.TabIndex = 9;
+ this.gbDataLog.Text = "Data Logging";
+ //
+ // layoutControl6
+ //
+ this.layoutControl6.AllowCustomization = false;
+ this.layoutControl6.Controls.Add(this.btnOpenLogFolder);
+ this.layoutControl6.Controls.Add(this.btnLogStart);
+ this.layoutControl6.Controls.Add(this.cbLogTime);
+ this.layoutControl6.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl6.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl6.Name = "layoutControl6";
+ this.layoutControl6.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1209, 389, 250, 350);
+ this.layoutControl6.Root = this.layoutControlGroup6;
+ this.layoutControl6.Size = new System.Drawing.Size(344, 173);
+ this.layoutControl6.TabIndex = 0;
+ this.layoutControl6.Text = "layoutControl6";
+ //
+ // btnOpenLogFolder
+ //
+ this.btnOpenLogFolder.Location = new System.Drawing.Point(3, 109);
+ this.btnOpenLogFolder.Name = "btnOpenLogFolder";
+ this.btnOpenLogFolder.Size = new System.Drawing.Size(338, 61);
+ this.btnOpenLogFolder.StyleController = this.layoutControl6;
+ this.btnOpenLogFolder.TabIndex = 6;
+ this.btnOpenLogFolder.Text = "Open Log Folder";
+ this.btnOpenLogFolder.Click += new System.EventHandler(this.btnOpenLogFolder_Click);
+ //
+ // btnLogStart
+ //
+ this.btnLogStart.Location = new System.Drawing.Point(3, 36);
+ this.btnLogStart.Name = "btnLogStart";
+ this.btnLogStart.Size = new System.Drawing.Size(338, 69);
+ this.btnLogStart.StyleController = this.layoutControl6;
+ this.btnLogStart.TabIndex = 5;
+ this.btnLogStart.Text = "Log Start";
+ this.btnLogStart.Click += new System.EventHandler(this.btnLogStart_Click);
+ //
+ // cbLogTime
+ //
+ this.cbLogTime.EditValue = "5";
+ this.cbLogTime.Location = new System.Drawing.Point(68, 3);
+ this.cbLogTime.Name = "cbLogTime";
+ this.cbLogTime.Properties.Appearance.Options.UseTextOptions = true;
+ this.cbLogTime.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cbLogTime.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+ new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+ this.cbLogTime.Properties.Items.AddRange(new object[] {
+ "1",
+ "5",
+ "10",
+ "15",
+ "30",
+ "60"});
+ this.cbLogTime.Size = new System.Drawing.Size(273, 20);
+ this.cbLogTime.StyleController = this.layoutControl6;
+ this.cbLogTime.TabIndex = 4;
+ //
+ // layoutControlGroup6
+ //
+ this.layoutControlGroup6.CustomizationFormText = "layoutControlGroup6";
+ this.layoutControlGroup6.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup6.GroupBordersVisible = false;
+ this.layoutControlGroup6.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lcitemLogTime,
+ this.layoutControlItem13,
+ this.layoutControlItem12});
+ this.layoutControlGroup6.Name = "layoutControlGroup6";
+ this.layoutControlGroup6.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup6.Size = new System.Drawing.Size(344, 173);
+ this.layoutControlGroup6.TextVisible = false;
+ //
+ // lcitemLogTime
+ //
+ this.lcitemLogTime.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lcitemLogTime.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lcitemLogTime.Control = this.cbLogTime;
+ this.lcitemLogTime.CustomizationFormText = "Log Time";
+ this.lcitemLogTime.Location = new System.Drawing.Point(0, 0);
+ this.lcitemLogTime.MinSize = new System.Drawing.Size(119, 24);
+ this.lcitemLogTime.Name = "lcitemLogTime";
+ this.lcitemLogTime.Size = new System.Drawing.Size(342, 33);
+ this.lcitemLogTime.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemLogTime.Text = "Log Time";
+ this.lcitemLogTime.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemLogTime.TextSize = new System.Drawing.Size(60, 20);
+ this.lcitemLogTime.TextToControlDistance = 5;
+ //
+ // layoutControlItem13
+ //
+ this.layoutControlItem13.Control = this.btnLogStart;
+ this.layoutControlItem13.CustomizationFormText = "layoutControlItem13";
+ this.layoutControlItem13.Location = new System.Drawing.Point(0, 33);
+ this.layoutControlItem13.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem13.Name = "layoutControlItem13";
+ this.layoutControlItem13.Size = new System.Drawing.Size(342, 73);
+ this.layoutControlItem13.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem13.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem13.TextVisible = false;
+ //
+ // layoutControlItem12
+ //
+ this.layoutControlItem12.Control = this.btnOpenLogFolder;
+ this.layoutControlItem12.CustomizationFormText = "layoutControlItem12";
+ this.layoutControlItem12.Location = new System.Drawing.Point(0, 106);
+ this.layoutControlItem12.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem12.Name = "layoutControlItem12";
+ this.layoutControlItem12.Size = new System.Drawing.Size(342, 65);
+ this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem12.TextVisible = false;
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1});
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(354, 204);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.gbDataLog;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(352, 202);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // tmrLogging
+ //
+ this.tmrLogging.Interval = 500;
+ this.tmrLogging.Tick += new System.EventHandler(this.tmrLogging_Tick);
+ //
+ // ucDataLog
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.Name = "ucDataLog";
+ this.Size = new System.Drawing.Size(354, 204);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.gbDataLog)).EndInit();
+ this.gbDataLog.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl6)).EndInit();
+ this.layoutControl6.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.cbLogTime.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemLogTime)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.GroupControl gbDataLog;
+ private DevExpress.XtraLayout.LayoutControl layoutControl6;
+ private DevExpress.XtraEditors.SimpleButton btnOpenLogFolder;
+ private DevExpress.XtraEditors.SimpleButton btnLogStart;
+ private DevExpress.XtraEditors.ComboBoxEdit cbLogTime;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup6;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemLogTime;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private System.Windows.Forms.Timer tmrLogging;
+ }
+}
diff --git a/LFP_Manager/Controls/ucDataLog.cs b/LFP_Manager/Controls/ucDataLog.cs
new file mode 100644
index 0000000..b8c3ee1
--- /dev/null
+++ b/LFP_Manager/Controls/ucDataLog.cs
@@ -0,0 +1,154 @@
+using LFP_Manager.DataStructure;
+using LFP_Manager.Utils;
+using System;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Controls
+{
+ public delegate void LogDataUpdate(object sender, string LogResult, bool active, int aLogTime);
+
+ public partial class ucDataLog : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region VARIABLES
+
+ private CommConfig Config;
+ CsDeviceData DeviceData;
+ private DateTime bakDateTime;
+
+ private int ModuleID = 1;
+
+ private string LogFileName = "";
+ private string LogFileNameTotal = "";
+
+ private bool logging = false;
+ private bool Active = false;
+
+ public event LogDataUpdate OnUpdate = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public ucDataLog()
+ {
+ InitializeComponent();
+ }
+
+ #endregion
+
+ #region PUBLIC UPDATE
+
+ public void UpdateActiveStatus(bool aStatus, CommConfig aConfig, ref CsDeviceData aDeviceData)
+ {
+ Active = aStatus;
+ Config = aConfig;
+ DeviceData = aDeviceData;
+ }
+
+ public void UpdateData(CsDeviceData aDeviceData)
+ {
+ DeviceData = aDeviceData;
+ }
+
+ #endregion
+
+ #region TIMER EVENT
+
+ private void tmrLogging_Tick(object sender, EventArgs e)
+ {
+ DateTime cDate = DateTime.Now;
+ int ss;
+
+ if ((logging) && (Active))
+ {
+ ss = Convert.ToInt16(cbLogTime.Text);
+
+ if (
+ ((bakDateTime.Minute != cDate.Minute)
+ || (bakDateTime.Second != cDate.Second))
+ && ((cDate.Second % ss) == 0)
+ )
+ {
+ try
+ {
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ csLog.SystemDataLog(ModuleID, Config, DeviceData.ModuleData[ModuleID - 1], cDate, Application.ExecutablePath, LogFileName);
+ break;
+ case csConstData.CommType.COMM_RS485:
+ if (Config.ModuleQty > 1)
+ {
+ for (int i = 0; i < Config.ModuleQty; i++)
+ {
+ csLog.SystemDataLog(i + 1, Config, DeviceData.ModuleData[i], cDate, Application.ExecutablePath, LogFileName);
+ }
+ }
+ else
+ {
+ csLog.SystemDataLog(ModuleID, Config, DeviceData.ModuleData[ModuleID - 1], cDate, Application.ExecutablePath, LogFileName);
+ }
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ csLog.SystemDataLog(1, Config, DeviceData.ModuleData[0], cDate, Application.ExecutablePath, LogFileName);
+ break;
+ default:
+ break;
+ }
+ bakDateTime = cDate;
+ }
+ catch (Exception)
+ {
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+
+ private void btnLogStart_Click(object sender, EventArgs e)
+ {
+ if (logging == true)
+ {
+ tmrLogging.Stop();
+ cbLogTime.Enabled = true;
+ logging = false;
+ btnLogStart.Text = "Log Start";
+
+ if (OnUpdate != null)
+ {
+ OnUpdate(this, String.Format("LogStop: {0:yyyy/MM/dd HH:mm:ss}", DateTime.Now), false, Convert.ToInt16(cbLogTime.Text));
+ }
+ }
+ else
+ {
+ LogFileNameTotal = String.Format("{0:yyMMddHHmmss}", DateTime.Now);
+ LogFileName = String.Format("{0:yyMMddHHmmss}", DateTime.Now);
+ tmrLogging.Start();
+ cbLogTime.Enabled = false;
+ logging = true;
+ btnLogStart.Text = "Log Stop";
+
+ if (OnUpdate != null)
+ {
+ OnUpdate(this, String.Format("Logging: SHELFX_LOG_{0}.csv", LogFileName), true, Convert.ToInt16(cbLogTime.Text));
+ }
+ }
+ }
+
+ private void btnOpenLogFolder_Click(object sender, EventArgs e)
+ {
+ System.Diagnostics.Process ps = new System.Diagnostics.Process();
+ ps.StartInfo.FileName = "explorer.exe";
+ ps.StartInfo.Arguments = csLog.GetLogFolder(Application.ExecutablePath);
+ ps.StartInfo.WorkingDirectory = csLog.GetLogFolder(Application.ExecutablePath);
+ ps.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
+
+ ps.Start();
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucDataLog.resx b/LFP_Manager/Controls/ucDataLog.resx
new file mode 100644
index 0000000..92c9522
--- /dev/null
+++ b/LFP_Manager/Controls/ucDataLog.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucEventLog.Designer.cs b/LFP_Manager/Controls/ucEventLog.Designer.cs
new file mode 100644
index 0000000..0b3b330
--- /dev/null
+++ b/LFP_Manager/Controls/ucEventLog.Designer.cs
@@ -0,0 +1,467 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucEventLog
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.gcLogging = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
+ this.tabDataLog = new DevExpress.XtraTab.XtraTabControl();
+ this.TpEventLog = new DevExpress.XtraTab.XtraTabPage();
+ this.layoutControl4 = new DevExpress.XtraLayout.LayoutControl();
+ this.BtnRefresh = new DevExpress.XtraEditors.SimpleButton();
+ this.GvAlarmHistory = new System.Windows.Forms.DataGridView();
+ this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.tpDataLog = new DevExpress.XtraTab.XtraTabPage();
+ this.panelControl1 = new DevExpress.XtraEditors.PanelControl();
+ this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl();
+ this.CbPrintID = new DevExpress.XtraEditors.ComboBoxEdit();
+ this.btnLogClear = new DevExpress.XtraEditors.SimpleButton();
+ this.meDataLog = new DevExpress.XtraEditors.MemoEdit();
+ this.chkPacketLog = new DevExpress.XtraEditors.CheckEdit();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.gcLogging)).BeginInit();
+ this.gcLogging.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit();
+ this.layoutControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.tabDataLog)).BeginInit();
+ this.tabDataLog.SuspendLayout();
+ this.TpEventLog.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl4)).BeginInit();
+ this.layoutControl4.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.GvAlarmHistory)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ this.tpDataLog.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl1)).BeginInit();
+ this.panelControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit();
+ this.layoutControl3.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.CbPrintID.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.meDataLog.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.chkPacketLog.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.AllowCustomization = false;
+ this.layoutControl1.Controls.Add(this.gcLogging);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(302, 140, 250, 350);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(799, 173);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // gcLogging
+ //
+ this.gcLogging.Controls.Add(this.layoutControl2);
+ this.gcLogging.Location = new System.Drawing.Point(3, 3);
+ this.gcLogging.Name = "gcLogging";
+ this.gcLogging.Size = new System.Drawing.Size(793, 167);
+ this.gcLogging.TabIndex = 6;
+ this.gcLogging.Text = "Event";
+ //
+ // layoutControl2
+ //
+ this.layoutControl2.AllowCustomization = false;
+ this.layoutControl2.Controls.Add(this.tabDataLog);
+ this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl2.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl2.Name = "layoutControl2";
+ this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1234, 235, 250, 350);
+ this.layoutControl2.Root = this.layoutControlGroup2;
+ this.layoutControl2.Size = new System.Drawing.Size(789, 142);
+ this.layoutControl2.TabIndex = 0;
+ this.layoutControl2.Text = "layoutControl2";
+ //
+ // tabDataLog
+ //
+ this.tabDataLog.Location = new System.Drawing.Point(4, 4);
+ this.tabDataLog.Name = "tabDataLog";
+ this.tabDataLog.SelectedTabPage = this.TpEventLog;
+ this.tabDataLog.Size = new System.Drawing.Size(781, 134);
+ this.tabDataLog.TabIndex = 4;
+ this.tabDataLog.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] {
+ this.TpEventLog,
+ this.tpDataLog});
+ //
+ // TpEventLog
+ //
+ this.TpEventLog.Controls.Add(this.layoutControl4);
+ this.TpEventLog.Name = "TpEventLog";
+ this.TpEventLog.Size = new System.Drawing.Size(779, 108);
+ this.TpEventLog.Text = "Event";
+ //
+ // layoutControl4
+ //
+ this.layoutControl4.Controls.Add(this.BtnRefresh);
+ this.layoutControl4.Controls.Add(this.GvAlarmHistory);
+ this.layoutControl4.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl4.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl4.Name = "layoutControl4";
+ this.layoutControl4.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1039, 0, 647, 400);
+ this.layoutControl4.Root = this.layoutControlGroup3;
+ this.layoutControl4.Size = new System.Drawing.Size(779, 108);
+ this.layoutControl4.TabIndex = 0;
+ this.layoutControl4.Text = "layoutControl4";
+ //
+ // BtnRefresh
+ //
+ this.BtnRefresh.Location = new System.Drawing.Point(691, 3);
+ this.BtnRefresh.Name = "BtnRefresh";
+ this.BtnRefresh.Size = new System.Drawing.Size(85, 102);
+ this.BtnRefresh.StyleController = this.layoutControl4;
+ this.BtnRefresh.TabIndex = 5;
+ this.BtnRefresh.Text = "Refresh";
+ this.BtnRefresh.Click += new System.EventHandler(this.BtnRefresh_Click);
+ //
+ // GvAlarmHistory
+ //
+ this.GvAlarmHistory.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ this.GvAlarmHistory.Location = new System.Drawing.Point(3, 3);
+ this.GvAlarmHistory.Name = "GvAlarmHistory";
+ this.GvAlarmHistory.RowTemplate.Height = 23;
+ this.GvAlarmHistory.Size = new System.Drawing.Size(684, 102);
+ this.GvAlarmHistory.TabIndex = 4;
+ //
+ // layoutControlGroup3
+ //
+ this.layoutControlGroup3.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup3.GroupBordersVisible = false;
+ this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem5,
+ this.layoutControlItem7});
+ this.layoutControlGroup3.Name = "Root";
+ this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup3.Size = new System.Drawing.Size(779, 108);
+ this.layoutControlGroup3.TextVisible = false;
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.GvAlarmHistory;
+ this.layoutControlItem5.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(688, 106);
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.BtnRefresh;
+ this.layoutControlItem7.Location = new System.Drawing.Point(688, 0);
+ this.layoutControlItem7.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(89, 106);
+ this.layoutControlItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // tpDataLog
+ //
+ this.tpDataLog.Controls.Add(this.panelControl1);
+ this.tpDataLog.Name = "tpDataLog";
+ this.tpDataLog.Size = new System.Drawing.Size(779, 108);
+ this.tpDataLog.Text = "Data Log";
+ //
+ // panelControl1
+ //
+ this.panelControl1.Controls.Add(this.layoutControl3);
+ this.panelControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.panelControl1.Location = new System.Drawing.Point(0, 0);
+ this.panelControl1.Name = "panelControl1";
+ this.panelControl1.Size = new System.Drawing.Size(779, 108);
+ this.panelControl1.TabIndex = 0;
+ //
+ // layoutControl3
+ //
+ this.layoutControl3.Controls.Add(this.CbPrintID);
+ this.layoutControl3.Controls.Add(this.btnLogClear);
+ this.layoutControl3.Controls.Add(this.meDataLog);
+ this.layoutControl3.Controls.Add(this.chkPacketLog);
+ this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl3.Location = new System.Drawing.Point(2, 2);
+ this.layoutControl3.Name = "layoutControl3";
+ this.layoutControl3.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(950, 0, 650, 400);
+ this.layoutControl3.Root = this.Root;
+ this.layoutControl3.Size = new System.Drawing.Size(775, 104);
+ this.layoutControl3.TabIndex = 0;
+ this.layoutControl3.Text = "layoutControl3";
+ //
+ // CbPrintID
+ //
+ this.CbPrintID.EditValue = "0";
+ this.CbPrintID.Location = new System.Drawing.Point(696, 27);
+ this.CbPrintID.Name = "CbPrintID";
+ this.CbPrintID.Properties.Appearance.Options.UseTextOptions = true;
+ this.CbPrintID.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.CbPrintID.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+ new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+ this.CbPrintID.Properties.Items.AddRange(new object[] {
+ "0",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10"});
+ this.CbPrintID.Size = new System.Drawing.Size(76, 20);
+ this.CbPrintID.StyleController = this.layoutControl3;
+ this.CbPrintID.TabIndex = 7;
+ this.CbPrintID.SelectedValueChanged += new System.EventHandler(this.CbPrintID_SelectedValueChanged);
+ //
+ // btnLogClear
+ //
+ this.btnLogClear.Location = new System.Drawing.Point(668, 51);
+ this.btnLogClear.Name = "btnLogClear";
+ this.btnLogClear.Size = new System.Drawing.Size(104, 50);
+ this.btnLogClear.StyleController = this.layoutControl3;
+ this.btnLogClear.TabIndex = 6;
+ this.btnLogClear.Text = "Clear";
+ this.btnLogClear.Click += new System.EventHandler(this.btnLogClear_Click);
+ //
+ // meDataLog
+ //
+ this.meDataLog.Location = new System.Drawing.Point(3, 3);
+ this.meDataLog.Name = "meDataLog";
+ this.meDataLog.Properties.MaxLength = 1000;
+ this.meDataLog.Size = new System.Drawing.Size(661, 98);
+ this.meDataLog.StyleController = this.layoutControl3;
+ this.meDataLog.TabIndex = 4;
+ //
+ // chkPacketLog
+ //
+ this.chkPacketLog.Location = new System.Drawing.Point(668, 3);
+ this.chkPacketLog.Name = "chkPacketLog";
+ this.chkPacketLog.Properties.Caption = "Packet";
+ this.chkPacketLog.Size = new System.Drawing.Size(104, 20);
+ this.chkPacketLog.StyleController = this.layoutControl3;
+ this.chkPacketLog.TabIndex = 6;
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem2,
+ this.layoutControlItem3,
+ this.layoutControlItem4,
+ this.layoutControlItem8});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(775, 104);
+ this.Root.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.meDataLog;
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(665, 102);
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.btnLogClear;
+ this.layoutControlItem3.Location = new System.Drawing.Point(665, 48);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(37, 26);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(108, 54);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.chkPacketLog;
+ this.layoutControlItem4.Location = new System.Drawing.Point(665, 0);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(108, 24);
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.CbPrintID;
+ this.layoutControlItem8.Location = new System.Drawing.Point(665, 24);
+ this.layoutControlItem8.MinSize = new System.Drawing.Size(100, 24);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(108, 24);
+ this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem8.Text = " ID";
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(16, 14);
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2";
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem6});
+ this.layoutControlGroup2.Name = "layoutControlGroup2";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(789, 142);
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.tabDataLog;
+ this.layoutControlItem6.CustomizationFormText = "layoutControlItem6";
+ this.layoutControlItem6.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(104, 24);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(785, 138);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1});
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(799, 173);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.gcLogging;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(797, 171);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // ucEventLog
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.Name = "ucEventLog";
+ this.Size = new System.Drawing.Size(799, 173);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.gcLogging)).EndInit();
+ this.gcLogging.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit();
+ this.layoutControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.tabDataLog)).EndInit();
+ this.tabDataLog.ResumeLayout(false);
+ this.TpEventLog.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl4)).EndInit();
+ this.layoutControl4.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.GvAlarmHistory)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ this.tpDataLog.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl1)).EndInit();
+ this.panelControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit();
+ this.layoutControl3.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.CbPrintID.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.meDataLog.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.chkPacketLog.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.GroupControl gcLogging;
+ private DevExpress.XtraLayout.LayoutControl layoutControl2;
+ private DevExpress.XtraTab.XtraTabControl tabDataLog;
+ private DevExpress.XtraTab.XtraTabPage tpDataLog;
+ private DevExpress.XtraEditors.PanelControl panelControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraEditors.CheckEdit chkPacketLog;
+ private DevExpress.XtraTab.XtraTabPage TpEventLog;
+ private DevExpress.XtraLayout.LayoutControl layoutControl3;
+ private DevExpress.XtraEditors.MemoEdit meDataLog;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraEditors.SimpleButton btnLogClear;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraLayout.LayoutControl layoutControl4;
+ private DevExpress.XtraEditors.SimpleButton BtnRefresh;
+ private System.Windows.Forms.DataGridView GvAlarmHistory;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private DevExpress.XtraEditors.ComboBoxEdit CbPrintID;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ }
+}
diff --git a/LFP_Manager/Controls/ucEventLog.cs b/LFP_Manager/Controls/ucEventLog.cs
new file mode 100644
index 0000000..03d3052
--- /dev/null
+++ b/LFP_Manager/Controls/ucEventLog.cs
@@ -0,0 +1,195 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+using LFP_Manager.Utils;
+using LFP_Manager.DataStructure;
+
+namespace LFP_Manager.Controls
+{
+ public delegate void PrintOptionEvent(object sender, int id);
+
+ public partial class ucEventLog : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region VARIABLES
+ CommConfig Config;
+ DataTable AlarmHistory = new DataTable();
+
+ private int print_id = 0;
+
+ public event PrintOptionEvent OnPrintOption = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+ public ucEventLog()
+ {
+ InitializeComponent();
+ }
+ #endregion
+
+ #region PUBLIC UPDATE
+
+ public void EventUpdate(int id, string aEvent)
+ {
+ if (this.InvokeRequired)
+ {
+ this.Invoke(new MethodInvoker(delegate ()
+ {
+ if (chkPacketLog.Checked)
+ PrintMsg(id, aEvent);
+ }));
+ }
+ else
+ {
+ if (chkPacketLog.Checked)
+ PrintMsg(id, aEvent);
+ }
+ }
+
+ private void PrintMsg(int id, string msg)
+ {
+ if ((print_id == 0) || (print_id == id))
+ {
+ meDataLog.Text = msg + meDataLog.Text;
+ }
+ }
+
+ public void ErrorUpdate(int id, string aEvent)
+ {
+ if (this.InvokeRequired)
+ {
+ this.Invoke(new MethodInvoker(delegate ()
+ {
+ //if (cbPacketLog.Checked)
+ meDataLog.Text = aEvent + meDataLog.Text;
+ }));
+ }
+ else
+ {
+ //if (cbPacketLog.Checked)
+ meDataLog.Text = aEvent + meDataLog.Text;
+ }
+ }
+
+ public void AlarmHistoryUpdate1(DataTable aAlarmHistory)
+ {
+ if (aAlarmHistory != null)
+ {
+ AlarmHistory = aAlarmHistory;
+ if (InvokeRequired)
+ {
+ Invoke(new MethodInvoker(delegate ()
+ {
+ GvAlarmHistory.DataSource = AlarmHistory;
+ GvAlarmHistory.Columns["create_date"].DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss";
+ GvAlarmHistory.DefaultCellStyle.NullValue = "null";
+ GvAlarmHistory.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
+
+ GvAlarmHistory.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
+ GvAlarmHistory.AllowUserToAddRows = false;
+
+ // 예: Id, ct_no 칼럼 숨기기
+ csDbUtils.HideColumns(GvAlarmHistory, "Id", "alarm_code", "alarm_status");
+ }));
+ }
+ else
+ {
+ GvAlarmHistory.DataSource = AlarmHistory;
+ GvAlarmHistory.Columns["create_date"].DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss";
+ GvAlarmHistory.DefaultCellStyle.NullValue = "null";
+ GvAlarmHistory.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
+
+ GvAlarmHistory.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
+ GvAlarmHistory.AllowUserToAddRows = false;
+
+ // 예: Id, ct_no 칼럼 숨기기
+ csDbUtils.HideColumns(GvAlarmHistory, "Id", "alarm_code", "alarm_status");
+ }
+ }
+ }
+
+ #endregion
+
+ #region ENVENT
+
+ private void btnLogClear_Click(object sender, EventArgs e)
+ {
+ meDataLog.Text = "";
+ }
+
+ private void BtnRefresh_Click(object sender, EventArgs e)
+ {
+ if (Config != null)
+ {
+ try
+ {
+ string modelName = csConstData.UART_MODEL[Config.UartModelIndex];
+ AlarmHistory = csDbUtils.GetBmsAlarmDataByDataTable(modelName, DateTime.Now, "");
+
+ AlarmHistoryUpdate(AlarmHistory);
+ }
+ catch (Exception ex)
+ {
+ _ = MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+
+ private void CbPrintID_SelectedValueChanged(object sender, EventArgs e)
+ {
+ try
+ {
+ print_id = Convert.ToInt32(CbPrintID.SelectedItem.ToString());
+
+ OnPrintOption?.Invoke(this, print_id);
+ }
+ catch (Exception ex)
+ {
+ _ = MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ #endregion
+
+ #region HELPER FUNCTIONS
+ public void AlarmHistoryUpdate(DataTable aAlarmHistory)
+ {
+ if (InvokeRequired)
+ {
+ Invoke(new MethodInvoker(delegate ()
+ {
+ try
+ {
+ string modelName = csConstData.UART_MODEL[Config.UartModelIndex];
+ AlarmHistory = csDbUtils.GetBmsAlarmDataByDataTable(modelName, DateTime.Now, "");
+
+ AlarmHistoryUpdate(AlarmHistory);
+ }
+ catch (Exception ex)
+ {
+ }
+ }));
+ }
+ else
+ {
+ try
+ {
+ string modelName = csConstData.UART_MODEL[Config.UartModelIndex];
+ AlarmHistory = csDbUtils.GetBmsAlarmDataByDataTable(modelName, DateTime.Now, "");
+
+ AlarmHistoryUpdate(AlarmHistory);
+ }
+ catch (Exception ex)
+ {
+ }
+ }
+ }
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucEventLog.resx b/LFP_Manager/Controls/ucEventLog.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/ucEventLog.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucHistroy.Designer.cs b/LFP_Manager/Controls/ucHistroy.Designer.cs
new file mode 100644
index 0000000..0a2d0d7
--- /dev/null
+++ b/LFP_Manager/Controls/ucHistroy.Designer.cs
@@ -0,0 +1,377 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucHistroy
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnSearch = new System.Windows.Forms.Button();
+ this.dtpEnd = new System.Windows.Forms.DateTimePicker();
+ this.dtpStart = new System.Windows.Forms.DateTimePicker();
+ this.xtcSearchResult = new DevExpress.XtraTab.XtraTabControl();
+ this.pgGrid = new DevExpress.XtraTab.XtraTabPage();
+ this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnExportExcel = new DevExpress.XtraEditors.SimpleButton();
+ this.gridSearchResult = new System.Windows.Forms.DataGridView();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lcgbSelectDatetime = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.slbStartDate = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.slbEndDate = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcgbSearchResult = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.DbWaitForm = new DevExpress.XtraSplashScreen.SplashScreenManager(this, typeof(global::LFP_Manager.Forms.fmxWait), true, true, typeof(System.Windows.Forms.UserControl));
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.xtcSearchResult)).BeginInit();
+ this.xtcSearchResult.SuspendLayout();
+ this.pgGrid.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit();
+ this.layoutControl3.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.gridSearchResult)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcgbSelectDatetime)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.slbStartDate)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.slbEndDate)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcgbSearchResult)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.btnSearch);
+ this.layoutControl1.Controls.Add(this.dtpEnd);
+ this.layoutControl1.Controls.Add(this.dtpStart);
+ this.layoutControl1.Controls.Add(this.xtcSearchResult);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(947, 249, 650, 400);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(850, 635);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // btnSearch
+ //
+ this.btnSearch.Location = new System.Drawing.Point(592, 28);
+ this.btnSearch.Name = "btnSearch";
+ this.btnSearch.Size = new System.Drawing.Size(251, 25);
+ this.btnSearch.TabIndex = 7;
+ this.btnSearch.Text = "SEARCH";
+ this.btnSearch.UseVisualStyleBackColor = true;
+ this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click);
+ //
+ // dtpEnd
+ //
+ this.dtpEnd.CustomFormat = "yyyy-MM-dd HH:mm:ss";
+ this.dtpEnd.Font = new System.Drawing.Font("Tahoma", 11F);
+ this.dtpEnd.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
+ this.dtpEnd.Location = new System.Drawing.Point(395, 28);
+ this.dtpEnd.Name = "dtpEnd";
+ this.dtpEnd.Size = new System.Drawing.Size(193, 25);
+ this.dtpEnd.TabIndex = 6;
+ //
+ // dtpStart
+ //
+ this.dtpStart.CalendarFont = new System.Drawing.Font("Tahoma", 9F);
+ this.dtpStart.CustomFormat = "yyyy-MM-dd HH:mm:ss";
+ this.dtpStart.Font = new System.Drawing.Font("Tahoma", 11F);
+ this.dtpStart.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
+ this.dtpStart.Location = new System.Drawing.Point(102, 28);
+ this.dtpStart.Name = "dtpStart";
+ this.dtpStart.Size = new System.Drawing.Size(194, 25);
+ this.dtpStart.TabIndex = 5;
+ //
+ // xtcSearchResult
+ //
+ this.xtcSearchResult.Location = new System.Drawing.Point(7, 86);
+ this.xtcSearchResult.Name = "xtcSearchResult";
+ this.xtcSearchResult.SelectedTabPage = this.pgGrid;
+ this.xtcSearchResult.Size = new System.Drawing.Size(836, 542);
+ this.xtcSearchResult.TabIndex = 4;
+ this.xtcSearchResult.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] {
+ this.pgGrid});
+ //
+ // pgGrid
+ //
+ this.pgGrid.Controls.Add(this.layoutControl3);
+ this.pgGrid.Name = "pgGrid";
+ this.pgGrid.Size = new System.Drawing.Size(834, 516);
+ this.pgGrid.Text = "Result Data";
+ //
+ // layoutControl3
+ //
+ this.layoutControl3.Controls.Add(this.btnExportExcel);
+ this.layoutControl3.Controls.Add(this.gridSearchResult);
+ this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl3.Name = "layoutControl3";
+ this.layoutControl3.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1120, 298, 650, 400);
+ this.layoutControl3.Root = this.Root;
+ this.layoutControl3.Size = new System.Drawing.Size(834, 516);
+ this.layoutControl3.TabIndex = 0;
+ this.layoutControl3.Text = "layoutControl3";
+ //
+ // btnExportExcel
+ //
+ this.btnExportExcel.Location = new System.Drawing.Point(728, 481);
+ this.btnExportExcel.Name = "btnExportExcel";
+ this.btnExportExcel.Size = new System.Drawing.Size(103, 32);
+ this.btnExportExcel.StyleController = this.layoutControl3;
+ this.btnExportExcel.TabIndex = 5;
+ this.btnExportExcel.Text = "Export Excel";
+ this.btnExportExcel.Click += new System.EventHandler(this.btnExportExcel_Click);
+ //
+ // gridSearchResult
+ //
+ this.gridSearchResult.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ this.gridSearchResult.Location = new System.Drawing.Point(3, 3);
+ this.gridSearchResult.Name = "gridSearchResult";
+ this.gridSearchResult.RowTemplate.Height = 23;
+ this.gridSearchResult.Size = new System.Drawing.Size(828, 474);
+ this.gridSearchResult.TabIndex = 4;
+ this.gridSearchResult.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.gridSearchResult_CellFormatting);
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem5,
+ this.layoutControlItem6,
+ this.emptySpaceItem1});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(834, 516);
+ this.Root.TextVisible = false;
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.gridSearchResult;
+ this.layoutControlItem5.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(104, 24);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(832, 478);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.btnExportExcel;
+ this.layoutControlItem6.Location = new System.Drawing.Point(725, 478);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(107, 36);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 478);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(725, 36);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lcgbSelectDatetime,
+ this.lcgbSearchResult});
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(850, 635);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // lcgbSelectDatetime
+ //
+ this.lcgbSelectDatetime.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.slbStartDate,
+ this.layoutControlItem2,
+ this.slbEndDate,
+ this.layoutControlItem4,
+ this.layoutControlItem3});
+ this.lcgbSelectDatetime.Location = new System.Drawing.Point(0, 0);
+ this.lcgbSelectDatetime.Name = "lcgbSelectDatetime";
+ this.lcgbSelectDatetime.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.lcgbSelectDatetime.Size = new System.Drawing.Size(848, 58);
+ this.lcgbSelectDatetime.Text = "Select Datetime";
+ //
+ // slbStartDate
+ //
+ this.slbStartDate.AllowHotTrack = false;
+ this.slbStartDate.Location = new System.Drawing.Point(0, 0);
+ this.slbStartDate.MinSize = new System.Drawing.Size(95, 18);
+ this.slbStartDate.Name = "slbStartDate";
+ this.slbStartDate.Size = new System.Drawing.Size(95, 29);
+ this.slbStartDate.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.slbStartDate.Text = " Start Datetime";
+ this.slbStartDate.TextSize = new System.Drawing.Size(85, 14);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.dtpStart;
+ this.layoutControlItem2.Location = new System.Drawing.Point(95, 0);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(24, 24);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(198, 29);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // slbEndDate
+ //
+ this.slbEndDate.AllowHotTrack = false;
+ this.slbEndDate.Location = new System.Drawing.Point(293, 0);
+ this.slbEndDate.MinSize = new System.Drawing.Size(95, 18);
+ this.slbEndDate.Name = "slbEndDate";
+ this.slbEndDate.Size = new System.Drawing.Size(95, 29);
+ this.slbEndDate.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.slbEndDate.Text = " End Datetime";
+ this.slbEndDate.TextSize = new System.Drawing.Size(85, 14);
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.btnSearch;
+ this.layoutControlItem4.Location = new System.Drawing.Point(585, 0);
+ this.layoutControlItem4.MaxSize = new System.Drawing.Size(0, 29);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(24, 29);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(255, 29);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.dtpEnd;
+ this.layoutControlItem3.Location = new System.Drawing.Point(388, 0);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(24, 24);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(197, 29);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // lcgbSearchResult
+ //
+ this.lcgbSearchResult.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1});
+ this.lcgbSearchResult.Location = new System.Drawing.Point(0, 58);
+ this.lcgbSearchResult.Name = "lcgbSearchResult";
+ this.lcgbSearchResult.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.lcgbSearchResult.Size = new System.Drawing.Size(848, 575);
+ this.lcgbSearchResult.Text = "Search Result";
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.xtcSearchResult;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(840, 546);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // ucHistroy
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.Name = "ucHistroy";
+ this.Size = new System.Drawing.Size(850, 635);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.xtcSearchResult)).EndInit();
+ this.xtcSearchResult.ResumeLayout(false);
+ this.pgGrid.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit();
+ this.layoutControl3.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.gridSearchResult)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcgbSelectDatetime)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.slbStartDate)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.slbEndDate)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcgbSearchResult)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraTab.XtraTabControl xtcSearchResult;
+ private DevExpress.XtraTab.XtraTabPage pgGrid;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraSplashScreen.SplashScreenManager DbWaitForm;
+ private System.Windows.Forms.Button btnSearch;
+ private System.Windows.Forms.DateTimePicker dtpEnd;
+ private System.Windows.Forms.DateTimePicker dtpStart;
+ private DevExpress.XtraLayout.LayoutControlGroup lcgbSelectDatetime;
+ private DevExpress.XtraLayout.SimpleLabelItem slbStartDate;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.SimpleLabelItem slbEndDate;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraLayout.LayoutControlGroup lcgbSearchResult;
+ private DevExpress.XtraLayout.LayoutControl layoutControl3;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private System.Windows.Forms.DataGridView gridSearchResult;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraEditors.SimpleButton btnExportExcel;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ }
+}
diff --git a/LFP_Manager/Controls/ucHistroy.cs b/LFP_Manager/Controls/ucHistroy.cs
new file mode 100644
index 0000000..e1b5403
--- /dev/null
+++ b/LFP_Manager/Controls/ucHistroy.cs
@@ -0,0 +1,215 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using System.IO;
+
+using DevExpress.XtraWaitForm;
+using DevExpress.XtraSplashScreen;
+using DevExpress.XtraCharts;
+
+using System.Data.SQLite;
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Utils;
+
+namespace LFP_Manager.Controls
+{
+ public partial class ucHistroy : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region VARIABLES
+
+ CommConfig Config;
+
+ DataTable dtHistory;
+
+ #endregion
+
+ #region CONSTRUCTOR
+
+ public ucHistroy()
+ {
+ InitializeComponent();
+
+ dtHistory = new DataTable();
+ }
+
+ public void SetCommCofig(CommConfig aConfig)
+ {
+ Config = aConfig;
+ }
+
+ #endregion
+
+ #region SQL QUARY EXCUTE
+
+ private void quaryExcute(string quary)
+ {
+ string dbFilename = System.IO.Path.GetDirectoryName(Application.ExecutablePath) + DbConstData.Database.FileName;
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilename;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ DataTable aT = new DataTable();
+
+ DbWaitForm.ShowWaitForm();
+
+ csDbUtils.BeginTran(connection);
+ // Update data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = quary;
+
+ try
+ {
+ SQLiteDataReader reader = command.ExecuteReader();
+ aT.Load(reader);
+ }
+ catch (Exception)
+ {
+ }
+ }
+ csDbUtils.CommitTran(connection);
+ dtHistory = aT;
+ //RealGridView.DataSource = dt;
+
+ DbWaitForm.CloseWaitForm();
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ finally
+ {
+ connection.Close();
+ }
+ }
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+
+ private void btnSearch_Click(object sender, EventArgs e)
+ {
+ DateTime start = dtpStart.Value;
+ DateTime mid;
+ DateTime end = dtpEnd.Value;
+ TimeSpan span = end - start;
+
+ int sDay = start.DayOfYear;
+ int eDay = end.DayOfYear;
+
+ dtHistory.Clear();
+
+ int total_days = eDay - sDay;
+
+ DataTable[] dDt = new DataTable[total_days + 1];
+
+ string quary = "";
+
+ try
+ {
+ if (total_days == 0)
+ {
+ quary = String.Format(" where create_date > '{0:yyyy-MM-dd HH:mm:ss}'", start);
+ quary += String.Format(" and create_date < '{0:yyyy-MM-dd HH:mm:ss}'", end);
+ dDt[0] = csDbUtils.BmsDataSelectToDataTable(Config, start, quary);
+ if (dDt[0] == null)
+ MessageBox.Show("No data", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ else
+ {
+ dtHistory = dDt[0];
+ dtHistory.TableName = "THistory";
+ gridSearchResult.DataSource = dtHistory;
+ //gridSearchResult.();
+ }
+ }
+ else
+ {
+ DataTable bDt = new DataTable();
+ for (int i = 0; i < (total_days + 1); i++)
+ {
+ //dDt[i] = new DataTable();
+ if (i == 0)
+ {
+ quary = String.Format(" where create_date > '{0:yyyy-MM-dd HH:mm:ss}'", start);
+ dDt[i] = csDbUtils.BmsDataSelectToDataTable(Config, start, quary);
+ }
+ else if (i == total_days)
+ {
+ quary = String.Format(" where create_date < '{0:yyyy-MM-dd HH:mm:ss}'", end);
+ dDt[i] = csDbUtils.BmsDataSelectToDataTable(Config, end, quary);
+ }
+ else
+ {
+ quary = "";
+ mid = start.AddDays(i);
+ dDt[i] = csDbUtils.BmsDataSelectToDataTable(Config, mid, quary);
+ }
+ if (dDt[i] != null)
+ bDt.Merge(dDt[i]);
+ }
+ if (bDt == null)
+ MessageBox.Show("No data", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ else
+ {
+ dtHistory = bDt;
+ dtHistory.TableName = String.Format("THistory_{0:yyMMdd_HHmmss}", DateTime.Now);
+ gridSearchResult.DataSource = dtHistory;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ private void btnExportExcel_Click(object sender, EventArgs e)
+ {
+ SaveFileDialog sDialog = new SaveFileDialog();
+ sDialog.Title = "Select save file";
+ sDialog.DefaultExt = "xlsx";
+ sDialog.Filter = "Excel files 2003 (*.xls)|*.xls|All files (*.*)|*.*";
+
+ if (sDialog.ShowDialog() == DialogResult.OK)
+ {
+ string filename = sDialog.FileName;
+
+ try
+ {
+ csExcelExport.ExportToExcelExt(dtHistory, filename);
+
+ MessageBox.Show("Complete Export Excel File", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+
+ #endregion
+
+ #region COMPONENT EVENT
+ private void gridSearchResult_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
+ {
+ if (e.Value is DateTime dateTime)
+ {
+ e.Value = csUtils.FormatDateTime(dateTime);
+ e.FormattingApplied = true;
+ }
+ }
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucHistroy.resx b/LFP_Manager/Controls/ucHistroy.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/ucHistroy.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucMainStatus.Designer.cs b/LFP_Manager/Controls/ucMainStatus.Designer.cs
new file mode 100644
index 0000000..d3ee152
--- /dev/null
+++ b/LFP_Manager/Controls/ucMainStatus.Designer.cs
@@ -0,0 +1,822 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucMainStatus
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ DevExpress.XtraCharts.XYDiagram xyDiagram1 = new DevExpress.XtraCharts.XYDiagram();
+ DevExpress.XtraCharts.Series series1 = new DevExpress.XtraCharts.Series();
+ DevExpress.XtraCharts.LineSeriesView lineSeriesView1 = new DevExpress.XtraCharts.LineSeriesView();
+ DevExpress.XtraCharts.Series series2 = new DevExpress.XtraCharts.Series();
+ DevExpress.XtraCharts.LineSeriesView lineSeriesView2 = new DevExpress.XtraCharts.LineSeriesView();
+ DevExpress.XtraCharts.ChartTitle chartTitle1 = new DevExpress.XtraCharts.ChartTitle();
+ this.tmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.rtGraph = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnChartClear = new DevExpress.XtraEditors.SimpleButton();
+ this.chartVI = new DevExpress.XtraCharts.ChartControl();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.groupControl1 = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl();
+ this.gaugeControl5 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.dgTotalSOH = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent5 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl4 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.dgTotalSOC = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent4 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl3 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.dgTotalTemp = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent3 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl2 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.dgTotalCurrent = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent2 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl1 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.dgTotalVoltage = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent1 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.panelControl11 = new DevExpress.XtraEditors.PanelControl();
+ this.lbStatus = new DevExpress.XtraEditors.LabelControl();
+ this.panelControl2 = new DevExpress.XtraEditors.PanelControl();
+ this.lbAlarm = new DevExpress.XtraEditors.LabelControl();
+ this.lcGroupSystemValue = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lcItemTotalVoltage = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcItemTotalCurrent = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcItemTemp = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcItemSOC = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcItemSOH = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lcitemStatus = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcitemAlarm = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcGroupRoot = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.gbModuleMain = new DevExpress.XtraEditors.GroupControl();
+ this.lcModuleMain = new DevExpress.XtraLayout.LayoutControl();
+ this.lcgbModuleMain = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcMain = new DevExpress.XtraLayout.LayoutControl();
+ this.layoutControlGroup4 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.rtGraph)).BeginInit();
+ this.rtGraph.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit();
+ this.layoutControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.chartVI)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(xyDiagram1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(series1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(lineSeriesView1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(series2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(lineSeriesView2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.groupControl1)).BeginInit();
+ this.groupControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit();
+ this.layoutControl3.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.dgTotalSOH)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgTotalSOC)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgTotalTemp)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgTotalCurrent)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgTotalVoltage)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl11)).BeginInit();
+ this.panelControl11.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl2)).BeginInit();
+ this.panelControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.lcGroupSystemValue)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemTotalVoltage)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemTotalCurrent)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemTemp)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemSOC)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemSOH)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemStatus)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemAlarm)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcGroupRoot)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbModuleMain)).BeginInit();
+ this.gbModuleMain.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.lcModuleMain)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcgbModuleMain)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcMain)).BeginInit();
+ this.lcMain.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ this.SuspendLayout();
+ //
+ // tmrDisplay
+ //
+ this.tmrDisplay.Interval = 500;
+ this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick);
+ //
+ // rtGraph
+ //
+ this.rtGraph.Controls.Add(this.layoutControl2);
+ this.rtGraph.Location = new System.Drawing.Point(206, 413);
+ this.rtGraph.Name = "rtGraph";
+ this.rtGraph.Size = new System.Drawing.Size(1093, 158);
+ this.rtGraph.TabIndex = 5;
+ this.rtGraph.Text = "Real Time Graph";
+ //
+ // layoutControl2
+ //
+ this.layoutControl2.AllowCustomization = false;
+ this.layoutControl2.Controls.Add(this.btnChartClear);
+ this.layoutControl2.Controls.Add(this.chartVI);
+ this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl2.HiddenItems.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem3,
+ this.layoutControlItem5});
+ this.layoutControl2.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl2.Name = "layoutControl2";
+ this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1232, 92, 650, 400);
+ this.layoutControl2.Root = this.layoutControlGroup2;
+ this.layoutControl2.Size = new System.Drawing.Size(1089, 133);
+ this.layoutControl2.TabIndex = 0;
+ this.layoutControl2.Text = "layoutControl2";
+ //
+ // btnChartClear
+ //
+ this.btnChartClear.Location = new System.Drawing.Point(3, 3);
+ this.btnChartClear.Name = "btnChartClear";
+ this.btnChartClear.Size = new System.Drawing.Size(1083, 127);
+ this.btnChartClear.StyleController = this.layoutControl2;
+ this.btnChartClear.TabIndex = 5;
+ this.btnChartClear.Text = "Clear";
+ //
+ // chartVI
+ //
+ xyDiagram1.AxisX.NumericScaleOptions.AutoGrid = false;
+ xyDiagram1.AxisX.VisibleInPanesSerializable = "-1";
+ xyDiagram1.AxisX.VisualRange.Auto = false;
+ xyDiagram1.AxisX.VisualRange.AutoSideMargins = false;
+ xyDiagram1.AxisX.VisualRange.EndSideMargin = 0D;
+ xyDiagram1.AxisX.VisualRange.MaxValueSerializable = "9";
+ xyDiagram1.AxisX.VisualRange.MinValueSerializable = "0";
+ xyDiagram1.AxisX.VisualRange.StartSideMargin = 0D;
+ xyDiagram1.AxisY.VisibleInPanesSerializable = "-1";
+ xyDiagram1.DefaultPane.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(242)))), ((int)(((byte)(242)))), ((int)(((byte)(242)))));
+ this.chartVI.Diagram = xyDiagram1;
+ this.chartVI.Legend.Name = "Default Legend";
+ this.chartVI.Location = new System.Drawing.Point(3, 3);
+ this.chartVI.Name = "chartVI";
+ series1.Name = "Series 1";
+ series1.View = lineSeriesView1;
+ series2.Name = "Series 2";
+ series2.View = lineSeriesView2;
+ this.chartVI.SeriesSerializable = new DevExpress.XtraCharts.Series[] {
+ series1,
+ series2};
+ this.chartVI.Size = new System.Drawing.Size(1083, 101);
+ this.chartVI.TabIndex = 4;
+ this.chartVI.Titles.AddRange(new DevExpress.XtraCharts.ChartTitle[] {
+ chartTitle1});
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.chartVI;
+ this.layoutControlItem3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(1087, 105);
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.btnChartClear;
+ this.layoutControlItem5.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(1087, 131);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2";
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Name = "Root";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(1089, 133);
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // groupControl1
+ //
+ this.groupControl1.Controls.Add(this.layoutControl3);
+ this.groupControl1.Location = new System.Drawing.Point(3, 3);
+ this.groupControl1.Name = "groupControl1";
+ this.groupControl1.Size = new System.Drawing.Size(199, 564);
+ this.groupControl1.TabIndex = 5;
+ this.groupControl1.Text = "System Value";
+ //
+ // layoutControl3
+ //
+ this.layoutControl3.AllowCustomization = false;
+ this.layoutControl3.Controls.Add(this.gaugeControl5);
+ this.layoutControl3.Controls.Add(this.gaugeControl4);
+ this.layoutControl3.Controls.Add(this.gaugeControl3);
+ this.layoutControl3.Controls.Add(this.gaugeControl2);
+ this.layoutControl3.Controls.Add(this.gaugeControl1);
+ this.layoutControl3.Controls.Add(this.panelControl11);
+ this.layoutControl3.Controls.Add(this.panelControl2);
+ this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl3.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl3.Name = "layoutControl3";
+ this.layoutControl3.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(498, 165, 250, 350);
+ this.layoutControl3.Root = this.lcGroupSystemValue;
+ this.layoutControl3.Size = new System.Drawing.Size(195, 539);
+ this.layoutControl3.TabIndex = 0;
+ this.layoutControl3.Text = "layoutControl3";
+ //
+ // gaugeControl5
+ //
+ this.gaugeControl5.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.dgTotalSOH});
+ this.gaugeControl5.Location = new System.Drawing.Point(3, 368);
+ this.gaugeControl5.Name = "gaugeControl5";
+ this.gaugeControl5.Size = new System.Drawing.Size(189, 66);
+ this.gaugeControl5.TabIndex = 8;
+ //
+ // dgTotalSOH
+ //
+ this.dgTotalSOH.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.dgTotalSOH.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.dgTotalSOH.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent5});
+ this.dgTotalSOH.Bounds = new System.Drawing.Rectangle(6, 6, 177, 54);
+ this.dgTotalSOH.DigitCount = 5;
+ this.dgTotalSOH.Name = "dgTotalSOH";
+ this.dgTotalSOH.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.dgTotalSOH.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent5
+ //
+ this.digitalBackgroundLayerComponent5.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent5.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent5.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent5.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent5.ZOrder = 1000;
+ //
+ // gaugeControl4
+ //
+ this.gaugeControl4.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.dgTotalSOC});
+ this.gaugeControl4.Location = new System.Drawing.Point(3, 281);
+ this.gaugeControl4.Name = "gaugeControl4";
+ this.gaugeControl4.Size = new System.Drawing.Size(189, 66);
+ this.gaugeControl4.TabIndex = 7;
+ //
+ // dgTotalSOC
+ //
+ this.dgTotalSOC.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.dgTotalSOC.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.dgTotalSOC.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent4});
+ this.dgTotalSOC.Bounds = new System.Drawing.Rectangle(6, 6, 177, 54);
+ this.dgTotalSOC.DigitCount = 5;
+ this.dgTotalSOC.Name = "dgTotalSOC";
+ this.dgTotalSOC.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.dgTotalSOC.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent4
+ //
+ this.digitalBackgroundLayerComponent4.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent4.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent4.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent4.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent4.ZOrder = 1000;
+ //
+ // gaugeControl3
+ //
+ this.gaugeControl3.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.dgTotalTemp});
+ this.gaugeControl3.Location = new System.Drawing.Point(3, 194);
+ this.gaugeControl3.Name = "gaugeControl3";
+ this.gaugeControl3.Size = new System.Drawing.Size(189, 66);
+ this.gaugeControl3.TabIndex = 6;
+ //
+ // dgTotalTemp
+ //
+ this.dgTotalTemp.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.dgTotalTemp.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.dgTotalTemp.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent3});
+ this.dgTotalTemp.Bounds = new System.Drawing.Rectangle(6, 6, 177, 54);
+ this.dgTotalTemp.DigitCount = 5;
+ this.dgTotalTemp.Name = "dgTotalTemp";
+ this.dgTotalTemp.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.dgTotalTemp.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent3
+ //
+ this.digitalBackgroundLayerComponent3.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent3.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent3.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent3.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent3.ZOrder = 1000;
+ //
+ // gaugeControl2
+ //
+ this.gaugeControl2.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.dgTotalCurrent});
+ this.gaugeControl2.Location = new System.Drawing.Point(3, 107);
+ this.gaugeControl2.Name = "gaugeControl2";
+ this.gaugeControl2.Size = new System.Drawing.Size(189, 66);
+ this.gaugeControl2.TabIndex = 5;
+ //
+ // dgTotalCurrent
+ //
+ this.dgTotalCurrent.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.dgTotalCurrent.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.dgTotalCurrent.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent2});
+ this.dgTotalCurrent.Bounds = new System.Drawing.Rectangle(6, 6, 177, 54);
+ this.dgTotalCurrent.DigitCount = 5;
+ this.dgTotalCurrent.Name = "dgTotalCurrent";
+ this.dgTotalCurrent.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.dgTotalCurrent.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent2
+ //
+ this.digitalBackgroundLayerComponent2.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent2.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent2.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent2.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent2.ZOrder = 1000;
+ //
+ // gaugeControl1
+ //
+ this.gaugeControl1.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.dgTotalVoltage});
+ this.gaugeControl1.Location = new System.Drawing.Point(3, 20);
+ this.gaugeControl1.Name = "gaugeControl1";
+ this.gaugeControl1.Size = new System.Drawing.Size(189, 66);
+ this.gaugeControl1.TabIndex = 4;
+ //
+ // dgTotalVoltage
+ //
+ this.dgTotalVoltage.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.dgTotalVoltage.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.dgTotalVoltage.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent1});
+ this.dgTotalVoltage.Bounds = new System.Drawing.Rectangle(6, 6, 177, 54);
+ this.dgTotalVoltage.DigitCount = 5;
+ this.dgTotalVoltage.Name = "dgTotalVoltage";
+ this.dgTotalVoltage.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.dgTotalVoltage.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent1
+ //
+ this.digitalBackgroundLayerComponent1.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent1.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent1.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent1.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent1.ZOrder = 1000;
+ //
+ // panelControl11
+ //
+ this.panelControl11.Controls.Add(this.lbStatus);
+ this.panelControl11.Location = new System.Drawing.Point(49, 464);
+ this.panelControl11.Name = "panelControl11";
+ this.panelControl11.Size = new System.Drawing.Size(138, 31);
+ this.panelControl11.TabIndex = 4;
+ //
+ // lbStatus
+ //
+ this.lbStatus.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbStatus.Appearance.Options.UseFont = true;
+ this.lbStatus.Appearance.Options.UseTextOptions = true;
+ this.lbStatus.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbStatus.AutoSizeMode = DevExpress.XtraEditors.LabelAutoSizeMode.None;
+ this.lbStatus.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.lbStatus.Location = new System.Drawing.Point(2, 2);
+ this.lbStatus.Name = "lbStatus";
+ this.lbStatus.Size = new System.Drawing.Size(134, 27);
+ this.lbStatus.TabIndex = 0;
+ this.lbStatus.Text = "Status";
+ //
+ // panelControl2
+ //
+ this.panelControl2.Controls.Add(this.lbAlarm);
+ this.panelControl2.Location = new System.Drawing.Point(49, 499);
+ this.panelControl2.Name = "panelControl2";
+ this.panelControl2.Size = new System.Drawing.Size(138, 32);
+ this.panelControl2.TabIndex = 5;
+ //
+ // lbAlarm
+ //
+ this.lbAlarm.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbAlarm.Appearance.Options.UseFont = true;
+ this.lbAlarm.Appearance.Options.UseTextOptions = true;
+ this.lbAlarm.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbAlarm.AutoSizeMode = DevExpress.XtraEditors.LabelAutoSizeMode.None;
+ this.lbAlarm.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.lbAlarm.Location = new System.Drawing.Point(2, 2);
+ this.lbAlarm.Name = "lbAlarm";
+ this.lbAlarm.Size = new System.Drawing.Size(134, 28);
+ this.lbAlarm.TabIndex = 0;
+ this.lbAlarm.Text = "Alarm";
+ //
+ // lcGroupSystemValue
+ //
+ this.lcGroupSystemValue.CustomizationFormText = "layoutControlGroup3";
+ this.lcGroupSystemValue.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.lcGroupSystemValue.GroupBordersVisible = false;
+ this.lcGroupSystemValue.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lcItemTotalVoltage,
+ this.lcItemTotalCurrent,
+ this.lcItemTemp,
+ this.lcItemSOC,
+ this.lcItemSOH,
+ this.layoutControlGroup1});
+ this.lcGroupSystemValue.Name = "lcGroupSystemValue";
+ this.lcGroupSystemValue.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.lcGroupSystemValue.Size = new System.Drawing.Size(195, 539);
+ this.lcGroupSystemValue.TextVisible = false;
+ //
+ // lcItemTotalVoltage
+ //
+ this.lcItemTotalVoltage.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lcItemTotalVoltage.AppearanceItemCaption.Options.UseFont = true;
+ this.lcItemTotalVoltage.Control = this.gaugeControl1;
+ this.lcItemTotalVoltage.CustomizationFormText = "layoutControlItem4";
+ this.lcItemTotalVoltage.Location = new System.Drawing.Point(0, 0);
+ this.lcItemTotalVoltage.MaxSize = new System.Drawing.Size(0, 87);
+ this.lcItemTotalVoltage.MinSize = new System.Drawing.Size(109, 87);
+ this.lcItemTotalVoltage.Name = "lcItemTotalVoltage";
+ this.lcItemTotalVoltage.Size = new System.Drawing.Size(193, 87);
+ this.lcItemTotalVoltage.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcItemTotalVoltage.Text = " Voltage";
+ this.lcItemTotalVoltage.TextLocation = DevExpress.Utils.Locations.Top;
+ this.lcItemTotalVoltage.TextSize = new System.Drawing.Size(125, 14);
+ //
+ // lcItemTotalCurrent
+ //
+ this.lcItemTotalCurrent.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lcItemTotalCurrent.AppearanceItemCaption.Options.UseFont = true;
+ this.lcItemTotalCurrent.Control = this.gaugeControl2;
+ this.lcItemTotalCurrent.CustomizationFormText = " Current";
+ this.lcItemTotalCurrent.Location = new System.Drawing.Point(0, 87);
+ this.lcItemTotalCurrent.MaxSize = new System.Drawing.Size(0, 87);
+ this.lcItemTotalCurrent.MinSize = new System.Drawing.Size(109, 87);
+ this.lcItemTotalCurrent.Name = "lcItemTotalCurrent";
+ this.lcItemTotalCurrent.Size = new System.Drawing.Size(193, 87);
+ this.lcItemTotalCurrent.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcItemTotalCurrent.Text = " Current";
+ this.lcItemTotalCurrent.TextLocation = DevExpress.Utils.Locations.Top;
+ this.lcItemTotalCurrent.TextSize = new System.Drawing.Size(125, 14);
+ //
+ // lcItemTemp
+ //
+ this.lcItemTemp.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lcItemTemp.AppearanceItemCaption.Options.UseFont = true;
+ this.lcItemTemp.Control = this.gaugeControl3;
+ this.lcItemTemp.CustomizationFormText = " Temperature";
+ this.lcItemTemp.Location = new System.Drawing.Point(0, 174);
+ this.lcItemTemp.MaxSize = new System.Drawing.Size(0, 87);
+ this.lcItemTemp.MinSize = new System.Drawing.Size(109, 87);
+ this.lcItemTemp.Name = "lcItemTemp";
+ this.lcItemTemp.Size = new System.Drawing.Size(193, 87);
+ this.lcItemTemp.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcItemTemp.Text = " Temperature (Max.)";
+ this.lcItemTemp.TextLocation = DevExpress.Utils.Locations.Top;
+ this.lcItemTemp.TextSize = new System.Drawing.Size(125, 14);
+ //
+ // lcItemSOC
+ //
+ this.lcItemSOC.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lcItemSOC.AppearanceItemCaption.Options.UseFont = true;
+ this.lcItemSOC.Control = this.gaugeControl4;
+ this.lcItemSOC.CustomizationFormText = " SOC";
+ this.lcItemSOC.Location = new System.Drawing.Point(0, 261);
+ this.lcItemSOC.MaxSize = new System.Drawing.Size(0, 87);
+ this.lcItemSOC.MinSize = new System.Drawing.Size(109, 87);
+ this.lcItemSOC.Name = "lcItemSOC";
+ this.lcItemSOC.Size = new System.Drawing.Size(193, 87);
+ this.lcItemSOC.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcItemSOC.Text = " SOC";
+ this.lcItemSOC.TextLocation = DevExpress.Utils.Locations.Top;
+ this.lcItemSOC.TextSize = new System.Drawing.Size(125, 14);
+ //
+ // lcItemSOH
+ //
+ this.lcItemSOH.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold);
+ this.lcItemSOH.AppearanceItemCaption.Options.UseFont = true;
+ this.lcItemSOH.Control = this.gaugeControl5;
+ this.lcItemSOH.Location = new System.Drawing.Point(0, 348);
+ this.lcItemSOH.MaxSize = new System.Drawing.Size(0, 87);
+ this.lcItemSOH.MinSize = new System.Drawing.Size(109, 87);
+ this.lcItemSOH.Name = "lcItemSOH";
+ this.lcItemSOH.Size = new System.Drawing.Size(193, 87);
+ this.lcItemSOH.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcItemSOH.Text = " SOH";
+ this.lcItemSOH.TextLocation = DevExpress.Utils.Locations.Top;
+ this.lcItemSOH.TextSize = new System.Drawing.Size(125, 14);
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lcitemStatus,
+ this.lcitemAlarm});
+ this.layoutControlGroup1.Location = new System.Drawing.Point(0, 435);
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(193, 102);
+ this.layoutControlGroup1.Text = "Operating Status";
+ //
+ // lcitemStatus
+ //
+ this.lcitemStatus.Control = this.panelControl11;
+ this.lcitemStatus.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.lcitemStatus.CustomizationFormText = "Status";
+ this.lcitemStatus.Location = new System.Drawing.Point(0, 0);
+ this.lcitemStatus.MinSize = new System.Drawing.Size(64, 26);
+ this.lcitemStatus.Name = "lcitemStatus";
+ this.lcitemStatus.Size = new System.Drawing.Size(183, 35);
+ this.lcitemStatus.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemStatus.Text = "Status";
+ this.lcitemStatus.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemStatus.TextSize = new System.Drawing.Size(40, 14);
+ this.lcitemStatus.TextToControlDistance = 1;
+ //
+ // lcitemAlarm
+ //
+ this.lcitemAlarm.Control = this.panelControl2;
+ this.lcitemAlarm.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.lcitemAlarm.CustomizationFormText = "Alarm";
+ this.lcitemAlarm.Location = new System.Drawing.Point(0, 35);
+ this.lcitemAlarm.MinSize = new System.Drawing.Size(64, 26);
+ this.lcitemAlarm.Name = "lcitemAlarm";
+ this.lcitemAlarm.Size = new System.Drawing.Size(183, 36);
+ this.lcitemAlarm.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemAlarm.Text = "Alarm";
+ this.lcitemAlarm.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemAlarm.TextSize = new System.Drawing.Size(40, 20);
+ this.lcitemAlarm.TextToControlDistance = 1;
+ //
+ // lcGroupRoot
+ //
+ this.lcGroupRoot.CustomizationFormText = "layoutControlGroup1";
+ this.lcGroupRoot.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.lcGroupRoot.GroupBordersVisible = false;
+ this.lcGroupRoot.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1,
+ this.layoutControlItem6});
+ this.lcGroupRoot.Name = "Root";
+ this.lcGroupRoot.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.lcGroupRoot.Size = new System.Drawing.Size(1302, 570);
+ this.lcGroupRoot.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.groupControl1;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.MaxSize = new System.Drawing.Size(203, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(203, 24);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(203, 568);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.gbModuleMain;
+ this.layoutControlItem6.Location = new System.Drawing.Point(203, 0);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(1097, 568);
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // gbModuleMain
+ //
+ this.gbModuleMain.Controls.Add(this.lcModuleMain);
+ this.gbModuleMain.Location = new System.Drawing.Point(206, 3);
+ this.gbModuleMain.Name = "gbModuleMain";
+ this.gbModuleMain.Size = new System.Drawing.Size(1093, 564);
+ this.gbModuleMain.TabIndex = 6;
+ this.gbModuleMain.Text = "Module";
+ //
+ // lcModuleMain
+ //
+ this.lcModuleMain.AllowCustomization = false;
+ this.lcModuleMain.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.lcModuleMain.Location = new System.Drawing.Point(2, 23);
+ this.lcModuleMain.Name = "lcModuleMain";
+ this.lcModuleMain.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1270, 115, 650, 400);
+ this.lcModuleMain.Root = this.lcgbModuleMain;
+ this.lcModuleMain.Size = new System.Drawing.Size(1089, 539);
+ this.lcModuleMain.TabIndex = 0;
+ this.lcModuleMain.Text = "layoutControl5";
+ //
+ // lcgbModuleMain
+ //
+ this.lcgbModuleMain.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.lcgbModuleMain.GroupBordersVisible = false;
+ this.lcgbModuleMain.Name = "Root";
+ this.lcgbModuleMain.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.lcgbModuleMain.Size = new System.Drawing.Size(1089, 539);
+ this.lcgbModuleMain.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.rtGraph;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(203, 410);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(1097, 162);
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // lcMain
+ //
+ this.lcMain.AllowCustomization = false;
+ this.lcMain.Controls.Add(this.gbModuleMain);
+ this.lcMain.Controls.Add(this.groupControl1);
+ this.lcMain.Controls.Add(this.rtGraph);
+ this.lcMain.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.lcMain.HiddenItems.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem2});
+ this.lcMain.Location = new System.Drawing.Point(0, 0);
+ this.lcMain.Name = "lcMain";
+ this.lcMain.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(955, 282, 650, 400);
+ this.lcMain.Root = this.lcGroupRoot;
+ this.lcMain.Size = new System.Drawing.Size(1302, 570);
+ this.lcMain.TabIndex = 0;
+ this.lcMain.Text = "layoutControl1";
+ //
+ // layoutControlGroup4
+ //
+ this.layoutControlGroup4.CustomizationFormText = "layoutControlGroup3";
+ this.layoutControlGroup4.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup4.GroupBordersVisible = false;
+ this.layoutControlGroup4.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup4.Name = "Root";
+ this.layoutControlGroup4.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup4.Size = new System.Drawing.Size(185, 63);
+ this.layoutControlGroup4.TextVisible = false;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold);
+ this.layoutControlItem7.AppearanceItemCaption.Options.UseFont = true;
+ this.layoutControlItem7.Control = this.gaugeControl5;
+ this.layoutControlItem7.Location = new System.Drawing.Point(0, 344);
+ this.layoutControlItem7.MinSize = new System.Drawing.Size(109, 41);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(193, 86);
+ this.layoutControlItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem7.Text = " SOH";
+ this.layoutControlItem7.TextLocation = DevExpress.Utils.Locations.Top;
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // ucMainStatus
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.lcMain);
+ this.Name = "ucMainStatus";
+ this.Size = new System.Drawing.Size(1302, 570);
+ ((System.ComponentModel.ISupportInitialize)(this.rtGraph)).EndInit();
+ this.rtGraph.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit();
+ this.layoutControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(xyDiagram1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(lineSeriesView1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(series1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(lineSeriesView2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(series2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.chartVI)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.groupControl1)).EndInit();
+ this.groupControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit();
+ this.layoutControl3.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.dgTotalSOH)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgTotalSOC)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgTotalTemp)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgTotalCurrent)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgTotalVoltage)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl11)).EndInit();
+ this.panelControl11.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl2)).EndInit();
+ this.panelControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.lcGroupSystemValue)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemTotalVoltage)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemTotalCurrent)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemTemp)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemSOC)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemSOH)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemStatus)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemAlarm)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcGroupRoot)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbModuleMain)).EndInit();
+ this.gbModuleMain.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.lcModuleMain)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcgbModuleMain)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcMain)).EndInit();
+ this.lcMain.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+ private System.Windows.Forms.Timer tmrDisplay;
+ private DevExpress.XtraEditors.GroupControl rtGraph;
+ private DevExpress.XtraLayout.LayoutControl layoutControl2;
+ private DevExpress.XtraEditors.SimpleButton btnChartClear;
+ private DevExpress.XtraCharts.ChartControl chartVI;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraEditors.GroupControl groupControl1;
+ private DevExpress.XtraLayout.LayoutControl layoutControl3;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl4;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgTotalSOC;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent4;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl3;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgTotalTemp;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent3;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl2;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgTotalCurrent;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent2;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl1;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgTotalVoltage;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent1;
+ private DevExpress.XtraLayout.LayoutControlGroup lcGroupSystemValue;
+ private DevExpress.XtraLayout.LayoutControlItem lcItemTotalVoltage;
+ private DevExpress.XtraLayout.LayoutControlItem lcItemTotalCurrent;
+ private DevExpress.XtraLayout.LayoutControlItem lcItemTemp;
+ private DevExpress.XtraLayout.LayoutControlItem lcItemSOC;
+ private DevExpress.XtraLayout.LayoutControlGroup lcGroupRoot;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraEditors.GroupControl gbModuleMain;
+ private DevExpress.XtraLayout.LayoutControl lcMain;
+ private DevExpress.XtraLayout.LayoutControl lcModuleMain;
+ private DevExpress.XtraLayout.LayoutControlGroup lcgbModuleMain;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl5;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgTotalSOH;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent5;
+ private DevExpress.XtraLayout.LayoutControlItem lcItemSOH;
+ private DevExpress.XtraEditors.PanelControl panelControl11;
+ private DevExpress.XtraEditors.LabelControl lbStatus;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemStatus;
+ private DevExpress.XtraEditors.PanelControl panelControl2;
+ private DevExpress.XtraEditors.LabelControl lbAlarm;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemAlarm;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup4;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ }
+}
diff --git a/LFP_Manager/Controls/ucMainStatus.cs b/LFP_Manager/Controls/ucMainStatus.cs
new file mode 100644
index 0000000..70fb4da
--- /dev/null
+++ b/LFP_Manager/Controls/ucMainStatus.cs
@@ -0,0 +1,469 @@
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Threading;
+using System.Windows.Forms;
+
+using DevExpress.XtraCharts;
+using DevExpress.XtraLayout;
+using LFP_Manager.DataStructure;
+
+namespace LFP_Manager.Controls
+{
+ public delegate void CommandEvent(int sId, int cmd, int index, int flag,
+ ref CsDeviceData.DeviceModuleData.DeviceParamData aParam,
+ ref CsDeviceData.DeviceModuleData.DeviceCalibration aCalib);
+
+ public partial class ucMainStatus : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region CONSTANTS / ENUMS
+
+ private const int HeaderHeight = 30;
+ private const int RowHeight = 60;
+ private const int BorderPadding = 2;
+
+ private static class Colors
+ {
+ public static readonly Color Normal = Color.Green;
+ public static readonly Color Warning = Color.Orange;
+ public static readonly Color Fault = Color.Red;
+ public static readonly Color Offline = Color.Red;
+ public static readonly Color Charging = Color.Blue;
+ public static readonly Color Discharging = Color.Magenta;
+ public static readonly Color Default = Color.Black;
+ }
+
+ private enum OperatingStatus
+ {
+ Standby = 0,
+ Charging = 1,
+ Discharging = 2,
+ Floating = 3
+ }
+
+ private enum BatteryStatus
+ {
+ Normal = 0,
+ Warning = 1,
+ Fault = 2,
+ WarmingUp = 3,
+ FaultAntiTheftComm = 4,
+ FaultAntiTheftGyro = 5
+ }
+
+ #endregion
+
+ #region FIELDS
+
+ private CommConfig _config;
+ private CsDeviceData _deviceData;
+
+ private static CsDeviceData.DeviceModuleData dummy;
+
+ private ucModuleMainHeader _moduleMainHeader;
+ private ucModuleMainB[] _moduleMainRows;
+
+ private LayoutControlItem[] _lcitemModuleMain;
+ private EmptySpaceItem[] _emptySpaceItems;
+
+ private int _moduleQty;
+
+ private double _totalVoltage;
+ private double _totalCurrent;
+ private double _totalTemperature;
+ private double _totalSoc;
+ private double _totalSoh;
+
+ private bool _active;
+
+ public event CommandEvent OnCommand;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public ucMainStatus()
+ {
+ InitializeComponent();
+
+ _moduleQty = csConstData.SystemInfo.MAX_MODULE_SIZE;
+
+ // 크기 변경 시 레이아웃 재배치
+ this.Resize += (_, __) =>
+ {
+ if (_moduleMainRows != null && _moduleMainRows.Length > 0)
+ RepositionLayout();
+ };
+
+ // 🔧 리소스/이벤트 정리: Dispose 이벤트로 대체
+ this.Disposed += UcMainStatus_Disposed;
+ }
+
+ #endregion
+
+ #region PUBLIC API
+ public void UpdateMainConfig(CommConfig config, CsDeviceData devData)
+ {
+ if (config == null || devData == null)
+ return;
+
+ _config = config;
+ _deviceData = devData;
+
+ _moduleQty = Math.Max(0, Math.Min(_config.ModuleQty, csConstData.SystemInfo.MAX_MODULE_SIZE));
+
+ LoadModuleMain(_moduleQty);
+ lcgbModuleMain.Invalidate();
+ }
+
+ public void Start(CommConfig config, CsDeviceData devData)
+ {
+ if (config == null || devData == null)
+ return;
+
+ _config = config;
+ _deviceData = devData;
+ _moduleQty = Math.Max(0, Math.Min(_config.ModuleQty, csConstData.SystemInfo.MAX_MODULE_SIZE));
+
+ _active = true;
+ tmrDisplay.Enabled = true;
+ }
+ public void Stop()
+ {
+ _active = false;
+ tmrDisplay.Enabled = false;
+ }
+
+ public void UpdateData(CsDeviceData devData)
+ {
+ if (!_active || devData == null)
+ return;
+
+ _deviceData = devData;
+
+ // 합계 값 계산 (0으로 나눔 방지, 스케일 고정)
+ _totalVoltage = _deviceData.TotalData?.ValueData != null ? _deviceData.TotalData.ValueData.TotalVoltage / 10.0 : 0.0;
+ _totalCurrent = _deviceData.TotalData?.ValueData != null ? _deviceData.TotalData.ValueData.TotalCurrent / 10.0 : 0.0;
+ _totalSoc = _deviceData.TotalData?.ValueData != null ? _deviceData.TotalData.ValueData.TotalSOC / 10.0 : 0.0;
+ _totalSoh = _deviceData.TotalData?.ValueData != null ? _deviceData.TotalData.ValueData.TotalSOH / 10.0 : 0.0;
+ _totalTemperature = _deviceData.TotalData?.ValueData != null ? _deviceData.TotalData.ValueData.TotalTemp / 10.0 : 0.0;
+
+ // 모듈 행 갱신 (범위/Null 안전)
+ if (_moduleMainRows != null && _deviceData.ModuleData != null)
+ {
+ var count = Math.Min(Math.Min(_moduleMainRows.Length, _deviceData.ModuleData.Length), _moduleQty);
+ for (var i = 0; i < count; i++)
+ {
+ _moduleMainRows[i]?.UpdateData(ref _deviceData.ModuleData[i]);
+ }
+ }
+ }
+
+ private void UcMainStatus_Disposed(object sender, EventArgs e)
+ {
+ try
+ {
+ // 타이머 정지
+ if (tmrDisplay != null)
+ tmrDisplay.Enabled = false;
+
+ // 이벤트 구독 해제
+ if (_moduleMainRows != null)
+ {
+ foreach (var row in _moduleMainRows)
+ {
+ if (row != null)
+ row.OnCommand -= SetCmdEvent;
+ }
+ }
+ }
+ catch { /* swallow on dispose */ }
+ }
+
+ #endregion
+
+ #region INTERNAL LAYOUT
+
+ private void LoadModuleMain(int mQty)
+ {
+ if (lcModuleMain == null || lcgbModuleMain == null)
+ return;
+
+ // 기존 컨트롤/아이템 제거 (성능 최적화)
+ lcModuleMain.SuspendLayout();
+ lcgbModuleMain.BeginUpdate();
+ try
+ {
+ lcModuleMain.Controls.Clear();
+ lcgbModuleMain.Items.Clear();
+
+ _moduleMainHeader = new ucModuleMainHeader();
+ _moduleMainRows = new ucModuleMainB[mQty];
+
+ _lcitemModuleMain = new LayoutControlItem[mQty + 1];
+
+ var emptySize = csConstData.SystemInfo.MAX_MODULE_SIZE - mQty;
+ _emptySpaceItems = emptySize > 0 ? new EmptySpaceItem[emptySize] : Array.Empty();
+
+ // 헤더
+ _lcitemModuleMain[0] = new LayoutControlItem
+ {
+ Control = _moduleMainHeader,
+ Name = "lcitemModuleMainHeader",
+ Size = new Size(Math.Max(0, lcgbModuleMain.Width - 2 * BorderPadding), HeaderHeight),
+ Location = new Point(BorderPadding, BorderPadding),
+ TextVisible = false,
+ Padding = new DevExpress.XtraLayout.Utils.Padding(0)
+ };
+
+ // 본문 행
+ var tWidth = Math.Max(0, lcgbModuleMain.Width - 2 * BorderPadding);
+ var y = BorderPadding + HeaderHeight;
+
+ var emptyIdx = 0;
+ for (var i = 0; i < csConstData.SystemInfo.MAX_MODULE_SIZE; i++)
+ {
+ if (i < mQty)
+ {
+ // 기존 구독 제거(안전)
+ if (_moduleMainRows[i] != null)
+ _moduleMainRows[i].OnCommand -= SetCmdEvent;
+
+ var moduleDataRef = _deviceData != null && _deviceData.ModuleData != null && _deviceData.ModuleData.Length > i
+ ? ref _deviceData.ModuleData[i]
+ : ref GetDummyModuleRef();
+
+ _moduleMainRows[i] = new ucModuleMainB(_config, i + 1, ref moduleDataRef);
+ _moduleMainRows[i].OnCommand += SetCmdEvent;
+
+ _lcitemModuleMain[i + 1] = new LayoutControlItem
+ {
+ Control = _moduleMainRows[i],
+ Name = $"lcitemModuleMain_{i + 1}",
+ Size = new Size(tWidth, RowHeight),
+ Location = new Point(BorderPadding, y),
+ TextVisible = false,
+ Padding = new DevExpress.XtraLayout.Utils.Padding(0)
+ };
+
+ y += RowHeight;
+ }
+ else if (_emptySpaceItems.Length > 0 && emptyIdx < _emptySpaceItems.Length)
+ {
+ _emptySpaceItems[emptyIdx] = new EmptySpaceItem
+ {
+ Size = new Size(tWidth, RowHeight),
+ Location = new Point(BorderPadding, y)
+ };
+ y += RowHeight;
+ emptyIdx++;
+ }
+ }
+
+ // 컨트롤 추가
+ lcModuleMain.Controls.Add(_moduleMainHeader);
+ for (var i = 0; i < mQty; i++)
+ {
+ if (_moduleMainRows[i] != null)
+ lcModuleMain.Controls.Add(_moduleMainRows[i]);
+ }
+
+ // 레이아웃 아이템 구성
+ var items = new List(csConstData.SystemInfo.MAX_MODULE_SIZE + 1);
+ items.Add(_lcitemModuleMain[0]);
+ for (var i = 1; i < _lcitemModuleMain.Length; i++)
+ {
+ if (_lcitemModuleMain[i] != null)
+ items.Add(_lcitemModuleMain[i]);
+ }
+ if (_emptySpaceItems.Length > 0)
+ items.AddRange(_emptySpaceItems);
+
+ lcgbModuleMain.Items.AddRange(items.ToArray());
+ }
+ finally
+ {
+ lcgbModuleMain.EndUpdate();
+ lcModuleMain.ResumeLayout();
+ lcgbModuleMain.Invalidate();
+ }
+ }
+
+ // 크기 변경 시 아이템 사이즈/좌표만 갱신 (재생성 X)
+ private void RepositionLayout()
+ {
+ if (_lcitemModuleMain == null || _lcitemModuleMain.Length == 0 || lcgbModuleMain == null)
+ return;
+
+ lcgbModuleMain.BeginUpdate();
+ try
+ {
+ var tWidth = Math.Max(0, lcgbModuleMain.Width - 2 * BorderPadding);
+
+ // 헤더
+ if (_lcitemModuleMain[0] != null)
+ {
+ _lcitemModuleMain[0].Size = new Size(tWidth, HeaderHeight);
+ _lcitemModuleMain[0].Location = new Point(BorderPadding, BorderPadding);
+ }
+
+ // 행
+ var y = BorderPadding + HeaderHeight;
+ for (var i = 1; i < _lcitemModuleMain.Length; i++)
+ {
+ var item = _lcitemModuleMain[i];
+ if (item == null) continue;
+
+ item.Size = new Size(tWidth, RowHeight);
+ item.Location = new Point(BorderPadding, y);
+ y += RowHeight;
+ }
+
+ // 빈공간
+ if (_emptySpaceItems != null && _emptySpaceItems.Length > 0)
+ {
+ foreach (var emp in _emptySpaceItems)
+ {
+ if (emp == null) continue;
+ emp.Size = new Size(tWidth, RowHeight);
+ emp.Location = new Point(BorderPadding, y);
+ y += RowHeight;
+ }
+ }
+ }
+ finally
+ {
+ lcgbModuleMain.EndUpdate();
+ lcgbModuleMain.Invalidate();
+ }
+ }
+
+ // 모듈 데이터가 아직 없을 때 참조를 위한 더미(구조 동일)
+ private ref CsDeviceData.DeviceModuleData GetDummyModuleRef()
+ {
+ // static 필드로 유지해도 무방
+ return ref dummy;
+ }
+ #endregion
+
+ #region EVENT BRIDGE
+
+ private void SetCmdEvent(
+ int sId, int cmd, int index, int flag,
+ ref CsDeviceData.DeviceModuleData.DeviceParamData aParam,
+ ref CsDeviceData.DeviceModuleData.DeviceCalibration aCalib)
+ {
+ var handler = OnCommand; // 레이스 방지
+ handler?.Invoke(sId, cmd, index, flag, ref aParam, ref aCalib);
+ }
+
+ #endregion
+ #region TIMER EVENT
+ private void tmrDisplay_Tick(object sender, EventArgs e)
+ {
+ DisplayTotalValue();
+ DisplayStatusAndAlarm();
+ }
+
+ #endregion
+
+ #region DISPLAY FUNCTION
+ private void DisplayTotalValue()
+ {
+ if (!_active || _deviceData?.TotalData == null)
+ return;
+
+ var fw = _deviceData.TotalData.IdentData?.FwVerStr ?? "N/A";
+ var modules = _config != null ? _config.ModuleQty : _moduleQty;
+
+ rtGraph.Text = $"Real Time Graph - V{fw} - {modules} Modules";
+
+ dgTotalVoltage.Text = $"{_totalVoltage:0.0}";
+ dgTotalCurrent.Text = $"{_totalCurrent:0.0}";
+ dgTotalTemp.Text = $"{_totalTemperature:0.0}";
+ dgTotalSOC.Text = $"{_totalSoc:0.0}";
+ dgTotalSOH.Text = $"{_totalSoh:0.0}";
+
+ chartVI?.Invalidate();
+ }
+
+ private void DisplayStatusAndAlarm()
+ {
+ if (_deviceData?.TotalData == null)
+ return;
+
+ if (_deviceData.TotalData.CommFail)
+ {
+ lbStatus.Text = "OFF-LINE";
+ lbStatus.ForeColor = Colors.Offline;
+ lbAlarm.Text = "OFF-LINE";
+ lbAlarm.ForeColor = Colors.Offline;
+ return;
+ }
+
+ // Operating Status
+ var st = (OperatingStatus)(_deviceData.TotalData.StatusData?.status ?? -1);
+ switch (st)
+ {
+ case OperatingStatus.Standby:
+ lbStatus.Text = "STANDBY";
+ lbStatus.ForeColor = Colors.Default;
+ break;
+ case OperatingStatus.Charging:
+ lbStatus.Text = "CHARGING";
+ lbStatus.ForeColor = Colors.Charging;
+ break;
+ case OperatingStatus.Discharging:
+ lbStatus.Text = "DISCHARGING";
+ lbStatus.ForeColor = Colors.Discharging;
+ break;
+ case OperatingStatus.Floating:
+ lbStatus.Text = "FLOATING";
+ lbStatus.ForeColor = Colors.Default;
+ break;
+ default:
+ lbStatus.Text = "UNKNOWN";
+ lbStatus.ForeColor = Colors.Default;
+ break;
+ }
+
+ // Battery Status
+ var bs = (BatteryStatus)(_deviceData.TotalData.StatusData?.batteryStatus ?? -1);
+ switch (bs)
+ {
+ case BatteryStatus.Normal:
+ lbAlarm.Text = "NORMAL";
+ lbAlarm.ForeColor = Colors.Normal;
+ break;
+ case BatteryStatus.Warning:
+ lbAlarm.Text = "WARNING";
+ lbAlarm.ForeColor = Colors.Warning;
+ break;
+ case BatteryStatus.Fault:
+ lbAlarm.Text = "FAULT";
+ lbAlarm.ForeColor = Colors.Fault;
+ break;
+ case BatteryStatus.WarmingUp:
+ lbAlarm.Text = "WARMING UP";
+ lbAlarm.ForeColor = Colors.Warning;
+ break;
+ case BatteryStatus.FaultAntiTheftComm:
+ lbAlarm.Text = "FAULT (Anti-Theft Comm.)";
+ lbAlarm.ForeColor = Colors.Fault;
+ break;
+ case BatteryStatus.FaultAntiTheftGyro:
+ lbAlarm.Text = "FAULT (Anti-Theft Gyro)";
+ lbAlarm.ForeColor = Colors.Fault;
+ break;
+ default:
+ lbAlarm.Text = $"UNKNOWN ({_deviceData.TotalData.StatusData?.batteryStatus})";
+ lbAlarm.ForeColor = Colors.Fault;
+ break;
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucMainStatus.resx b/LFP_Manager/Controls/ucMainStatus.resx
new file mode 100644
index 0000000..fe317aa
--- /dev/null
+++ b/LFP_Manager/Controls/ucMainStatus.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucModuleMainA.Designer.cs b/LFP_Manager/Controls/ucModuleMainA.Designer.cs
new file mode 100644
index 0000000..43f9d0f
--- /dev/null
+++ b/LFP_Manager/Controls/ucModuleMainA.Designer.cs
@@ -0,0 +1,670 @@
+
+namespace LFP_Manager.Controls
+{
+ partial class ucModuleMainA
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ DevExpress.XtraGauges.Core.Model.ScaleLabel scaleLabel2 = new DevExpress.XtraGauges.Core.Model.ScaleLabel();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState21 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState22 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState23 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState24 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState25 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState26 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState27 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState28 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState29 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState30 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState31 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState32 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState33 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState34 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState35 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState36 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState37 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState38 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState39 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState40 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ this.tabbedView = new DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView(this.components);
+ this.gbModuleMain = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.gaugeControl1 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.lcitemSOC = new DevExpress.XtraLayout.LayoutControlItem();
+ this.Level_Bars = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearGauge();
+ this.linearScaleComponent1 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleComponent();
+ this.linearScaleBackgroundLayerComponent1 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleBackgroundLayerComponent();
+ this.linearScaleStateIndicatorComponent1 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent();
+ this.linearScaleStateIndicatorComponent2 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent();
+ this.linearScaleStateIndicatorComponent3 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent();
+ this.linearScaleStateIndicatorComponent4 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent();
+ this.linearScaleStateIndicatorComponent5 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent();
+ this.linearScaleStateIndicatorComponent6 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent();
+ this.linearScaleStateIndicatorComponent7 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent();
+ this.linearScaleStateIndicatorComponent8 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent();
+ this.linearScaleStateIndicatorComponent9 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent();
+ this.linearScaleStateIndicatorComponent10 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent();
+ this.gaugeControl2 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.digitalGauge4 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent1 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.lcitemMVolt = new DevExpress.XtraLayout.LayoutControlItem();
+ this.gaugeControl3 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.lcitemCurrent = new DevExpress.XtraLayout.LayoutControlItem();
+ this.digitalGauge1 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent2 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl4 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.lcitemAvgTemp = new DevExpress.XtraLayout.LayoutControlItem();
+ this.digitalGauge2 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent3 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.btnDetailView = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ ((System.ComponentModel.ISupportInitialize)(this.tabbedView)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbModuleMain)).BeginInit();
+ this.gbModuleMain.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemSOC)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Level_Bars)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleComponent1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleBackgroundLayerComponent1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent9)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent10)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalGauge4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemMVolt)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemCurrent)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalGauge1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemAvgTemp)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalGauge2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // gbModuleMain
+ //
+ this.gbModuleMain.AppearanceCaption.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.gbModuleMain.AppearanceCaption.Options.UseFont = true;
+ this.gbModuleMain.Controls.Add(this.layoutControl1);
+ this.gbModuleMain.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.gbModuleMain.Location = new System.Drawing.Point(0, 0);
+ this.gbModuleMain.Name = "gbModuleMain";
+ this.gbModuleMain.Size = new System.Drawing.Size(314, 258);
+ this.gbModuleMain.TabIndex = 0;
+ this.gbModuleMain.Text = "Module - #0";
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.btnDetailView);
+ this.layoutControl1.Controls.Add(this.gaugeControl4);
+ this.layoutControl1.Controls.Add(this.gaugeControl3);
+ this.layoutControl1.Controls.Add(this.gaugeControl2);
+ this.layoutControl1.Controls.Add(this.gaugeControl1);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1209, 352, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(310, 233);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lcitemSOC,
+ this.lcitemMVolt,
+ this.lcitemCurrent,
+ this.lcitemAvgTemp,
+ this.layoutControlItem5,
+ this.emptySpaceItem1});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(310, 233);
+ this.Root.TextVisible = false;
+ //
+ // gaugeControl1
+ //
+ this.gaugeControl1.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.Level_Bars});
+ this.gaugeControl1.Location = new System.Drawing.Point(3, 22);
+ this.gaugeControl1.Name = "gaugeControl1";
+ this.gaugeControl1.Size = new System.Drawing.Size(105, 208);
+ this.gaugeControl1.TabIndex = 4;
+ //
+ // lcitemSOC
+ //
+ this.lcitemSOC.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lcitemSOC.AppearanceItemCaption.Options.UseFont = true;
+ this.lcitemSOC.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lcitemSOC.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lcitemSOC.Control = this.gaugeControl1;
+ this.lcitemSOC.Location = new System.Drawing.Point(0, 0);
+ this.lcitemSOC.MinSize = new System.Drawing.Size(109, 50);
+ this.lcitemSOC.Name = "lcitemSOC";
+ this.lcitemSOC.Size = new System.Drawing.Size(109, 231);
+ this.lcitemSOC.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemSOC.Text = "SOC";
+ this.lcitemSOC.TextLocation = DevExpress.Utils.Locations.Top;
+ this.lcitemSOC.TextSize = new System.Drawing.Size(25, 16);
+ //
+ // Level_Bars
+ //
+ this.Level_Bars.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleBackgroundLayerComponent[] {
+ this.linearScaleBackgroundLayerComponent1});
+ this.Level_Bars.Bounds = new System.Drawing.Rectangle(6, 6, 93, 196);
+ this.Level_Bars.Indicators.AddRange(new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent[] {
+ this.linearScaleStateIndicatorComponent1,
+ this.linearScaleStateIndicatorComponent2,
+ this.linearScaleStateIndicatorComponent3,
+ this.linearScaleStateIndicatorComponent4,
+ this.linearScaleStateIndicatorComponent5,
+ this.linearScaleStateIndicatorComponent6,
+ this.linearScaleStateIndicatorComponent7,
+ this.linearScaleStateIndicatorComponent8,
+ this.linearScaleStateIndicatorComponent9,
+ this.linearScaleStateIndicatorComponent10});
+ this.Level_Bars.Name = "Level_Bars";
+ this.Level_Bars.Scales.AddRange(new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleComponent[] {
+ this.linearScaleComponent1});
+ //
+ // linearScaleComponent1
+ //
+ this.linearScaleComponent1.AppearanceTickmarkText.TextBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:Black");
+ this.linearScaleComponent1.EndPoint = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 225F);
+ scaleLabel2.AppearanceText.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold);
+ scaleLabel2.AppearanceText.TextBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:White");
+ scaleLabel2.FormatString = "{0} {2:P0}";
+ scaleLabel2.Name = "Label0";
+ scaleLabel2.Position = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 125F);
+ scaleLabel2.Size = new System.Drawing.SizeF(100F, 30F);
+ scaleLabel2.Text = "";
+ scaleLabel2.TextOrientation = DevExpress.XtraGauges.Core.Model.LabelOrientation.LeftToRight;
+ this.linearScaleComponent1.Labels.AddRange(new DevExpress.XtraGauges.Core.Model.ILabel[] {
+ scaleLabel2});
+ this.linearScaleComponent1.MajorTickCount = 2;
+ this.linearScaleComponent1.MajorTickmark.FormatString = "{0:F0}";
+ this.linearScaleComponent1.MajorTickmark.ShapeOffset = -20F;
+ this.linearScaleComponent1.MajorTickmark.ShapeType = DevExpress.XtraGauges.Core.Model.TickmarkShapeType.Linear_Style1_1;
+ this.linearScaleComponent1.MajorTickmark.ShowText = false;
+ this.linearScaleComponent1.MajorTickmark.ShowTick = false;
+ this.linearScaleComponent1.MajorTickmark.TextOffset = -32F;
+ this.linearScaleComponent1.MaxValue = 100F;
+ this.linearScaleComponent1.MinorTickCount = 0;
+ this.linearScaleComponent1.MinorTickmark.ShapeOffset = -14F;
+ this.linearScaleComponent1.MinorTickmark.ShapeType = DevExpress.XtraGauges.Core.Model.TickmarkShapeType.Linear_Style1_2;
+ this.linearScaleComponent1.MinorTickmark.ShowTick = false;
+ this.linearScaleComponent1.Name = "scale1";
+ this.linearScaleComponent1.StartPoint = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 25F);
+ this.linearScaleComponent1.Value = 75F;
+ //
+ // linearScaleBackgroundLayerComponent1
+ //
+ this.linearScaleBackgroundLayerComponent1.LinearScale = this.linearScaleComponent1;
+ this.linearScaleBackgroundLayerComponent1.Name = "bg1";
+ this.linearScaleBackgroundLayerComponent1.ScaleEndPos = new DevExpress.XtraGauges.Core.Base.PointF2D(0.5F, 0.1F);
+ this.linearScaleBackgroundLayerComponent1.ScaleStartPos = new DevExpress.XtraGauges.Core.Base.PointF2D(0.5F, 0.9F);
+ this.linearScaleBackgroundLayerComponent1.ShapeType = DevExpress.XtraGauges.Core.Model.BackgroundLayerShapeType.Linear_Style10;
+ this.linearScaleBackgroundLayerComponent1.ZOrder = 1000;
+ //
+ // linearScaleStateIndicatorComponent1
+ //
+ this.linearScaleStateIndicatorComponent1.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 225F);
+ this.linearScaleStateIndicatorComponent1.IndicatorScale = this.linearScaleComponent1;
+ this.linearScaleStateIndicatorComponent1.Name = "Indicator0";
+ this.linearScaleStateIndicatorComponent1.Size = new System.Drawing.SizeF(58.5702F, 18.94918F);
+ scaleIndicatorState21.IntervalLength = 100F;
+ scaleIndicatorState21.Name = "Colored";
+ scaleIndicatorState21.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer2;
+ scaleIndicatorState21.StartValue = 0.01F;
+ scaleIndicatorState22.IntervalLength = 0F;
+ scaleIndicatorState22.Name = "Empty";
+ scaleIndicatorState22.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0;
+ this.linearScaleStateIndicatorComponent1.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] {
+ scaleIndicatorState21,
+ scaleIndicatorState22});
+ this.linearScaleStateIndicatorComponent1.ZOrder = 100;
+ //
+ // linearScaleStateIndicatorComponent2
+ //
+ this.linearScaleStateIndicatorComponent2.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 202.7778F);
+ this.linearScaleStateIndicatorComponent2.IndicatorScale = this.linearScaleComponent1;
+ this.linearScaleStateIndicatorComponent2.Name = "Indicator1";
+ this.linearScaleStateIndicatorComponent2.Size = new System.Drawing.SizeF(58.5702F, 18.94918F);
+ scaleIndicatorState23.IntervalLength = 90F;
+ scaleIndicatorState23.Name = "Colored";
+ scaleIndicatorState23.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer2;
+ scaleIndicatorState23.StartValue = 10F;
+ scaleIndicatorState24.IntervalLength = 10F;
+ scaleIndicatorState24.Name = "Empty";
+ scaleIndicatorState24.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0;
+ this.linearScaleStateIndicatorComponent2.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] {
+ scaleIndicatorState23,
+ scaleIndicatorState24});
+ this.linearScaleStateIndicatorComponent2.ZOrder = 99;
+ //
+ // linearScaleStateIndicatorComponent3
+ //
+ this.linearScaleStateIndicatorComponent3.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 180.5556F);
+ this.linearScaleStateIndicatorComponent3.IndicatorScale = this.linearScaleComponent1;
+ this.linearScaleStateIndicatorComponent3.Name = "Indicator2";
+ this.linearScaleStateIndicatorComponent3.Size = new System.Drawing.SizeF(58.5702F, 18.94918F);
+ scaleIndicatorState25.IntervalLength = 80F;
+ scaleIndicatorState25.Name = "Colored";
+ scaleIndicatorState25.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer2;
+ scaleIndicatorState25.StartValue = 20F;
+ scaleIndicatorState26.IntervalLength = 20F;
+ scaleIndicatorState26.Name = "Empty";
+ scaleIndicatorState26.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0;
+ this.linearScaleStateIndicatorComponent3.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] {
+ scaleIndicatorState25,
+ scaleIndicatorState26});
+ this.linearScaleStateIndicatorComponent3.ZOrder = 98;
+ //
+ // linearScaleStateIndicatorComponent4
+ //
+ this.linearScaleStateIndicatorComponent4.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 158.3333F);
+ this.linearScaleStateIndicatorComponent4.IndicatorScale = this.linearScaleComponent1;
+ this.linearScaleStateIndicatorComponent4.Name = "Indicator3";
+ this.linearScaleStateIndicatorComponent4.Size = new System.Drawing.SizeF(58.5702F, 18.94918F);
+ scaleIndicatorState27.IntervalLength = 70F;
+ scaleIndicatorState27.Name = "Colored";
+ scaleIndicatorState27.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer3;
+ scaleIndicatorState27.StartValue = 30F;
+ scaleIndicatorState28.IntervalLength = 30F;
+ scaleIndicatorState28.Name = "Empty";
+ scaleIndicatorState28.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0;
+ this.linearScaleStateIndicatorComponent4.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] {
+ scaleIndicatorState27,
+ scaleIndicatorState28});
+ this.linearScaleStateIndicatorComponent4.ZOrder = 97;
+ //
+ // linearScaleStateIndicatorComponent5
+ //
+ this.linearScaleStateIndicatorComponent5.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 136.1111F);
+ this.linearScaleStateIndicatorComponent5.IndicatorScale = this.linearScaleComponent1;
+ this.linearScaleStateIndicatorComponent5.Name = "Indicator4";
+ this.linearScaleStateIndicatorComponent5.Size = new System.Drawing.SizeF(58.5702F, 18.94918F);
+ scaleIndicatorState29.IntervalLength = 60F;
+ scaleIndicatorState29.Name = "Colored";
+ scaleIndicatorState29.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer3;
+ scaleIndicatorState29.StartValue = 40F;
+ scaleIndicatorState30.IntervalLength = 40F;
+ scaleIndicatorState30.Name = "Empty";
+ scaleIndicatorState30.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0;
+ this.linearScaleStateIndicatorComponent5.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] {
+ scaleIndicatorState29,
+ scaleIndicatorState30});
+ this.linearScaleStateIndicatorComponent5.ZOrder = 96;
+ //
+ // linearScaleStateIndicatorComponent6
+ //
+ this.linearScaleStateIndicatorComponent6.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 113.8889F);
+ this.linearScaleStateIndicatorComponent6.IndicatorScale = this.linearScaleComponent1;
+ this.linearScaleStateIndicatorComponent6.Name = "Indicator5";
+ this.linearScaleStateIndicatorComponent6.Size = new System.Drawing.SizeF(58.5702F, 18.94918F);
+ scaleIndicatorState31.IntervalLength = 50F;
+ scaleIndicatorState31.Name = "Colored";
+ scaleIndicatorState31.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer3;
+ scaleIndicatorState31.StartValue = 50F;
+ scaleIndicatorState32.IntervalLength = 50F;
+ scaleIndicatorState32.Name = "Empty";
+ scaleIndicatorState32.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0;
+ this.linearScaleStateIndicatorComponent6.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] {
+ scaleIndicatorState31,
+ scaleIndicatorState32});
+ this.linearScaleStateIndicatorComponent6.ZOrder = 95;
+ //
+ // linearScaleStateIndicatorComponent7
+ //
+ this.linearScaleStateIndicatorComponent7.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 91.66667F);
+ this.linearScaleStateIndicatorComponent7.IndicatorScale = this.linearScaleComponent1;
+ this.linearScaleStateIndicatorComponent7.Name = "Indicator6";
+ this.linearScaleStateIndicatorComponent7.Size = new System.Drawing.SizeF(58.5702F, 18.94918F);
+ scaleIndicatorState33.IntervalLength = 40F;
+ scaleIndicatorState33.Name = "Colored";
+ scaleIndicatorState33.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer4;
+ scaleIndicatorState33.StartValue = 60F;
+ scaleIndicatorState34.IntervalLength = 60F;
+ scaleIndicatorState34.Name = "Empty";
+ scaleIndicatorState34.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0;
+ this.linearScaleStateIndicatorComponent7.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] {
+ scaleIndicatorState33,
+ scaleIndicatorState34});
+ this.linearScaleStateIndicatorComponent7.ZOrder = 94;
+ //
+ // linearScaleStateIndicatorComponent8
+ //
+ this.linearScaleStateIndicatorComponent8.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 69.44444F);
+ this.linearScaleStateIndicatorComponent8.IndicatorScale = this.linearScaleComponent1;
+ this.linearScaleStateIndicatorComponent8.Name = "Indicator7";
+ this.linearScaleStateIndicatorComponent8.Size = new System.Drawing.SizeF(58.5702F, 18.94918F);
+ scaleIndicatorState35.IntervalLength = 30F;
+ scaleIndicatorState35.Name = "Colored";
+ scaleIndicatorState35.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer4;
+ scaleIndicatorState35.StartValue = 70F;
+ scaleIndicatorState36.IntervalLength = 70F;
+ scaleIndicatorState36.Name = "Empty";
+ scaleIndicatorState36.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0;
+ this.linearScaleStateIndicatorComponent8.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] {
+ scaleIndicatorState35,
+ scaleIndicatorState36});
+ this.linearScaleStateIndicatorComponent8.ZOrder = 93;
+ //
+ // linearScaleStateIndicatorComponent9
+ //
+ this.linearScaleStateIndicatorComponent9.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 47.22222F);
+ this.linearScaleStateIndicatorComponent9.IndicatorScale = this.linearScaleComponent1;
+ this.linearScaleStateIndicatorComponent9.Name = "Indicator8";
+ this.linearScaleStateIndicatorComponent9.Size = new System.Drawing.SizeF(58.5702F, 18.94918F);
+ scaleIndicatorState37.IntervalLength = 20F;
+ scaleIndicatorState37.Name = "Colored";
+ scaleIndicatorState37.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer4;
+ scaleIndicatorState37.StartValue = 80F;
+ scaleIndicatorState38.IntervalLength = 80F;
+ scaleIndicatorState38.Name = "Empty";
+ scaleIndicatorState38.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0;
+ this.linearScaleStateIndicatorComponent9.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] {
+ scaleIndicatorState37,
+ scaleIndicatorState38});
+ this.linearScaleStateIndicatorComponent9.ZOrder = 92;
+ //
+ // linearScaleStateIndicatorComponent10
+ //
+ this.linearScaleStateIndicatorComponent10.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 25F);
+ this.linearScaleStateIndicatorComponent10.IndicatorScale = this.linearScaleComponent1;
+ this.linearScaleStateIndicatorComponent10.Name = "Indicator9";
+ this.linearScaleStateIndicatorComponent10.Size = new System.Drawing.SizeF(58.5702F, 18.94918F);
+ scaleIndicatorState39.IntervalLength = 10F;
+ scaleIndicatorState39.Name = "Colored";
+ scaleIndicatorState39.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer4;
+ scaleIndicatorState39.StartValue = 90F;
+ scaleIndicatorState40.IntervalLength = 90F;
+ scaleIndicatorState40.Name = "Empty";
+ scaleIndicatorState40.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0;
+ this.linearScaleStateIndicatorComponent10.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] {
+ scaleIndicatorState39,
+ scaleIndicatorState40});
+ this.linearScaleStateIndicatorComponent10.ZOrder = 91;
+ //
+ // gaugeControl2
+ //
+ this.gaugeControl2.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.digitalGauge4});
+ this.gaugeControl2.Location = new System.Drawing.Point(167, 3);
+ this.gaugeControl2.Name = "gaugeControl2";
+ this.gaugeControl2.Size = new System.Drawing.Size(140, 56);
+ this.gaugeControl2.TabIndex = 0;
+ //
+ // digitalGauge4
+ //
+ this.digitalGauge4.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.digitalGauge4.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.digitalGauge4.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent1});
+ this.digitalGauge4.Bounds = new System.Drawing.Rectangle(6, 6, 128, 44);
+ this.digitalGauge4.DigitCount = 5;
+ this.digitalGauge4.Name = "digitalGauge4";
+ this.digitalGauge4.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.digitalGauge4.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent1
+ //
+ this.digitalBackgroundLayerComponent1.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent1.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent1.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent1.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent1.ZOrder = 1000;
+ //
+ // lcitemMVolt
+ //
+ this.lcitemMVolt.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lcitemMVolt.AppearanceItemCaption.Options.UseFont = true;
+ this.lcitemMVolt.Control = this.gaugeControl2;
+ this.lcitemMVolt.Location = new System.Drawing.Point(109, 0);
+ this.lcitemMVolt.MinSize = new System.Drawing.Size(100, 24);
+ this.lcitemMVolt.Name = "lcitemMVolt";
+ this.lcitemMVolt.Size = new System.Drawing.Size(199, 60);
+ this.lcitemMVolt.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemMVolt.Text = " Volt";
+ this.lcitemMVolt.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemMVolt.TextSize = new System.Drawing.Size(50, 16);
+ this.lcitemMVolt.TextToControlDistance = 5;
+ //
+ // gaugeControl3
+ //
+ this.gaugeControl3.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.digitalGauge1});
+ this.gaugeControl3.Location = new System.Drawing.Point(167, 63);
+ this.gaugeControl3.Name = "gaugeControl3";
+ this.gaugeControl3.Size = new System.Drawing.Size(140, 56);
+ this.gaugeControl3.TabIndex = 5;
+ //
+ // lcitemCurrent
+ //
+ this.lcitemCurrent.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lcitemCurrent.AppearanceItemCaption.Options.UseFont = true;
+ this.lcitemCurrent.Control = this.gaugeControl3;
+ this.lcitemCurrent.Location = new System.Drawing.Point(109, 60);
+ this.lcitemCurrent.MinSize = new System.Drawing.Size(100, 24);
+ this.lcitemCurrent.Name = "lcitemCurrent";
+ this.lcitemCurrent.Size = new System.Drawing.Size(199, 60);
+ this.lcitemCurrent.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemCurrent.Text = " Curr";
+ this.lcitemCurrent.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemCurrent.TextSize = new System.Drawing.Size(50, 20);
+ this.lcitemCurrent.TextToControlDistance = 5;
+ //
+ // digitalGauge1
+ //
+ this.digitalGauge1.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.digitalGauge1.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.digitalGauge1.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent2});
+ this.digitalGauge1.Bounds = new System.Drawing.Rectangle(6, 6, 128, 44);
+ this.digitalGauge1.DigitCount = 5;
+ this.digitalGauge1.Name = "digitalGauge1";
+ this.digitalGauge1.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.digitalGauge1.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent2
+ //
+ this.digitalBackgroundLayerComponent2.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent2.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent2.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent2.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent2.ZOrder = 1000;
+ //
+ // gaugeControl4
+ //
+ this.gaugeControl4.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.digitalGauge2});
+ this.gaugeControl4.Location = new System.Drawing.Point(167, 123);
+ this.gaugeControl4.Name = "gaugeControl4";
+ this.gaugeControl4.Size = new System.Drawing.Size(140, 56);
+ this.gaugeControl4.TabIndex = 6;
+ //
+ // lcitemAvgTemp
+ //
+ this.lcitemAvgTemp.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lcitemAvgTemp.AppearanceItemCaption.Options.UseFont = true;
+ this.lcitemAvgTemp.Control = this.gaugeControl4;
+ this.lcitemAvgTemp.Location = new System.Drawing.Point(109, 120);
+ this.lcitemAvgTemp.MinSize = new System.Drawing.Size(100, 24);
+ this.lcitemAvgTemp.Name = "lcitemAvgTemp";
+ this.lcitemAvgTemp.Size = new System.Drawing.Size(199, 60);
+ this.lcitemAvgTemp.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemAvgTemp.Text = " Temp";
+ this.lcitemAvgTemp.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemAvgTemp.TextSize = new System.Drawing.Size(50, 16);
+ this.lcitemAvgTemp.TextToControlDistance = 5;
+ //
+ // digitalGauge2
+ //
+ this.digitalGauge2.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.digitalGauge2.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.digitalGauge2.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent3});
+ this.digitalGauge2.Bounds = new System.Drawing.Rectangle(6, 6, 128, 44);
+ this.digitalGauge2.DigitCount = 5;
+ this.digitalGauge2.Name = "digitalGauge2";
+ this.digitalGauge2.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.digitalGauge2.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent3
+ //
+ this.digitalBackgroundLayerComponent3.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent3.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent3.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent3.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent3.ZOrder = 1000;
+ //
+ // btnDetailView
+ //
+ this.btnDetailView.Appearance.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnDetailView.Appearance.Options.UseFont = true;
+ this.btnDetailView.Location = new System.Drawing.Point(222, 183);
+ this.btnDetailView.Name = "btnDetailView";
+ this.btnDetailView.Size = new System.Drawing.Size(85, 47);
+ this.btnDetailView.StyleController = this.layoutControl1;
+ this.btnDetailView.TabIndex = 7;
+ this.btnDetailView.Text = "Detail View";
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.btnDetailView;
+ this.layoutControlItem5.Location = new System.Drawing.Point(219, 180);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(89, 51);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(109, 180);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(110, 51);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // ucModuleMainA
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.gbModuleMain);
+ this.MinimumSize = new System.Drawing.Size(300, 0);
+ this.Name = "ucModuleMainA";
+ this.Size = new System.Drawing.Size(314, 258);
+ ((System.ComponentModel.ISupportInitialize)(this.tabbedView)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbModuleMain)).EndInit();
+ this.gbModuleMain.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemSOC)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Level_Bars)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleComponent1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleBackgroundLayerComponent1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent9)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent10)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalGauge4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemMVolt)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemCurrent)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalGauge1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemAvgTemp)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalGauge2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+ private DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView tabbedView;
+ private DevExpress.XtraEditors.GroupControl gbModuleMain;
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraEditors.SimpleButton btnDetailView;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl4;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge digitalGauge2;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent3;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl3;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge digitalGauge1;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent2;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl2;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge digitalGauge4;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent1;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl1;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearGauge Level_Bars;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleBackgroundLayerComponent linearScaleBackgroundLayerComponent1;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleComponent linearScaleComponent1;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent1;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent2;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent3;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent4;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent5;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent6;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent7;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent8;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent9;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent10;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemSOC;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemMVolt;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemCurrent;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemAvgTemp;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ }
+}
diff --git a/LFP_Manager/Controls/ucModuleMainA.cs b/LFP_Manager/Controls/ucModuleMainA.cs
new file mode 100644
index 0000000..3ab7480
--- /dev/null
+++ b/LFP_Manager/Controls/ucModuleMainA.cs
@@ -0,0 +1,21 @@
+using DevExpress.XtraEditors;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Controls
+{
+ public partial class ucModuleMainA : DevExpress.XtraEditors.XtraUserControl
+ {
+ public ucModuleMainA()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/LFP_Manager/Controls/ucModuleMainA.resx b/LFP_Manager/Controls/ucModuleMainA.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/ucModuleMainA.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucModuleMainB.Designer.cs b/LFP_Manager/Controls/ucModuleMainB.Designer.cs
new file mode 100644
index 0000000..c5d29ff
--- /dev/null
+++ b/LFP_Manager/Controls/ucModuleMainB.Designer.cs
@@ -0,0 +1,658 @@
+
+namespace LFP_Manager.Controls
+{
+ partial class ucModuleMainB
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.gaugeControl6 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.gaugeTempMax = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent7 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl5 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.gaugeGapV = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent6 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl4 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.gaugeSOH = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent4 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.btnModuleDetail = new DevExpress.XtraEditors.SimpleButton();
+ this.gaugeControl3 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.gaugeSOC = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent3 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl2 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.gaugeCurrent = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent2 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl1 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.gaugeVoltage = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent1 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.slbOpStatus = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.slbAlarm = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.lcitemVolt = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcitemCurrent = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcitemSOC = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcitemSOH = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcItemModuleDetail = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lbMdFwVer = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.tmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.digitalGauge1 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent5 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.lbModuleNumber = new DevExpress.XtraEditors.LabelControl();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lcitemModuleNumber = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lbMdNo = new System.Windows.Forms.Label();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeTempMax)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeGapV)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeSOH)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeSOC)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeCurrent)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeVoltage)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.slbOpStatus)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.slbAlarm)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemVolt)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemCurrent)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemSOC)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemSOH)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemModuleDetail)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbMdFwVer)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalGauge1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemModuleNumber)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.AllowCustomization = false;
+ this.layoutControl1.Controls.Add(this.lbMdNo);
+ this.layoutControl1.Controls.Add(this.gaugeControl6);
+ this.layoutControl1.Controls.Add(this.gaugeControl5);
+ this.layoutControl1.Controls.Add(this.gaugeControl4);
+ this.layoutControl1.Controls.Add(this.btnModuleDetail);
+ this.layoutControl1.Controls.Add(this.gaugeControl3);
+ this.layoutControl1.Controls.Add(this.gaugeControl2);
+ this.layoutControl1.Controls.Add(this.gaugeControl1);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(775, 363, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(888, 54);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // gaugeControl6
+ //
+ this.gaugeControl6.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.gaugeTempMax});
+ this.gaugeControl6.Location = new System.Drawing.Point(648, 6);
+ this.gaugeControl6.Name = "gaugeControl6";
+ this.gaugeControl6.Size = new System.Drawing.Size(94, 41);
+ this.gaugeControl6.TabIndex = 11;
+ //
+ // gaugeTempMax
+ //
+ this.gaugeTempMax.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.gaugeTempMax.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.gaugeTempMax.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent7});
+ this.gaugeTempMax.Bounds = new System.Drawing.Rectangle(6, 6, 82, 29);
+ this.gaugeTempMax.DigitCount = 4;
+ this.gaugeTempMax.Name = "gaugeTempMax";
+ this.gaugeTempMax.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.gaugeTempMax.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent7
+ //
+ this.digitalBackgroundLayerComponent7.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(217.85F, 99.9625F);
+ this.digitalBackgroundLayerComponent7.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent7.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent7.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent7.ZOrder = 1000;
+ //
+ // gaugeControl5
+ //
+ this.gaugeControl5.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.gaugeGapV});
+ this.gaugeControl5.Location = new System.Drawing.Point(746, 6);
+ this.gaugeControl5.Name = "gaugeControl5";
+ this.gaugeControl5.Size = new System.Drawing.Size(94, 41);
+ this.gaugeControl5.TabIndex = 10;
+ //
+ // gaugeGapV
+ //
+ this.gaugeGapV.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.gaugeGapV.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.gaugeGapV.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent6});
+ this.gaugeGapV.Bounds = new System.Drawing.Rectangle(6, 6, 82, 29);
+ this.gaugeGapV.DigitCount = 4;
+ this.gaugeGapV.Name = "gaugeGapV";
+ this.gaugeGapV.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.gaugeGapV.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent6
+ //
+ this.digitalBackgroundLayerComponent6.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(217.85F, 99.9625F);
+ this.digitalBackgroundLayerComponent6.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent6.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent6.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent6.ZOrder = 1000;
+ //
+ // gaugeControl4
+ //
+ this.gaugeControl4.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.gaugeSOH});
+ this.gaugeControl4.Location = new System.Drawing.Point(550, 6);
+ this.gaugeControl4.Name = "gaugeControl4";
+ this.gaugeControl4.Size = new System.Drawing.Size(94, 41);
+ this.gaugeControl4.TabIndex = 8;
+ //
+ // gaugeSOH
+ //
+ this.gaugeSOH.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.gaugeSOH.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.gaugeSOH.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent4});
+ this.gaugeSOH.Bounds = new System.Drawing.Rectangle(6, 6, 82, 29);
+ this.gaugeSOH.DigitCount = 4;
+ this.gaugeSOH.Name = "gaugeSOH";
+ this.gaugeSOH.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.gaugeSOH.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent4
+ //
+ this.digitalBackgroundLayerComponent4.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(217.85F, 99.9625F);
+ this.digitalBackgroundLayerComponent4.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent4.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent4.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent4.ZOrder = 1000;
+ //
+ // btnModuleDetail
+ //
+ this.btnModuleDetail.Location = new System.Drawing.Point(844, 6);
+ this.btnModuleDetail.Name = "btnModuleDetail";
+ this.btnModuleDetail.Size = new System.Drawing.Size(37, 41);
+ this.btnModuleDetail.StyleController = this.layoutControl1;
+ this.btnModuleDetail.TabIndex = 7;
+ this.btnModuleDetail.Text = "Detail";
+ this.btnModuleDetail.Click += new System.EventHandler(this.btnModuleDetail_Click);
+ //
+ // gaugeControl3
+ //
+ this.gaugeControl3.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.gaugeSOC});
+ this.gaugeControl3.Location = new System.Drawing.Point(452, 6);
+ this.gaugeControl3.Name = "gaugeControl3";
+ this.gaugeControl3.Size = new System.Drawing.Size(94, 41);
+ this.gaugeControl3.TabIndex = 6;
+ //
+ // gaugeSOC
+ //
+ this.gaugeSOC.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.gaugeSOC.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.gaugeSOC.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent3});
+ this.gaugeSOC.Bounds = new System.Drawing.Rectangle(6, 6, 82, 29);
+ this.gaugeSOC.DigitCount = 4;
+ this.gaugeSOC.Name = "gaugeSOC";
+ this.gaugeSOC.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.gaugeSOC.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent3
+ //
+ this.digitalBackgroundLayerComponent3.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(217.85F, 99.9625F);
+ this.digitalBackgroundLayerComponent3.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent3.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent3.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent3.ZOrder = 1000;
+ //
+ // gaugeControl2
+ //
+ this.gaugeControl2.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.gaugeCurrent});
+ this.gaugeControl2.Location = new System.Drawing.Point(354, 6);
+ this.gaugeControl2.Name = "gaugeControl2";
+ this.gaugeControl2.Size = new System.Drawing.Size(94, 41);
+ this.gaugeControl2.TabIndex = 5;
+ //
+ // gaugeCurrent
+ //
+ this.gaugeCurrent.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.gaugeCurrent.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.gaugeCurrent.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent2});
+ this.gaugeCurrent.Bounds = new System.Drawing.Rectangle(6, 6, 82, 29);
+ this.gaugeCurrent.DigitCount = 4;
+ this.gaugeCurrent.Name = "gaugeCurrent";
+ this.gaugeCurrent.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.gaugeCurrent.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent2
+ //
+ this.digitalBackgroundLayerComponent2.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(217.85F, 99.9625F);
+ this.digitalBackgroundLayerComponent2.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent2.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent2.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent2.ZOrder = 1000;
+ //
+ // gaugeControl1
+ //
+ this.gaugeControl1.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.gaugeVoltage});
+ this.gaugeControl1.Location = new System.Drawing.Point(256, 6);
+ this.gaugeControl1.Name = "gaugeControl1";
+ this.gaugeControl1.Size = new System.Drawing.Size(94, 41);
+ this.gaugeControl1.TabIndex = 4;
+ //
+ // gaugeVoltage
+ //
+ this.gaugeVoltage.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.gaugeVoltage.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.gaugeVoltage.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent1});
+ this.gaugeVoltage.Bounds = new System.Drawing.Rectangle(6, 6, 82, 29);
+ this.gaugeVoltage.DigitCount = 4;
+ this.gaugeVoltage.Name = "gaugeVoltage";
+ this.gaugeVoltage.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.gaugeVoltage.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent1
+ //
+ this.digitalBackgroundLayerComponent1.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(217.85F, 99.9625F);
+ this.digitalBackgroundLayerComponent1.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent1.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent1.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent1.ZOrder = 1000;
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlGroup2});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(888, 54);
+ this.Root.TextVisible = false;
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.AppearanceGroup.Options.UseTextOptions = true;
+ this.layoutControlGroup2.AppearanceGroup.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.layoutControlGroup2.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.layoutControlGroup2.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.layoutControlGroup2.AppearanceItemCaption.TextOptions.VAlignment = DevExpress.Utils.VertAlignment.Center;
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.slbOpStatus,
+ this.slbAlarm,
+ this.lcitemVolt,
+ this.lcitemCurrent,
+ this.lcitemSOC,
+ this.lcitemSOH,
+ this.layoutControlItem1,
+ this.lcItemModuleDetail,
+ this.layoutControlItem3,
+ this.lbMdFwVer,
+ this.layoutControlItem2});
+ this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup2.Name = "layoutControlGroup2";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(886, 52);
+ this.layoutControlGroup2.Text = "MD";
+ this.layoutControlGroup2.TextLocation = DevExpress.Utils.Locations.Left;
+ //
+ // slbOpStatus
+ //
+ this.slbOpStatus.AllowHotTrack = false;
+ this.slbOpStatus.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold);
+ this.slbOpStatus.AppearanceItemCaption.Options.UseFont = true;
+ this.slbOpStatus.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.slbOpStatus.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.slbOpStatus.Location = new System.Drawing.Point(48, 0);
+ this.slbOpStatus.MinSize = new System.Drawing.Size(60, 18);
+ this.slbOpStatus.Name = "slbOpStatus";
+ this.slbOpStatus.Size = new System.Drawing.Size(60, 45);
+ this.slbOpStatus.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.slbOpStatus.Text = "DCH";
+ this.slbOpStatus.TextSize = new System.Drawing.Size(40, 16);
+ //
+ // slbAlarm
+ //
+ this.slbAlarm.AllowHotTrack = false;
+ this.slbAlarm.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold);
+ this.slbAlarm.AppearanceItemCaption.Options.UseFont = true;
+ this.slbAlarm.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.slbAlarm.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.slbAlarm.Location = new System.Drawing.Point(108, 0);
+ this.slbAlarm.MinSize = new System.Drawing.Size(60, 18);
+ this.slbAlarm.Name = "slbAlarm";
+ this.slbAlarm.OptionsTableLayoutItem.RowIndex = 2;
+ this.slbAlarm.Size = new System.Drawing.Size(60, 45);
+ this.slbAlarm.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.slbAlarm.Text = "WARN";
+ this.slbAlarm.TextSize = new System.Drawing.Size(40, 16);
+ //
+ // lcitemVolt
+ //
+ this.lcitemVolt.Control = this.gaugeControl1;
+ this.lcitemVolt.Location = new System.Drawing.Point(227, 0);
+ this.lcitemVolt.MinSize = new System.Drawing.Size(98, 41);
+ this.lcitemVolt.Name = "lcitemVolt";
+ this.lcitemVolt.OptionsTableLayoutItem.ColumnIndex = 1;
+ this.lcitemVolt.Size = new System.Drawing.Size(98, 45);
+ this.lcitemVolt.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemVolt.Text = "Voltage";
+ this.lcitemVolt.TextLocation = DevExpress.Utils.Locations.Top;
+ this.lcitemVolt.TextSize = new System.Drawing.Size(0, 0);
+ this.lcitemVolt.TextVisible = false;
+ //
+ // lcitemCurrent
+ //
+ this.lcitemCurrent.Control = this.gaugeControl2;
+ this.lcitemCurrent.Location = new System.Drawing.Point(325, 0);
+ this.lcitemCurrent.MinSize = new System.Drawing.Size(98, 41);
+ this.lcitemCurrent.Name = "lcitemCurrent";
+ this.lcitemCurrent.OptionsTableLayoutItem.RowIndex = 1;
+ this.lcitemCurrent.Size = new System.Drawing.Size(98, 45);
+ this.lcitemCurrent.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemCurrent.Text = "Current";
+ this.lcitemCurrent.TextLocation = DevExpress.Utils.Locations.Top;
+ this.lcitemCurrent.TextSize = new System.Drawing.Size(0, 0);
+ this.lcitemCurrent.TextVisible = false;
+ //
+ // lcitemSOC
+ //
+ this.lcitemSOC.Control = this.gaugeControl3;
+ this.lcitemSOC.Location = new System.Drawing.Point(423, 0);
+ this.lcitemSOC.MinSize = new System.Drawing.Size(98, 41);
+ this.lcitemSOC.Name = "lcitemSOC";
+ this.lcitemSOC.OptionsTableLayoutItem.ColumnIndex = 1;
+ this.lcitemSOC.OptionsTableLayoutItem.RowIndex = 1;
+ this.lcitemSOC.Size = new System.Drawing.Size(98, 45);
+ this.lcitemSOC.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemSOC.Text = "SOC";
+ this.lcitemSOC.TextLocation = DevExpress.Utils.Locations.Top;
+ this.lcitemSOC.TextSize = new System.Drawing.Size(0, 0);
+ this.lcitemSOC.TextVisible = false;
+ //
+ // lcitemSOH
+ //
+ this.lcitemSOH.Control = this.gaugeControl4;
+ this.lcitemSOH.Location = new System.Drawing.Point(521, 0);
+ this.lcitemSOH.MinSize = new System.Drawing.Size(98, 41);
+ this.lcitemSOH.Name = "lcitemSOH";
+ this.lcitemSOH.OptionsTableLayoutItem.RowIndex = 3;
+ this.lcitemSOH.Size = new System.Drawing.Size(98, 45);
+ this.lcitemSOH.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemSOH.Text = "SOH";
+ this.lcitemSOH.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemSOH.TextLocation = DevExpress.Utils.Locations.Left;
+ this.lcitemSOH.TextSize = new System.Drawing.Size(0, 0);
+ this.lcitemSOH.TextToControlDistance = 0;
+ this.lcitemSOH.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.gaugeControl5;
+ this.layoutControlItem1.Location = new System.Drawing.Point(717, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(98, 41);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(98, 45);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.Text = "GapV";
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // lcItemModuleDetail
+ //
+ this.lcItemModuleDetail.Control = this.btnModuleDetail;
+ this.lcItemModuleDetail.Location = new System.Drawing.Point(815, 0);
+ this.lcItemModuleDetail.MinSize = new System.Drawing.Size(41, 26);
+ this.lcItemModuleDetail.Name = "lcItemModuleDetail";
+ this.lcItemModuleDetail.OptionsTableLayoutItem.ColumnIndex = 1;
+ this.lcItemModuleDetail.OptionsTableLayoutItem.RowIndex = 2;
+ this.lcItemModuleDetail.Size = new System.Drawing.Size(41, 45);
+ this.lcItemModuleDetail.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcItemModuleDetail.TextSize = new System.Drawing.Size(0, 0);
+ this.lcItemModuleDetail.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.gaugeControl6;
+ this.layoutControlItem3.CustomizationFormText = "Temp Max.";
+ this.layoutControlItem3.Location = new System.Drawing.Point(619, 0);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(98, 41);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(98, 45);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // lbMdFwVer
+ //
+ this.lbMdFwVer.AllowHotTrack = false;
+ this.lbMdFwVer.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.lbMdFwVer.AppearanceItemCaption.Options.UseFont = true;
+ this.lbMdFwVer.Location = new System.Drawing.Point(168, 0);
+ this.lbMdFwVer.Name = "lbMdFwVer";
+ this.lbMdFwVer.Size = new System.Drawing.Size(59, 45);
+ this.lbMdFwVer.Text = "----";
+ this.lbMdFwVer.TextSize = new System.Drawing.Size(40, 16);
+ //
+ // tmrDisplay
+ //
+ this.tmrDisplay.Enabled = true;
+ this.tmrDisplay.Interval = 500;
+ this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick);
+ //
+ // digitalGauge1
+ //
+ this.digitalGauge1.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.digitalGauge1.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.digitalGauge1.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent5});
+ this.digitalGauge1.Bounds = new System.Drawing.Rectangle(6, 6, 204, 35);
+ this.digitalGauge1.DigitCount = 4;
+ this.digitalGauge1.Name = "digitalGauge1";
+ this.digitalGauge1.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.digitalGauge1.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent5
+ //
+ this.digitalBackgroundLayerComponent5.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(217.85F, 99.9625F);
+ this.digitalBackgroundLayerComponent5.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent5.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent5.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent5.ZOrder = 1000;
+ //
+ // lbModuleNumber
+ //
+ this.lbModuleNumber.Appearance.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbModuleNumber.Appearance.Options.UseFont = true;
+ this.lbModuleNumber.Appearance.Options.UseTextOptions = true;
+ this.lbModuleNumber.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbModuleNumber.Location = new System.Drawing.Point(3, 3);
+ this.lbModuleNumber.Name = "lbModuleNumber";
+ this.lbModuleNumber.Size = new System.Drawing.Size(0, 19);
+ this.lbModuleNumber.TabIndex = 4;
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lcitemModuleNumber});
+ this.layoutControlGroup1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(46, 33);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // lcitemModuleNumber
+ //
+ this.lcitemModuleNumber.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lcitemModuleNumber.AppearanceItemCaption.Options.UseFont = true;
+ this.lcitemModuleNumber.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lcitemModuleNumber.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lcitemModuleNumber.Control = this.lbModuleNumber;
+ this.lcitemModuleNumber.CustomizationFormText = "lcitemModuleNumber";
+ this.lcitemModuleNumber.Location = new System.Drawing.Point(0, 0);
+ this.lcitemModuleNumber.MinSize = new System.Drawing.Size(40, 18);
+ this.lcitemModuleNumber.Name = "lcitemModuleNumber";
+ this.lcitemModuleNumber.Size = new System.Drawing.Size(44, 31);
+ this.lcitemModuleNumber.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemModuleNumber.TextSize = new System.Drawing.Size(0, 0);
+ this.lcitemModuleNumber.TextVisible = false;
+ //
+ // lbMdNo
+ //
+ this.lbMdNo.Font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold);
+ this.lbMdNo.Location = new System.Drawing.Point(29, 6);
+ this.lbMdNo.Name = "lbMdNo";
+ this.lbMdNo.Size = new System.Drawing.Size(44, 41);
+ this.lbMdNo.TabIndex = 12;
+ this.lbMdNo.Text = "#01";
+ this.lbMdNo.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.lbMdNo;
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(24, 24);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(48, 45);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // ucModuleMainB
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.Margin = new System.Windows.Forms.Padding(0);
+ this.MinimumSize = new System.Drawing.Size(840, 54);
+ this.Name = "ucModuleMainB";
+ this.Size = new System.Drawing.Size(888, 54);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeTempMax)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeGapV)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeSOH)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeSOC)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeCurrent)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeVoltage)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.slbOpStatus)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.slbAlarm)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemVolt)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemCurrent)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemSOC)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemSOH)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemModuleDetail)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbMdFwVer)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalGauge1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemModuleNumber)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl1;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl2;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge gaugeCurrent;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent2;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl3;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge gaugeSOC;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent3;
+ private DevExpress.XtraEditors.SimpleButton btnModuleDetail;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl4;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge gaugeSOH;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent4;
+ private System.Windows.Forms.Timer tmrDisplay;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge digitalGauge1;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent5;
+ private DevExpress.XtraLayout.LayoutControlItem lcItemModuleDetail;
+ private DevExpress.XtraLayout.SimpleLabelItem slbOpStatus;
+ private DevExpress.XtraLayout.SimpleLabelItem slbAlarm;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemVolt;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemCurrent;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemSOC;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemSOH;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl5;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge gaugeGapV;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent6;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl6;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge gaugeTempMax;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent7;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge gaugeVoltage;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent1;
+ private DevExpress.XtraLayout.SimpleLabelItem lbMdFwVer;
+ private DevExpress.XtraEditors.LabelControl lbModuleNumber;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemModuleNumber;
+ private System.Windows.Forms.Label lbMdNo;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ }
+}
diff --git a/LFP_Manager/Controls/ucModuleMainB.cs b/LFP_Manager/Controls/ucModuleMainB.cs
new file mode 100644
index 0000000..646abbd
--- /dev/null
+++ b/LFP_Manager/Controls/ucModuleMainB.cs
@@ -0,0 +1,192 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+using DevExpress.XtraEditors;
+using LFP_Manager.DataStructure;
+
+namespace LFP_Manager.Controls
+{
+ public partial class ucModuleMainB : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region VARIABLES
+
+ private int mID = 0;
+ private CommConfig Config;
+ private CsDeviceData.DeviceModuleData ModuleData;
+ private CsDeviceData.DeviceModuleData.DeviceParamData ParamData;
+ private CsDeviceData.DeviceModuleData.DeviceCalibration CalibData;
+
+ public event CommandEvent OnCommand = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+ public ucModuleMainB()
+ {
+ InitializeComponent();
+ }
+
+ public ucModuleMainB(CommConfig aConfig, int aID, ref CsDeviceData.DeviceModuleData mData)
+ {
+ InitializeComponent();
+
+ Config = aConfig;
+ mID = aID;
+ ModuleData = mData;
+
+ lbMdNo.Text = String.Format("#{0:00}", mID);
+
+ tmrDisplay.Start();
+ }
+ #endregion
+
+ #region PUBLIC FUNCTION
+
+ public void UpdateData(ref CsDeviceData.DeviceModuleData mData)
+ {
+ ModuleData = mData;
+ }
+
+ #endregion
+
+ #region TIMER EVENT
+ private void tmrDisplay_Tick(object sender, EventArgs e)
+ {
+ DisplayValue();
+ DisplayStatusAndAlarm();
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+ private void btnModuleDetail_Click(object sender, EventArgs e)
+ {
+ OnCommand?.Invoke(mID, 2, 0, 1, ref ParamData, ref CalibData);
+ }
+ #endregion
+
+ #region DISPLAY DATA
+
+ private void DisplayMainStatus()
+ {
+ if (ModuleData.ShelfCommFail == false)
+ {
+ lbMdNo.BackColor = Color.Green;
+ }
+ else
+ {
+ lbMdNo.BackColor = Color.Orange;
+ }
+
+ }
+
+ private void DisplayValue()
+ {
+ lbMdFwVer.Text = ModuleData.Information.SwProductRev;
+ gaugeVoltage.Text = String.Format("{0:0.0}", (double)ModuleData.ValueData.voltage / 10);
+ gaugeCurrent.Text = String.Format("{0:0.0}", (double)ModuleData.ValueData.current / 10);
+ gaugeSOC.Text = String.Format("{0:0.0}", (double)ModuleData.ValueData.SOC / 10);
+ gaugeSOH.Text = String.Format("{0:0.0}", (double)ModuleData.ValueData.SOH / 10);
+ gaugeTempMax.Text = String.Format("{0:0.0}", (double)ModuleData.AvgData.maxTemp / 10);
+ gaugeGapV.Text = String.Format("{0:0.000}", (double)ModuleData.AvgData.diffCellVoltage / 1000);
+ }
+
+ private void DisplayStatusAndAlarm()
+ {
+ if (ModuleData.CommFail == false)
+ {
+ if (ModuleData.ShelfCommFail == false)
+ {
+ lbMdNo.BackColor = Color.Green;
+
+ switch (ModuleData.StatusData.status)
+ {
+ case 0x0000: // Stand by
+ slbOpStatus.Text = "STANDBY";
+ slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Black;
+ break;
+ case 0x0001: // Charging
+ slbOpStatus.Text = "CHARGING";
+ slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Blue;
+ break;
+ case 0x0002: // Discharging
+ slbOpStatus.Text = "DISCHARGING";
+ slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Magenta;
+ break;
+ case 0x0003: // Float Charging
+ slbOpStatus.Text = "FLOATING";
+ slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Black;
+ break;
+ case 0x0004: // Warming Up
+ slbOpStatus.Text = "WARMING UP";
+ slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Black;
+ break;
+ default:
+ slbOpStatus.Text = "UNKNOWN";
+ slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Black;
+ break;
+ }
+ // Alarm Display
+ switch (ModuleData.StatusData.batteryStatus)
+ {
+ case 0: // NORMAL
+ slbAlarm.Text = "NORMAL";
+ slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Green;
+ break;
+ case 1: // WARNING
+ slbAlarm.Text = "WARNING";
+ slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Orange;
+ break;
+ case 2: // FAULT
+ slbAlarm.Text = "FAULT";
+ slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 3: // WARMING UP
+ slbAlarm.Text = "WARMING UP";
+ slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Black;
+ break;
+ case 4: // FAULT (Anti-Theft Comm.)
+ slbAlarm.Text = "FAULT1";
+ slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 5: // FAULT (Anti-Theft Gyro-Scope)
+ slbAlarm.Text = "FAULT2";
+ slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red;
+ break;
+ default:
+ slbAlarm.Text = string.Format("UNKNOWN ({0})", ModuleData.StatusData.batteryStatus);
+ slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red;
+ break;
+ }
+ }
+ else
+ {
+ slbOpStatus.Text = "COMM FAIL";
+ slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red;
+ slbAlarm.Text = "COMM FAIL";
+ slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red;
+ lbMdNo.BackColor = System.Drawing.Color.Orange;
+ }
+ }
+ else
+ {
+ slbOpStatus.Text = "OFF LINE";
+ slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red;
+ slbAlarm.Text = "OFF LINE";
+ slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red;
+ lbMdNo.BackColor = System.Drawing.Color.Orange;
+ }
+
+ // Charge Relay Status Display
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucModuleMainB.resx b/LFP_Manager/Controls/ucModuleMainB.resx
new file mode 100644
index 0000000..fe317aa
--- /dev/null
+++ b/LFP_Manager/Controls/ucModuleMainB.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucModuleMainHeader.Designer.cs b/LFP_Manager/Controls/ucModuleMainHeader.Designer.cs
new file mode 100644
index 0000000..b2c1c4f
--- /dev/null
+++ b/LFP_Manager/Controls/ucModuleMainHeader.Designer.cs
@@ -0,0 +1,295 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucModuleMainHeader
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.simpleLabelItem1 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.simpleLabelItem2 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.simpleLabelItem4 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.simpleLabelItem3 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.simpleLabelItem5 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.simpleLabelItem6 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.simpleLabelItem7 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.simpleLabelItem8 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.simpleLabelItem9 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.simpleLabelItem10 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.lbFwVer = new DevExpress.XtraLayout.SimpleLabelItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem9)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem10)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbFwVer)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1132, 485, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(888, 30);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlGroup1});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(3, 3, 3, 3);
+ this.Root.Size = new System.Drawing.Size(888, 30);
+ this.Root.TextVisible = false;
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.AppearanceGroup.Options.UseTextOptions = true;
+ this.layoutControlGroup1.AppearanceGroup.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.layoutControlGroup1.CustomizationFormText = "MD";
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.simpleLabelItem1,
+ this.simpleLabelItem2,
+ this.simpleLabelItem4,
+ this.simpleLabelItem3,
+ this.simpleLabelItem5,
+ this.simpleLabelItem6,
+ this.simpleLabelItem7,
+ this.simpleLabelItem8,
+ this.simpleLabelItem9,
+ this.simpleLabelItem10,
+ this.lbFwVer});
+ this.layoutControlGroup1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(882, 24);
+ this.layoutControlGroup1.Spacing = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.layoutControlGroup1.Text = "-";
+ this.layoutControlGroup1.TextLocation = DevExpress.Utils.Locations.Left;
+ //
+ // simpleLabelItem1
+ //
+ this.simpleLabelItem1.AllowHotTrack = false;
+ this.simpleLabelItem1.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.simpleLabelItem1.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.simpleLabelItem1.Location = new System.Drawing.Point(0, 0);
+ this.simpleLabelItem1.MinSize = new System.Drawing.Size(40, 1);
+ this.simpleLabelItem1.Name = "simpleLabelItem1";
+ this.simpleLabelItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.simpleLabelItem1.Size = new System.Drawing.Size(40, 23);
+ this.simpleLabelItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem1.Text = "NO";
+ this.simpleLabelItem1.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // simpleLabelItem2
+ //
+ this.simpleLabelItem2.AllowHotTrack = false;
+ this.simpleLabelItem2.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.simpleLabelItem2.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.simpleLabelItem2.Location = new System.Drawing.Point(40, 0);
+ this.simpleLabelItem2.MinSize = new System.Drawing.Size(55, 1);
+ this.simpleLabelItem2.Name = "simpleLabelItem2";
+ this.simpleLabelItem2.Size = new System.Drawing.Size(55, 23);
+ this.simpleLabelItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem2.Text = "Status";
+ this.simpleLabelItem2.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // simpleLabelItem4
+ //
+ this.simpleLabelItem4.AllowHotTrack = false;
+ this.simpleLabelItem4.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.simpleLabelItem4.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.simpleLabelItem4.Location = new System.Drawing.Point(236, 0);
+ this.simpleLabelItem4.MinSize = new System.Drawing.Size(98, 1);
+ this.simpleLabelItem4.Name = "simpleLabelItem4";
+ this.simpleLabelItem4.Size = new System.Drawing.Size(98, 23);
+ this.simpleLabelItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem4.Text = "Voltage [V]";
+ this.simpleLabelItem4.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // simpleLabelItem3
+ //
+ this.simpleLabelItem3.AllowHotTrack = false;
+ this.simpleLabelItem3.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.simpleLabelItem3.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.simpleLabelItem3.Location = new System.Drawing.Point(95, 0);
+ this.simpleLabelItem3.MinSize = new System.Drawing.Size(55, 1);
+ this.simpleLabelItem3.Name = "simpleLabelItem3";
+ this.simpleLabelItem3.Size = new System.Drawing.Size(55, 23);
+ this.simpleLabelItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem3.Text = "Alarm";
+ this.simpleLabelItem3.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // simpleLabelItem5
+ //
+ this.simpleLabelItem5.AllowHotTrack = false;
+ this.simpleLabelItem5.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.simpleLabelItem5.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.simpleLabelItem5.Location = new System.Drawing.Point(334, 0);
+ this.simpleLabelItem5.MinSize = new System.Drawing.Size(98, 1);
+ this.simpleLabelItem5.Name = "simpleLabelItem5";
+ this.simpleLabelItem5.Size = new System.Drawing.Size(98, 23);
+ this.simpleLabelItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem5.Text = "Current [A]";
+ this.simpleLabelItem5.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // simpleLabelItem6
+ //
+ this.simpleLabelItem6.AllowHotTrack = false;
+ this.simpleLabelItem6.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.simpleLabelItem6.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.simpleLabelItem6.Location = new System.Drawing.Point(432, 0);
+ this.simpleLabelItem6.MinSize = new System.Drawing.Size(98, 1);
+ this.simpleLabelItem6.Name = "simpleLabelItem6";
+ this.simpleLabelItem6.Size = new System.Drawing.Size(98, 23);
+ this.simpleLabelItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem6.Text = "SOC [%]";
+ this.simpleLabelItem6.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // simpleLabelItem7
+ //
+ this.simpleLabelItem7.AllowHotTrack = false;
+ this.simpleLabelItem7.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.simpleLabelItem7.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.simpleLabelItem7.Location = new System.Drawing.Point(530, 0);
+ this.simpleLabelItem7.MinSize = new System.Drawing.Size(98, 1);
+ this.simpleLabelItem7.Name = "simpleLabelItem7";
+ this.simpleLabelItem7.Size = new System.Drawing.Size(98, 23);
+ this.simpleLabelItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem7.Text = "SOH [%]";
+ this.simpleLabelItem7.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // simpleLabelItem8
+ //
+ this.simpleLabelItem8.AllowHotTrack = false;
+ this.simpleLabelItem8.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.simpleLabelItem8.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.simpleLabelItem8.Location = new System.Drawing.Point(824, 0);
+ this.simpleLabelItem8.MinSize = new System.Drawing.Size(1, 1);
+ this.simpleLabelItem8.Name = "simpleLabelItem8";
+ this.simpleLabelItem8.Size = new System.Drawing.Size(34, 23);
+ this.simpleLabelItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem8.Text = "CMD";
+ this.simpleLabelItem8.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // simpleLabelItem9
+ //
+ this.simpleLabelItem9.AllowHotTrack = false;
+ this.simpleLabelItem9.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.simpleLabelItem9.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.simpleLabelItem9.CustomizationFormText = "Temp Max. [C]";
+ this.simpleLabelItem9.Location = new System.Drawing.Point(628, 0);
+ this.simpleLabelItem9.MinSize = new System.Drawing.Size(98, 1);
+ this.simpleLabelItem9.Name = "simpleLabelItem9";
+ this.simpleLabelItem9.Size = new System.Drawing.Size(98, 23);
+ this.simpleLabelItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem9.Text = "Temp Max. [C]";
+ this.simpleLabelItem9.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // simpleLabelItem10
+ //
+ this.simpleLabelItem10.AllowHotTrack = false;
+ this.simpleLabelItem10.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.simpleLabelItem10.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.simpleLabelItem10.Location = new System.Drawing.Point(726, 0);
+ this.simpleLabelItem10.MinSize = new System.Drawing.Size(98, 1);
+ this.simpleLabelItem10.Name = "simpleLabelItem10";
+ this.simpleLabelItem10.Size = new System.Drawing.Size(98, 23);
+ this.simpleLabelItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem10.Text = "Cell V Gap [V]";
+ this.simpleLabelItem10.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // lbFwVer
+ //
+ this.lbFwVer.AllowHotTrack = false;
+ this.lbFwVer.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lbFwVer.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbFwVer.Location = new System.Drawing.Point(150, 0);
+ this.lbFwVer.Name = "lbFwVer";
+ this.lbFwVer.Size = new System.Drawing.Size(86, 23);
+ this.lbFwVer.Text = "FW Ver";
+ this.lbFwVer.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // ucModuleMainHeader
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.Margin = new System.Windows.Forms.Padding(0);
+ this.MinimumSize = new System.Drawing.Size(0, 30);
+ this.Name = "ucModuleMainHeader";
+ this.Size = new System.Drawing.Size(888, 30);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem9)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem10)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbFwVer)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem1;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem2;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem4;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem3;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem5;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem6;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem7;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem8;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem9;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem10;
+ private DevExpress.XtraLayout.SimpleLabelItem lbFwVer;
+ }
+}
diff --git a/LFP_Manager/Controls/ucModuleMainHeader.cs b/LFP_Manager/Controls/ucModuleMainHeader.cs
new file mode 100644
index 0000000..091b9e7
--- /dev/null
+++ b/LFP_Manager/Controls/ucModuleMainHeader.cs
@@ -0,0 +1,21 @@
+using DevExpress.XtraEditors;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Controls
+{
+ public partial class ucModuleMainHeader : DevExpress.XtraEditors.XtraUserControl
+ {
+ public ucModuleMainHeader()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/LFP_Manager/Controls/ucModuleMainHeader.resx b/LFP_Manager/Controls/ucModuleMainHeader.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/ucModuleMainHeader.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucParamSet.Designer.cs b/LFP_Manager/Controls/ucParamSet.Designer.cs
new file mode 100644
index 0000000..451856a
--- /dev/null
+++ b/LFP_Manager/Controls/ucParamSet.Designer.cs
@@ -0,0 +1,551 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucParamSet
+ {
+ ///
+ /// 필수 디자이너 변수입니다.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// 사용 중인 모든 리소스를 정리합니다.
+ ///
+ /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region 구성 요소 디자이너에서 생성한 코드
+
+ ///
+ /// 디자이너 지원에 필요한 메서드입니다.
+ /// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오.
+ ///
+ private void InitializeComponent()
+ {
+ this.gbParamSet = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.edReleaseNew = new DevExpress.XtraEditors.TextEdit();
+ this.edWarningNew = new DevExpress.XtraEditors.TextEdit();
+ this.edTripNew = new DevExpress.XtraEditors.TextEdit();
+ this.btnSet = new DevExpress.XtraEditors.SimpleButton();
+ this.edRelease = new DevExpress.XtraEditors.TextEdit();
+ this.edWarning = new DevExpress.XtraEditors.TextEdit();
+ this.edTrip = new DevExpress.XtraEditors.TextEdit();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lcTripParam = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcWarningParam = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcReleaseParam = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.lbTripUnit = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.lbWarningUnit = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.lbReleaseUnit = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.lcTripParamNew = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcReleaseParamNew = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lbCurr = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.lbNew = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.emptySpaceItem3 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.emptySpaceItem4 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.lbFault = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.lbWarning = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.lbRelease = new DevExpress.XtraLayout.SimpleLabelItem();
+ ((System.ComponentModel.ISupportInitialize)(this.gbParamSet)).BeginInit();
+ this.gbParamSet.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.edReleaseNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edWarningNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edTripNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edRelease.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edWarning.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edTrip.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcTripParam)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcWarningParam)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcReleaseParam)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbTripUnit)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbWarningUnit)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbReleaseUnit)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcTripParamNew)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcReleaseParamNew)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbCurr)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbNew)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbFault)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbWarning)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbRelease)).BeginInit();
+ this.SuspendLayout();
+ //
+ // gbParamSet
+ //
+ this.gbParamSet.Controls.Add(this.layoutControl1);
+ this.gbParamSet.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.gbParamSet.Location = new System.Drawing.Point(0, 0);
+ this.gbParamSet.Name = "gbParamSet";
+ this.gbParamSet.Size = new System.Drawing.Size(219, 171);
+ this.gbParamSet.TabIndex = 0;
+ this.gbParamSet.Text = "groupControl1";
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.edReleaseNew);
+ this.layoutControl1.Controls.Add(this.edWarningNew);
+ this.layoutControl1.Controls.Add(this.edTripNew);
+ this.layoutControl1.Controls.Add(this.btnSet);
+ this.layoutControl1.Controls.Add(this.edRelease);
+ this.layoutControl1.Controls.Add(this.edWarning);
+ this.layoutControl1.Controls.Add(this.edTrip);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(870, 50, 372, 627);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(215, 146);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // edReleaseNew
+ //
+ this.edReleaseNew.Location = new System.Drawing.Point(124, 79);
+ this.edReleaseNew.Name = "edReleaseNew";
+ this.edReleaseNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.edReleaseNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edReleaseNew.Size = new System.Drawing.Size(56, 20);
+ this.edReleaseNew.StyleController = this.layoutControl1;
+ this.edReleaseNew.TabIndex = 11;
+ this.edReleaseNew.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.TextBox_KeyPress);
+ //
+ // edWarningNew
+ //
+ this.edWarningNew.Location = new System.Drawing.Point(124, 54);
+ this.edWarningNew.Name = "edWarningNew";
+ this.edWarningNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.edWarningNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edWarningNew.Size = new System.Drawing.Size(56, 20);
+ this.edWarningNew.StyleController = this.layoutControl1;
+ this.edWarningNew.TabIndex = 10;
+ this.edWarningNew.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.TextBox_KeyPress);
+ //
+ // edTripNew
+ //
+ this.edTripNew.Location = new System.Drawing.Point(124, 29);
+ this.edTripNew.Name = "edTripNew";
+ this.edTripNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.edTripNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edTripNew.Size = new System.Drawing.Size(56, 20);
+ this.edTripNew.StyleController = this.layoutControl1;
+ this.edTripNew.TabIndex = 9;
+ this.edTripNew.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.TextBox_KeyPress);
+ //
+ // btnSet
+ //
+ this.btnSet.Location = new System.Drawing.Point(135, 116);
+ this.btnSet.Name = "btnSet";
+ this.btnSet.Size = new System.Drawing.Size(76, 26);
+ this.btnSet.StyleController = this.layoutControl1;
+ this.btnSet.TabIndex = 8;
+ this.btnSet.Text = "Set";
+ this.btnSet.Click += new System.EventHandler(this.btnSet_Click);
+ //
+ // edRelease
+ //
+ this.edRelease.Location = new System.Drawing.Point(64, 79);
+ this.edRelease.Name = "edRelease";
+ this.edRelease.Properties.Appearance.Options.UseTextOptions = true;
+ this.edRelease.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edRelease.Properties.ReadOnly = true;
+ this.edRelease.Size = new System.Drawing.Size(56, 20);
+ this.edRelease.StyleController = this.layoutControl1;
+ this.edRelease.TabIndex = 6;
+ //
+ // edWarning
+ //
+ this.edWarning.Location = new System.Drawing.Point(64, 54);
+ this.edWarning.Name = "edWarning";
+ this.edWarning.Properties.Appearance.Options.UseTextOptions = true;
+ this.edWarning.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edWarning.Properties.ReadOnly = true;
+ this.edWarning.Size = new System.Drawing.Size(56, 20);
+ this.edWarning.StyleController = this.layoutControl1;
+ this.edWarning.TabIndex = 5;
+ //
+ // edTrip
+ //
+ this.edTrip.Location = new System.Drawing.Point(64, 29);
+ this.edTrip.Name = "edTrip";
+ this.edTrip.Properties.Appearance.Options.UseTextOptions = true;
+ this.edTrip.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edTrip.Properties.ReadOnly = true;
+ this.edTrip.Size = new System.Drawing.Size(56, 20);
+ this.edTrip.StyleController = this.layoutControl1;
+ this.edTrip.TabIndex = 4;
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "Root";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lcTripParam,
+ this.lcWarningParam,
+ this.lcReleaseParam,
+ this.emptySpaceItem1,
+ this.layoutControlItem5,
+ this.emptySpaceItem2,
+ this.lbTripUnit,
+ this.lbWarningUnit,
+ this.lbReleaseUnit,
+ this.lcTripParamNew,
+ this.layoutControlItem2,
+ this.lcReleaseParamNew,
+ this.lbCurr,
+ this.lbNew,
+ this.emptySpaceItem3,
+ this.emptySpaceItem4,
+ this.lbFault,
+ this.lbWarning,
+ this.lbRelease});
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(215, 146);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // lcTripParam
+ //
+ this.lcTripParam.Control = this.edTrip;
+ this.lcTripParam.CustomizationFormText = "Fault";
+ this.lcTripParam.Location = new System.Drawing.Point(60, 25);
+ this.lcTripParam.MaxSize = new System.Drawing.Size(60, 25);
+ this.lcTripParam.MinSize = new System.Drawing.Size(60, 25);
+ this.lcTripParam.Name = "lcTripParam";
+ this.lcTripParam.Size = new System.Drawing.Size(60, 25);
+ this.lcTripParam.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcTripParam.Text = "Fault";
+ this.lcTripParam.TextSize = new System.Drawing.Size(0, 0);
+ this.lcTripParam.TextVisible = false;
+ //
+ // lcWarningParam
+ //
+ this.lcWarningParam.Control = this.edWarning;
+ this.lcWarningParam.CustomizationFormText = "Warning";
+ this.lcWarningParam.Location = new System.Drawing.Point(60, 50);
+ this.lcWarningParam.MaxSize = new System.Drawing.Size(60, 25);
+ this.lcWarningParam.MinSize = new System.Drawing.Size(60, 25);
+ this.lcWarningParam.Name = "lcWarningParam";
+ this.lcWarningParam.Size = new System.Drawing.Size(60, 25);
+ this.lcWarningParam.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcWarningParam.Text = "Warning";
+ this.lcWarningParam.TextSize = new System.Drawing.Size(0, 0);
+ this.lcWarningParam.TextVisible = false;
+ //
+ // lcReleaseParam
+ //
+ this.lcReleaseParam.Control = this.edRelease;
+ this.lcReleaseParam.CustomizationFormText = "Release";
+ this.lcReleaseParam.Location = new System.Drawing.Point(60, 75);
+ this.lcReleaseParam.MaxSize = new System.Drawing.Size(60, 25);
+ this.lcReleaseParam.MinSize = new System.Drawing.Size(60, 25);
+ this.lcReleaseParam.Name = "lcReleaseParam";
+ this.lcReleaseParam.Size = new System.Drawing.Size(60, 25);
+ this.lcReleaseParam.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcReleaseParam.Text = "Release";
+ this.lcReleaseParam.TextSize = new System.Drawing.Size(0, 0);
+ this.lcReleaseParam.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1";
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 100);
+ this.emptySpaceItem1.MinSize = new System.Drawing.Size(1, 1);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(211, 12);
+ this.emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.btnSet;
+ this.layoutControlItem5.CustomizationFormText = "layoutControlItem5";
+ this.layoutControlItem5.Location = new System.Drawing.Point(131, 112);
+ this.layoutControlItem5.MaxSize = new System.Drawing.Size(80, 30);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(80, 30);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(80, 30);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // emptySpaceItem2
+ //
+ this.emptySpaceItem2.AllowHotTrack = false;
+ this.emptySpaceItem2.CustomizationFormText = "emptySpaceItem2";
+ this.emptySpaceItem2.Location = new System.Drawing.Point(0, 112);
+ this.emptySpaceItem2.MinSize = new System.Drawing.Size(1, 1);
+ this.emptySpaceItem2.Name = "emptySpaceItem2";
+ this.emptySpaceItem2.Size = new System.Drawing.Size(131, 30);
+ this.emptySpaceItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // lbTripUnit
+ //
+ this.lbTripUnit.AllowHotTrack = false;
+ this.lbTripUnit.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lbTripUnit.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbTripUnit.CustomizationFormText = "-";
+ this.lbTripUnit.Location = new System.Drawing.Point(180, 25);
+ this.lbTripUnit.MaxSize = new System.Drawing.Size(31, 25);
+ this.lbTripUnit.MinSize = new System.Drawing.Size(31, 25);
+ this.lbTripUnit.Name = "lbTripUnit";
+ this.lbTripUnit.Size = new System.Drawing.Size(31, 25);
+ this.lbTripUnit.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lbTripUnit.Text = "-";
+ this.lbTripUnit.TextSize = new System.Drawing.Size(45, 14);
+ //
+ // lbWarningUnit
+ //
+ this.lbWarningUnit.AllowHotTrack = false;
+ this.lbWarningUnit.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lbWarningUnit.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbWarningUnit.CustomizationFormText = "-";
+ this.lbWarningUnit.Location = new System.Drawing.Point(180, 50);
+ this.lbWarningUnit.MaxSize = new System.Drawing.Size(31, 25);
+ this.lbWarningUnit.MinSize = new System.Drawing.Size(31, 25);
+ this.lbWarningUnit.Name = "lbWarningUnit";
+ this.lbWarningUnit.Size = new System.Drawing.Size(31, 25);
+ this.lbWarningUnit.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lbWarningUnit.Text = "-";
+ this.lbWarningUnit.TextSize = new System.Drawing.Size(45, 14);
+ //
+ // lbReleaseUnit
+ //
+ this.lbReleaseUnit.AllowHotTrack = false;
+ this.lbReleaseUnit.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lbReleaseUnit.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbReleaseUnit.CustomizationFormText = "-";
+ this.lbReleaseUnit.Location = new System.Drawing.Point(180, 75);
+ this.lbReleaseUnit.MaxSize = new System.Drawing.Size(31, 25);
+ this.lbReleaseUnit.MinSize = new System.Drawing.Size(31, 25);
+ this.lbReleaseUnit.Name = "lbReleaseUnit";
+ this.lbReleaseUnit.Size = new System.Drawing.Size(31, 25);
+ this.lbReleaseUnit.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lbReleaseUnit.Text = "-";
+ this.lbReleaseUnit.TextSize = new System.Drawing.Size(45, 14);
+ //
+ // lcTripParamNew
+ //
+ this.lcTripParamNew.Control = this.edTripNew;
+ this.lcTripParamNew.CustomizationFormText = "layoutControlItem1";
+ this.lcTripParamNew.Location = new System.Drawing.Point(120, 25);
+ this.lcTripParamNew.MaxSize = new System.Drawing.Size(60, 25);
+ this.lcTripParamNew.MinSize = new System.Drawing.Size(60, 25);
+ this.lcTripParamNew.Name = "lcTripParamNew";
+ this.lcTripParamNew.Size = new System.Drawing.Size(60, 25);
+ this.lcTripParamNew.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcTripParamNew.TextSize = new System.Drawing.Size(0, 0);
+ this.lcTripParamNew.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.edWarningNew;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(120, 50);
+ this.layoutControlItem2.MaxSize = new System.Drawing.Size(60, 25);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(60, 25);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(60, 25);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // lcReleaseParamNew
+ //
+ this.lcReleaseParamNew.Control = this.edReleaseNew;
+ this.lcReleaseParamNew.CustomizationFormText = "layoutControlItem3";
+ this.lcReleaseParamNew.Location = new System.Drawing.Point(120, 75);
+ this.lcReleaseParamNew.MaxSize = new System.Drawing.Size(60, 25);
+ this.lcReleaseParamNew.MinSize = new System.Drawing.Size(60, 25);
+ this.lcReleaseParamNew.Name = "lcReleaseParamNew";
+ this.lcReleaseParamNew.Size = new System.Drawing.Size(60, 25);
+ this.lcReleaseParamNew.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcReleaseParamNew.TextSize = new System.Drawing.Size(0, 0);
+ this.lcReleaseParamNew.TextVisible = false;
+ //
+ // lbCurr
+ //
+ this.lbCurr.AllowHotTrack = false;
+ this.lbCurr.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lbCurr.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbCurr.CustomizationFormText = "LabelsimpleLabelItem2";
+ this.lbCurr.Location = new System.Drawing.Point(60, 0);
+ this.lbCurr.MaxSize = new System.Drawing.Size(60, 25);
+ this.lbCurr.MinSize = new System.Drawing.Size(60, 25);
+ this.lbCurr.Name = "lbCurr";
+ this.lbCurr.Size = new System.Drawing.Size(60, 25);
+ this.lbCurr.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lbCurr.Text = "Current";
+ this.lbCurr.TextSize = new System.Drawing.Size(45, 14);
+ //
+ // lbNew
+ //
+ this.lbNew.AllowHotTrack = false;
+ this.lbNew.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lbNew.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbNew.CustomizationFormText = "LabelsimpleLabelItem1";
+ this.lbNew.Location = new System.Drawing.Point(120, 0);
+ this.lbNew.MaxSize = new System.Drawing.Size(60, 25);
+ this.lbNew.MinSize = new System.Drawing.Size(60, 25);
+ this.lbNew.Name = "lbNew";
+ this.lbNew.Size = new System.Drawing.Size(60, 25);
+ this.lbNew.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lbNew.Text = "New";
+ this.lbNew.TextSize = new System.Drawing.Size(45, 14);
+ //
+ // emptySpaceItem3
+ //
+ this.emptySpaceItem3.AllowHotTrack = false;
+ this.emptySpaceItem3.CustomizationFormText = "emptySpaceItem3";
+ this.emptySpaceItem3.Location = new System.Drawing.Point(0, 0);
+ this.emptySpaceItem3.MaxSize = new System.Drawing.Size(60, 25);
+ this.emptySpaceItem3.MinSize = new System.Drawing.Size(60, 25);
+ this.emptySpaceItem3.Name = "emptySpaceItem3";
+ this.emptySpaceItem3.Size = new System.Drawing.Size(60, 25);
+ this.emptySpaceItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem3.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // emptySpaceItem4
+ //
+ this.emptySpaceItem4.AllowHotTrack = false;
+ this.emptySpaceItem4.CustomizationFormText = "emptySpaceItem4";
+ this.emptySpaceItem4.Location = new System.Drawing.Point(180, 0);
+ this.emptySpaceItem4.Name = "emptySpaceItem4";
+ this.emptySpaceItem4.Size = new System.Drawing.Size(31, 25);
+ this.emptySpaceItem4.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // lbFault
+ //
+ this.lbFault.AllowHotTrack = false;
+ this.lbFault.CustomizationFormText = "Fault";
+ this.lbFault.Location = new System.Drawing.Point(0, 25);
+ this.lbFault.MaxSize = new System.Drawing.Size(60, 25);
+ this.lbFault.MinSize = new System.Drawing.Size(60, 25);
+ this.lbFault.Name = "lbFault";
+ this.lbFault.Size = new System.Drawing.Size(60, 25);
+ this.lbFault.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lbFault.Text = "Fault";
+ this.lbFault.TextSize = new System.Drawing.Size(45, 14);
+ //
+ // lbWarning
+ //
+ this.lbWarning.AllowHotTrack = false;
+ this.lbWarning.CustomizationFormText = "Warning";
+ this.lbWarning.Location = new System.Drawing.Point(0, 50);
+ this.lbWarning.MaxSize = new System.Drawing.Size(60, 25);
+ this.lbWarning.MinSize = new System.Drawing.Size(60, 25);
+ this.lbWarning.Name = "lbWarning";
+ this.lbWarning.Size = new System.Drawing.Size(60, 25);
+ this.lbWarning.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lbWarning.Text = "Warning";
+ this.lbWarning.TextSize = new System.Drawing.Size(45, 14);
+ //
+ // lbRelease
+ //
+ this.lbRelease.AllowHotTrack = false;
+ this.lbRelease.CustomizationFormText = "Release";
+ this.lbRelease.Location = new System.Drawing.Point(0, 75);
+ this.lbRelease.MaxSize = new System.Drawing.Size(60, 25);
+ this.lbRelease.MinSize = new System.Drawing.Size(60, 25);
+ this.lbRelease.Name = "lbRelease";
+ this.lbRelease.Size = new System.Drawing.Size(60, 25);
+ this.lbRelease.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lbRelease.Text = "Release";
+ this.lbRelease.TextSize = new System.Drawing.Size(45, 14);
+ //
+ // ucParamSet
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.gbParamSet);
+ this.Name = "ucParamSet";
+ this.Size = new System.Drawing.Size(219, 171);
+ ((System.ComponentModel.ISupportInitialize)(this.gbParamSet)).EndInit();
+ this.gbParamSet.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.edReleaseNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edWarningNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edTripNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edRelease.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edWarning.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edTrip.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcTripParam)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcWarningParam)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcReleaseParam)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbTripUnit)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbWarningUnit)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbReleaseUnit)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcTripParamNew)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcReleaseParamNew)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbCurr)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbNew)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbFault)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbWarning)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbRelease)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraEditors.GroupControl gbParamSet;
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.TextEdit edRelease;
+ private DevExpress.XtraEditors.TextEdit edWarning;
+ private DevExpress.XtraEditors.TextEdit edTrip;
+ private DevExpress.XtraLayout.LayoutControlItem lcTripParam;
+ private DevExpress.XtraLayout.LayoutControlItem lcWarningParam;
+ private DevExpress.XtraLayout.LayoutControlItem lcReleaseParam;
+ private DevExpress.XtraEditors.SimpleButton btnSet;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+ private DevExpress.XtraLayout.SimpleLabelItem lbTripUnit;
+ private DevExpress.XtraLayout.SimpleLabelItem lbWarningUnit;
+ private DevExpress.XtraLayout.SimpleLabelItem lbReleaseUnit;
+ private DevExpress.XtraEditors.TextEdit edReleaseNew;
+ private DevExpress.XtraEditors.TextEdit edWarningNew;
+ private DevExpress.XtraEditors.TextEdit edTripNew;
+ private DevExpress.XtraLayout.LayoutControlItem lcTripParamNew;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.LayoutControlItem lcReleaseParamNew;
+ private DevExpress.XtraLayout.SimpleLabelItem lbCurr;
+ private DevExpress.XtraLayout.SimpleLabelItem lbNew;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem3;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem4;
+ private DevExpress.XtraLayout.SimpleLabelItem lbFault;
+ private DevExpress.XtraLayout.SimpleLabelItem lbWarning;
+ private DevExpress.XtraLayout.SimpleLabelItem lbRelease;
+
+ }
+}
diff --git a/LFP_Manager/Controls/ucParamSet.cs b/LFP_Manager/Controls/ucParamSet.cs
new file mode 100644
index 0000000..0d450f3
--- /dev/null
+++ b/LFP_Manager/Controls/ucParamSet.cs
@@ -0,0 +1,289 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Utils;
+
+namespace LFP_Manager.Controls
+{
+ public delegate void setUpdate(object sender);
+ public delegate void setCommand(int mode, int flag, ParamData aParam);
+
+ public struct ParamData
+ {
+ public short Fault;
+ public short Warning;
+ public short Release;
+ public short Time;
+ }
+
+ public partial class ucParamSet : UserControl
+ {
+ #region VARIABLES
+
+ int id = 0;
+ ParamData rParam;
+ ParamData wParam;
+
+ public int wFlag = 0;
+
+ public event setCommand OnCommand = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public ucParamSet()
+ {
+ InitializeComponent();
+ }
+
+ #endregion
+
+ #region EXT EVENT FUNCTION
+
+ private void OnCommnadEvent(int mode, int flag, ParamData aParam)
+ {
+ OnCommand?.Invoke(mode, flag, aParam);
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+
+ private void btnRead_Click(object sender, EventArgs e)
+ {
+ OnCommnadEvent(id, 0, rParam);
+ }
+
+ private void btnSet_Click(object sender, EventArgs e)
+ {
+ if ((edTripNew.Text == "") || (edWarningNew.Text == "") || (edReleaseNew.Text == ""))
+ {
+ return;
+ }
+ wParam = rParam;
+ OnCommnadEvent(id, 1, MakeNewParam(id));
+ }
+
+ private ParamData MakeNewParam(int aId)
+ {
+ switch (aId)
+ {
+ case 0: // Cell Over Voltage
+ case 1: // Cell Under Voltage
+ wParam.Fault = Convert.ToInt16(edTripNew.Text);
+ wParam.Warning = Convert.ToInt16(edWarningNew.Text);
+ wParam.Release = Convert.ToInt16(edReleaseNew.Text);
+ break;
+ case 2: // System Over Voltage
+ case 3: // System Under Voltage
+ wParam.Fault = (short)(Convert.ToDouble(edTripNew.Text) * 10);
+ wParam.Warning = (short)(Convert.ToDouble(edWarningNew.Text) * 10);
+ wParam.Release = (short)(Convert.ToDouble(edReleaseNew.Text) * 10);
+ break;
+ case 4: // Charge High Temperature
+ case 5: // Charge Loq Temperature
+ case 6: // Discharge High Temperature
+ case 7: // Discharge Low Temperature
+ case 10: // Low SOC
+ case 11: // Low SOC
+ wParam.Fault = Convert.ToInt16(edTripNew.Text);
+ wParam.Warning = Convert.ToInt16(edWarningNew.Text);
+ wParam.Release = Convert.ToInt16(edReleaseNew.Text);
+ break;
+ case 8: // Charge Over Current
+ case 9: // Discharge Over Current
+ wParam.Fault = (short)(Convert.ToDouble(edTripNew.Text) * 10);
+ wParam.Warning = (short)(Convert.ToDouble(edWarningNew.Text) * 10);
+ wParam.Release = (short)(Convert.ToDouble(edReleaseNew.Text) * 1);
+ break;
+ }
+ return wParam;
+ }
+
+ #endregion
+
+ #region PUBLIC FUCTIONS
+
+ public void SetId(int aId)
+ {
+ id = aId;
+ }
+
+ public void UpdateData(ParamData aParam)
+ {
+ rParam = aParam;
+ DisplayParam();
+ UpdateNewParam();
+ }
+
+ public void VisibleItem(int item, bool flag)
+ {
+ switch (item)
+ {
+ case 0:
+ lbFault.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ lcTripParam.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ lcTripParamNew.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ lbTripUnit.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ break;
+ case 1:
+ edWarning.Enabled = flag;
+ edWarningNew.Enabled = flag;
+ break;
+ case 2:
+ lbRelease.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ lcReleaseParam.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ lcReleaseParamNew.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ lbReleaseUnit.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ break;
+ }
+ }
+
+ public void EnableItem(int item, bool flag)
+ {
+ switch (item)
+ {
+ case 0:
+ edTrip.Enabled = flag;
+ edTripNew.Enabled = flag;
+ break;
+ case 1:
+ edWarning.Enabled = flag;
+ edWarningNew.Enabled = flag;
+ break;
+ case 2:
+ edRelease.Enabled = flag;
+ edReleaseNew.Enabled = flag;
+ break;
+ }
+ }
+
+ public void EnableDisableSetBtn(bool flag)
+ {
+ btnSet.Enabled = flag;
+ }
+
+ public void SetParamName(int no, string nm)
+ {
+ switch (no)
+ {
+ case 0:
+ gbParamSet.Text = nm;
+
+ if ((nm == "Charge Over Current") || (nm == "Discharge Over Current"))
+ {
+ lbFault.Text = "Fault 2";
+ lbWarning.Text = "Fault 1";
+ }
+ break;
+ case 1:
+ lbTripUnit.Text = nm;
+ lbWarningUnit.Text = nm;
+ if (nm == "A")
+ lbReleaseUnit.Text = "S";
+ else
+ lbReleaseUnit.Text = nm;
+ break;
+ }
+ }
+
+ #endregion
+
+ #region DISPLAY
+
+ private void DisplayParam()
+ {
+ ParamData Param = new ParamData();
+ Param = rParam;
+
+ switch (id)
+ {
+ case 0:
+ case 1:
+ edTrip.Text = String.Format("{0}", Param.Fault);
+ edWarning.Text = String.Format("{0}", Param.Warning);
+ edRelease.Text = String.Format("{0}", Param.Release);
+ break;
+ case 2:
+ case 3:
+ edTrip.Text = String.Format("{0:#0.0}", (float)Param.Fault / 10);
+ edWarning.Text = String.Format("{0:#0.0}", (float)Param.Warning / 10);
+ edRelease.Text = String.Format("{0:#0.0}", (float)Param.Release / 10);
+ break;
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 10:
+ case 11:
+ edTrip.Text = String.Format("{0}", Param.Fault);
+ edWarning.Text = String.Format("{0}", Param.Warning);
+ edRelease.Text = String.Format("{0}", Param.Release);
+ break;
+ case 8: // Charge Over Current
+ case 9: // Discharge Over Current
+ edTrip.Text = String.Format("{0:#0.0}", (float)Param.Fault / 10);
+ edWarning.Text = String.Format("{0:#0.0}", (float)Param.Warning / 10);
+ edRelease.Text = String.Format("{0}", (float)Param.Release / 1);
+ break;
+ }
+ }
+
+ private void UpdateNewParam()
+ {
+ if (wFlag == 0)
+ {
+ ParamData Param = rParam;
+
+ switch (id)
+ {
+ case 0:
+ case 1:
+ edTripNew.Text = String.Format("{0}", Param.Fault);
+ edWarningNew.Text = String.Format("{0}", Param.Warning);
+ edReleaseNew.Text = String.Format("{0}", Param.Release);
+ break;
+ case 2:
+ case 3:
+ edTripNew.Text = String.Format("{0:#0.0}", (float)Param.Fault / 10);
+ edWarningNew.Text = String.Format("{0:#0.0}", (float)Param.Warning / 10);
+ edReleaseNew.Text = String.Format("{0:#0.0}", (float)Param.Release / 10);
+ break;
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 10:
+ case 11:
+ edTripNew.Text = String.Format("{0}", Param.Fault);
+ edWarningNew.Text = String.Format("{0}", Param.Warning);
+ edReleaseNew.Text = String.Format("{0}", Param.Release);
+ break;
+ case 8:
+ case 9:
+ edTripNew.Text = String.Format("{0:#0.0}", (float)Param.Fault / 10);
+ edWarningNew.Text = String.Format("{0:#0.0}", (float)Param.Warning / 10);
+ edReleaseNew.Text = String.Format("{0}", (float)Param.Release / 1);
+ break;
+ }
+ wFlag = 1;
+ }
+ }
+
+ #endregion
+
+ private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
+ {
+ //csUtils.TypingOnlyNumber(sender, e, true, true);
+ }
+ }
+}
diff --git a/LFP_Manager/Controls/ucParamSet.resx b/LFP_Manager/Controls/ucParamSet.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/ucParamSet.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucSerialProcess.Designer.cs b/LFP_Manager/Controls/ucSerialProcess.Designer.cs
new file mode 100644
index 0000000..331adc0
--- /dev/null
+++ b/LFP_Manager/Controls/ucSerialProcess.Designer.cs
@@ -0,0 +1,37 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucSerialProcess
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ components = new System.ComponentModel.Container();
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucSerialProcess.cs b/LFP_Manager/Controls/ucSerialProcess.cs
new file mode 100644
index 0000000..a4ec1be
--- /dev/null
+++ b/LFP_Manager/Controls/ucSerialProcess.cs
@@ -0,0 +1,283 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+using System.Threading;
+using System.IO.Ports;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Utils;
+
+namespace LFP_Manager.Controls
+{
+ public delegate void DataUpdate(object sender, DeviceSystemData[] aSystemData);
+
+ public partial class ucSerialProcess : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region VARIABLES
+
+ DeviceSystemData[] SystemData;
+
+ //Thread serialComm = null;
+ SerialPort sPort = null;
+ //string CommPort = null;
+
+ bool SerialPortThreadEnd = false;
+
+ public event DataUpdate OnUpdate = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public ucSerialProcess(DeviceSystemData[] aSystemData)
+ {
+ InitializeComponent();
+
+ SystemData = aSystemData;
+ }
+
+ #endregion
+
+ #region COMMPORT CONTROLS
+
+ private bool Open(string cPort, int cBaudrate)
+ {
+ bool result = false;
+
+ sPort = new SerialPort();
+ sPort.PortName = cPort;
+ sPort.BaudRate = cBaudrate;
+
+ try
+ {
+ sPort.Open();
+
+ result = true;
+ }
+ catch (Exception)
+ {
+ }
+
+ return result;
+ }
+
+ private void Close()
+ {
+ if (sPort != null)
+ {
+ if (sPort.IsOpen)
+ {
+ sPort.Close();
+ }
+ sPort = null;
+ }
+ }
+
+ #endregion
+
+ #region Serial Comm Thread
+
+ ushort RequestRegAddr = 0x0000;
+ ushort RequestRegLen = 50;
+ int SS, bakSS;
+
+ private int SerialTxProcess()
+ {
+ byte[] sData;
+
+ SS = DateTime.Now.Second;
+
+ if ((SS == 58) && (bakSS != SS))
+ {
+ // Write
+ RequestRegAddr = 19;
+ RequestRegLen = 5;
+ sData = csSerialCommFunction.MakeWriteRegisterData(0xFF, RequestRegAddr, RequestRegLen);
+ sPort.Write(sData, 0, sData.Length);
+ bakSS = SS;
+
+ return 0;
+ }
+ else
+ {
+ // Read
+ RequestRegAddr = 0x0000;
+ RequestRegLen = 50;
+ sData = csSerialCommFunction.MakeReadRegisterData(0x01, RequestRegAddr, RequestRegLen);
+ sPort.Write(sData, 0, sData.Length);
+ bakSS = SS;
+
+ return 1;
+ }
+ }
+
+ #region Serial Buffering
+
+ private void PutBuff(byte c)
+ {
+ rBuffer[rBufStart++] = c;
+ rBufStart %= BUFFER_SIZE;
+
+ if (rBufStart == rBufEnd)
+ {
+ rBufEnd++;
+ rBufEnd %= BUFFER_SIZE;
+ }
+ }
+
+ private int GetBuff()
+ {
+ int result = 0;
+
+ if (rBufStart != rBufEnd)
+ {
+ result = 0x0100 + rBuffer[rBufEnd++];
+ rBufEnd %= BUFFER_SIZE;
+ }
+ return result;
+ }
+
+ #endregion
+
+ const int BUFFER_SIZE = 512;
+
+ byte[] rBuffer = new byte[BUFFER_SIZE];
+ int rBufStart = 0;
+ int rBufEnd = 0;
+
+ byte[] ReadBuf = new byte[BUFFER_SIZE];
+ ushort rPosition = 0;
+ bool Commfail = true;
+ bool disCommfail = false;
+
+ ushort BTCU_ID = 1;
+
+ private void serialRecvThread()
+ {
+ int getData = 0;
+ byte cData = 0;
+ bool BuffStart = false;
+ int TimeOutCount = 0;
+
+ while (SerialPortThreadEnd == false)
+ {
+StartSend:
+ if (sPort.IsOpen)
+ {
+ if (SerialTxProcess() == 1)
+ {
+ int rTimeOut = 100;
+
+ BuffStart = false;
+ rPosition = 0;
+
+ while (rTimeOut > 0)
+ {
+ if (((getData = GetBuff()) & 0x0100) != 0x0000)
+ {
+ rTimeOut = 100;
+ TimeOutCount = 0;
+
+ cData = (byte)(getData & 0x00FF);
+
+ if (rPosition >= BUFFER_SIZE)
+ {
+ BuffStart = false;
+ rPosition = 0;
+ }
+
+ if (BuffStart == false)
+ {
+ rPosition = 0;
+ if (cData == 0x01)
+ {
+ ReadBuf[rPosition++] = cData;
+ BuffStart = true;
+ }
+ }
+ else
+ {
+ ReadBuf[rPosition++] = cData;
+
+ switch (csSerialCommFunction.ModbusPacketFromSlaveCheck(ReadBuf, rPosition))
+ {
+ case 0: // Need more data
+ break;
+ case 1: // Packet OK, no error
+ byte[] cdata = csUtils.StrToByteArray(ReadBuf, 0, rPosition - 2);
+
+ Commfail = false;
+ SystemData[0] = csSerialCommFunction.SerialRxProcess(ReadBuf, RequestRegAddr, rPosition, SystemData[0]);
+
+ if (OnUpdate != null)
+ {
+ OnUpdate(this, SystemData);
+ }
+
+ Thread.Sleep(100);
+
+ goto StartSend;
+ case -1: // Packet error
+ rPosition = 0;
+ BuffStart = false;
+
+ Thread.Sleep(100);
+
+ goto StartSend;
+ default:
+ break;
+ }
+ }
+ }
+ else
+ {
+ Thread.Sleep(1);
+ if (rTimeOut > 0) rTimeOut--;
+ }
+ }
+
+ if (rPosition > 0)
+ {
+ Thread.Sleep(100);
+ }
+ else
+ {
+ TimeOutCount++;
+ if (TimeOutCount >= 5)
+ {
+ TimeOutCount = 5;
+ Commfail = true;
+ }
+ //if (Commfail == true)
+ //{
+ // BTCU_ID++;
+ // BTCU_ID %= 31;
+ // if (BTCU_ID == 0) BTCU_ID = 1;
+ //}
+ Thread.Sleep(100);
+ }
+ }
+ else
+ {
+ Thread.Sleep(100);
+ }
+ rPosition = 0;
+ }
+ else
+ {
+ Thread.Sleep(500);
+ }
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucShelfStatus.Designer.cs b/LFP_Manager/Controls/ucShelfStatus.Designer.cs
new file mode 100644
index 0000000..632f21c
--- /dev/null
+++ b/LFP_Manager/Controls/ucShelfStatus.Designer.cs
@@ -0,0 +1,1057 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucShelfStatus
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ucShelfStatus));
+ DevExpress.XtraCharts.XYDiagram xyDiagram1 = new DevExpress.XtraCharts.XYDiagram();
+ DevExpress.XtraCharts.Series series1 = new DevExpress.XtraCharts.Series();
+ DevExpress.XtraCharts.Series series2 = new DevExpress.XtraCharts.Series();
+ DevExpress.XtraCharts.XYDiagram xyDiagram2 = new DevExpress.XtraCharts.XYDiagram();
+ DevExpress.XtraCharts.Series series3 = new DevExpress.XtraCharts.Series();
+ DevExpress.XtraCharts.Series series4 = new DevExpress.XtraCharts.Series();
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.pictureEdit1 = new DevExpress.XtraEditors.PictureEdit();
+ this.btnCalib = new DevExpress.XtraEditors.SimpleButton();
+ this.gbEtc = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl6 = new DevExpress.XtraLayout.LayoutControl();
+ this.lbAmbTemp = new DevExpress.XtraEditors.LabelControl();
+ this.lbFetTemp = new DevExpress.XtraEditors.LabelControl();
+ this.layoutControlGroup6 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem22 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem23 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.btnParam = new DevExpress.XtraEditors.SimpleButton();
+ this.gbStatusAlarm = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl();
+ this.panelControl2 = new DevExpress.XtraEditors.PanelControl();
+ this.lbAlarm = new DevExpress.XtraEditors.LabelControl();
+ this.panelControl1 = new DevExpress.XtraEditors.PanelControl();
+ this.lbStatus = new DevExpress.XtraEditors.LabelControl();
+ this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lcitemStatus = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcitemAlarm = new DevExpress.XtraLayout.LayoutControlItem();
+ this.gbDetail = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl4 = new DevExpress.XtraLayout.LayoutControl();
+ this.TChart = new DevExpress.XtraCharts.ChartControl();
+ this.VChart = new DevExpress.XtraCharts.ChartControl();
+ this.layoutControlGroup4 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.gbValue = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
+ this.gaugeControl5 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.digitalBackgroundLayerComponent5 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl4 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.digitalBackgroundLayerComponent4 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl3 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.digitalBackgroundLayerComponent3 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl2 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.digitalBackgroundLayerComponent2 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl1 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.digitalBackgroundLayerComponent1 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem24 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lcitemValue = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.icitemStatusAlarm = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem19 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lbHeatbeat = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem21 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem20 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup7 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem25 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.tmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.FaultAlarmGroup = new LFP_Manager.Controls.UcFaultAlarmGroup();
+ this.dgSOH = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.dgTemperature = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.dgSOC = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.dgCurrent = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.dgVoltage = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.layoutControlItem26 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureEdit1.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbEtc)).BeginInit();
+ this.gbEtc.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl6)).BeginInit();
+ this.layoutControl6.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem23)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbStatusAlarm)).BeginInit();
+ this.gbStatusAlarm.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit();
+ this.layoutControl3.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl2)).BeginInit();
+ this.panelControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl1)).BeginInit();
+ this.panelControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemStatus)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemAlarm)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbDetail)).BeginInit();
+ this.gbDetail.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl4)).BeginInit();
+ this.layoutControl4.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.TChart)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(xyDiagram1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(series1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(series2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.VChart)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(xyDiagram2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(series3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(series4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbValue)).BeginInit();
+ this.gbValue.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit();
+ this.layoutControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem24)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemValue)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.icitemStatusAlarm)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbHeatbeat)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem21)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem25)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgSOH)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgTemperature)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgSOC)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgCurrent)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgVoltage)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem26)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.AllowCustomization = false;
+ this.layoutControl1.Controls.Add(this.FaultAlarmGroup);
+ this.layoutControl1.Controls.Add(this.pictureEdit1);
+ this.layoutControl1.Controls.Add(this.btnCalib);
+ this.layoutControl1.Controls.Add(this.gbEtc);
+ this.layoutControl1.Controls.Add(this.btnParam);
+ this.layoutControl1.Controls.Add(this.gbStatusAlarm);
+ this.layoutControl1.Controls.Add(this.gbDetail);
+ this.layoutControl1.Controls.Add(this.gbValue);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1049, 447, 692, 350);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(1300, 572);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // pictureEdit1
+ //
+ this.pictureEdit1.EditValue = ((object)(resources.GetObject("pictureEdit1.EditValue")));
+ this.pictureEdit1.Location = new System.Drawing.Point(1158, 30);
+ this.pictureEdit1.Name = "pictureEdit1";
+ this.pictureEdit1.Properties.ReadOnly = true;
+ this.pictureEdit1.Properties.ShowCameraMenuItem = DevExpress.XtraEditors.Controls.CameraMenuItemVisibility.Auto;
+ this.pictureEdit1.Properties.ShowMenu = false;
+ this.pictureEdit1.Properties.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Stretch;
+ this.pictureEdit1.Size = new System.Drawing.Size(133, 87);
+ this.pictureEdit1.StyleController = this.layoutControl1;
+ this.pictureEdit1.TabIndex = 14;
+ //
+ // btnCalib
+ //
+ this.btnCalib.Location = new System.Drawing.Point(1199, 191);
+ this.btnCalib.Name = "btnCalib";
+ this.btnCalib.Size = new System.Drawing.Size(98, 31);
+ this.btnCalib.StyleController = this.layoutControl1;
+ this.btnCalib.TabIndex = 11;
+ this.btnCalib.Text = "Calib";
+ this.btnCalib.Click += new System.EventHandler(this.btnCalibration_Click);
+ //
+ // gbEtc
+ //
+ this.gbEtc.Controls.Add(this.layoutControl6);
+ this.gbEtc.Location = new System.Drawing.Point(1075, 127);
+ this.gbEtc.Name = "gbEtc";
+ this.gbEtc.Size = new System.Drawing.Size(120, 95);
+ this.gbEtc.TabIndex = 10;
+ this.gbEtc.Text = "BMS-Temp";
+ //
+ // layoutControl6
+ //
+ this.layoutControl6.AllowCustomization = false;
+ this.layoutControl6.Controls.Add(this.lbAmbTemp);
+ this.layoutControl6.Controls.Add(this.lbFetTemp);
+ this.layoutControl6.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl6.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl6.Name = "layoutControl6";
+ this.layoutControl6.Root = this.layoutControlGroup6;
+ this.layoutControl6.Size = new System.Drawing.Size(116, 70);
+ this.layoutControl6.TabIndex = 0;
+ this.layoutControl6.Text = "layoutControl6";
+ //
+ // lbAmbTemp
+ //
+ this.lbAmbTemp.Location = new System.Drawing.Point(4, 36);
+ this.lbAmbTemp.Name = "lbAmbTemp";
+ this.lbAmbTemp.Size = new System.Drawing.Size(108, 30);
+ this.lbAmbTemp.StyleController = this.layoutControl6;
+ this.lbAmbTemp.TabIndex = 5;
+ //
+ // lbFetTemp
+ //
+ this.lbFetTemp.Location = new System.Drawing.Point(4, 4);
+ this.lbFetTemp.Name = "lbFetTemp";
+ this.lbFetTemp.Size = new System.Drawing.Size(108, 28);
+ this.lbFetTemp.StyleController = this.layoutControl6;
+ this.lbFetTemp.TabIndex = 4;
+ this.lbFetTemp.Text = " CPU: 0C";
+ //
+ // layoutControlGroup6
+ //
+ this.layoutControlGroup6.CustomizationFormText = "layoutControlGroup6";
+ this.layoutControlGroup6.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup6.GroupBordersVisible = false;
+ this.layoutControlGroup6.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem22,
+ this.layoutControlItem23});
+ this.layoutControlGroup6.Name = "layoutControlGroup6";
+ this.layoutControlGroup6.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.layoutControlGroup6.Size = new System.Drawing.Size(116, 70);
+ this.layoutControlGroup6.TextVisible = false;
+ //
+ // layoutControlItem22
+ //
+ this.layoutControlItem22.Control = this.lbFetTemp;
+ this.layoutControlItem22.CustomizationFormText = "layoutControlItem22";
+ this.layoutControlItem22.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem22.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem22.Name = "layoutControlItem22";
+ this.layoutControlItem22.Size = new System.Drawing.Size(112, 32);
+ this.layoutControlItem22.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem22.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem22.TextVisible = false;
+ //
+ // layoutControlItem23
+ //
+ this.layoutControlItem23.Control = this.lbAmbTemp;
+ this.layoutControlItem23.CustomizationFormText = "layoutControlItem23";
+ this.layoutControlItem23.Location = new System.Drawing.Point(0, 32);
+ this.layoutControlItem23.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem23.Name = "layoutControlItem23";
+ this.layoutControlItem23.Size = new System.Drawing.Size(112, 34);
+ this.layoutControlItem23.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem23.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem23.TextVisible = false;
+ //
+ // btnParam
+ //
+ this.btnParam.Location = new System.Drawing.Point(1199, 156);
+ this.btnParam.Name = "btnParam";
+ this.btnParam.Size = new System.Drawing.Size(98, 31);
+ this.btnParam.StyleController = this.layoutControl1;
+ this.btnParam.TabIndex = 8;
+ this.btnParam.Text = "Param";
+ this.btnParam.Click += new System.EventHandler(this.btnParam_Click);
+ //
+ // gbStatusAlarm
+ //
+ this.gbStatusAlarm.Controls.Add(this.layoutControl3);
+ this.gbStatusAlarm.Location = new System.Drawing.Point(3, 127);
+ this.gbStatusAlarm.Name = "gbStatusAlarm";
+ this.gbStatusAlarm.Size = new System.Drawing.Size(168, 95);
+ this.gbStatusAlarm.TabIndex = 6;
+ this.gbStatusAlarm.Text = "Operating Status";
+ //
+ // layoutControl3
+ //
+ this.layoutControl3.AllowCustomization = false;
+ this.layoutControl3.Controls.Add(this.panelControl2);
+ this.layoutControl3.Controls.Add(this.panelControl1);
+ this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl3.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl3.Name = "layoutControl3";
+ this.layoutControl3.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1163, 334, 250, 350);
+ this.layoutControl3.Root = this.layoutControlGroup3;
+ this.layoutControl3.Size = new System.Drawing.Size(164, 70);
+ this.layoutControl3.TabIndex = 0;
+ this.layoutControl3.Text = "layoutControl3";
+ //
+ // panelControl2
+ //
+ this.panelControl2.Controls.Add(this.lbAlarm);
+ this.panelControl2.Location = new System.Drawing.Point(44, 37);
+ this.panelControl2.Name = "panelControl2";
+ this.panelControl2.Size = new System.Drawing.Size(117, 30);
+ this.panelControl2.TabIndex = 5;
+ //
+ // lbAlarm
+ //
+ this.lbAlarm.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbAlarm.Appearance.Options.UseFont = true;
+ this.lbAlarm.Appearance.Options.UseTextOptions = true;
+ this.lbAlarm.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbAlarm.AutoSizeMode = DevExpress.XtraEditors.LabelAutoSizeMode.None;
+ this.lbAlarm.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.lbAlarm.Location = new System.Drawing.Point(2, 2);
+ this.lbAlarm.Name = "lbAlarm";
+ this.lbAlarm.Size = new System.Drawing.Size(113, 26);
+ this.lbAlarm.TabIndex = 0;
+ this.lbAlarm.Text = "Alarm";
+ //
+ // panelControl1
+ //
+ this.panelControl1.Controls.Add(this.lbStatus);
+ this.panelControl1.Location = new System.Drawing.Point(44, 3);
+ this.panelControl1.Name = "panelControl1";
+ this.panelControl1.Size = new System.Drawing.Size(117, 30);
+ this.panelControl1.TabIndex = 4;
+ //
+ // lbStatus
+ //
+ this.lbStatus.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbStatus.Appearance.Options.UseFont = true;
+ this.lbStatus.Appearance.Options.UseTextOptions = true;
+ this.lbStatus.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbStatus.AutoSizeMode = DevExpress.XtraEditors.LabelAutoSizeMode.None;
+ this.lbStatus.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.lbStatus.Location = new System.Drawing.Point(2, 2);
+ this.lbStatus.Name = "lbStatus";
+ this.lbStatus.Size = new System.Drawing.Size(113, 26);
+ this.lbStatus.TabIndex = 0;
+ this.lbStatus.Text = "Status";
+ //
+ // layoutControlGroup3
+ //
+ this.layoutControlGroup3.CustomizationFormText = "layoutControlGroup3";
+ this.layoutControlGroup3.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup3.GroupBordersVisible = false;
+ this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lcitemStatus,
+ this.lcitemAlarm});
+ this.layoutControlGroup3.Name = "layoutControlGroup3";
+ this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup3.Size = new System.Drawing.Size(164, 70);
+ this.layoutControlGroup3.TextVisible = false;
+ //
+ // lcitemStatus
+ //
+ this.lcitemStatus.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lcitemStatus.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lcitemStatus.Control = this.panelControl1;
+ this.lcitemStatus.CustomizationFormText = "Status";
+ this.lcitemStatus.Location = new System.Drawing.Point(0, 0);
+ this.lcitemStatus.MinSize = new System.Drawing.Size(64, 26);
+ this.lcitemStatus.Name = "lcitemStatus";
+ this.lcitemStatus.Size = new System.Drawing.Size(162, 34);
+ this.lcitemStatus.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemStatus.Text = "Status";
+ this.lcitemStatus.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemStatus.TextSize = new System.Drawing.Size(40, 14);
+ this.lcitemStatus.TextToControlDistance = 1;
+ //
+ // lcitemAlarm
+ //
+ this.lcitemAlarm.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lcitemAlarm.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lcitemAlarm.Control = this.panelControl2;
+ this.lcitemAlarm.CustomizationFormText = "Alarm";
+ this.lcitemAlarm.Location = new System.Drawing.Point(0, 34);
+ this.lcitemAlarm.MinSize = new System.Drawing.Size(100, 24);
+ this.lcitemAlarm.Name = "lcitemAlarm";
+ this.lcitemAlarm.Size = new System.Drawing.Size(162, 34);
+ this.lcitemAlarm.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemAlarm.Text = "Alarm";
+ this.lcitemAlarm.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemAlarm.TextSize = new System.Drawing.Size(40, 20);
+ this.lcitemAlarm.TextToControlDistance = 1;
+ //
+ // gbDetail
+ //
+ this.gbDetail.Controls.Add(this.layoutControl4);
+ this.gbDetail.Location = new System.Drawing.Point(3, 226);
+ this.gbDetail.Name = "gbDetail";
+ this.gbDetail.Size = new System.Drawing.Size(1294, 343);
+ this.gbDetail.TabIndex = 5;
+ this.gbDetail.Text = "Detail Status";
+ //
+ // layoutControl4
+ //
+ this.layoutControl4.AllowCustomization = false;
+ this.layoutControl4.Controls.Add(this.TChart);
+ this.layoutControl4.Controls.Add(this.VChart);
+ this.layoutControl4.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl4.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl4.Name = "layoutControl4";
+ this.layoutControl4.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1246, 275, 650, 400);
+ this.layoutControl4.Root = this.layoutControlGroup4;
+ this.layoutControl4.Size = new System.Drawing.Size(1290, 318);
+ this.layoutControl4.TabIndex = 0;
+ this.layoutControl4.Text = "layoutControl4";
+ //
+ // TChart
+ //
+ xyDiagram1.AxisX.VisibleInPanesSerializable = "-1";
+ xyDiagram1.AxisY.VisibleInPanesSerializable = "-1";
+ xyDiagram1.DefaultPane.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(242)))), ((int)(((byte)(242)))), ((int)(((byte)(242)))));
+ this.TChart.Diagram = xyDiagram1;
+ this.TChart.Legend.Name = "Default Legend";
+ this.TChart.Location = new System.Drawing.Point(944, 20);
+ this.TChart.Name = "TChart";
+ series1.Name = "Series 1";
+ series2.Name = "Series 2";
+ this.TChart.SeriesSerializable = new DevExpress.XtraCharts.Series[] {
+ series1,
+ series2};
+ this.TChart.Size = new System.Drawing.Size(343, 295);
+ this.TChart.TabIndex = 7;
+ //
+ // VChart
+ //
+ xyDiagram2.AxisX.VisibleInPanesSerializable = "-1";
+ xyDiagram2.AxisY.MinorCount = 1;
+ xyDiagram2.AxisY.NumericScaleOptions.AutoGrid = false;
+ xyDiagram2.AxisY.NumericScaleOptions.GridSpacing = 0.1D;
+ xyDiagram2.AxisY.VisibleInPanesSerializable = "-1";
+ xyDiagram2.AxisY.VisualRange.Auto = false;
+ xyDiagram2.AxisY.VisualRange.AutoSideMargins = false;
+ xyDiagram2.AxisY.VisualRange.EndSideMargin = 0D;
+ xyDiagram2.AxisY.VisualRange.MaxValueSerializable = "4";
+ xyDiagram2.AxisY.VisualRange.MinValueSerializable = "2";
+ xyDiagram2.AxisY.VisualRange.StartSideMargin = 0D;
+ xyDiagram2.DefaultPane.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(242)))), ((int)(((byte)(242)))), ((int)(((byte)(242)))));
+ this.VChart.Diagram = xyDiagram2;
+ this.VChart.Legend.Name = "Default Legend";
+ this.VChart.Location = new System.Drawing.Point(3, 20);
+ this.VChart.Name = "VChart";
+ series3.Name = "Series 1";
+ series4.Name = "Series 2";
+ this.VChart.SeriesSerializable = new DevExpress.XtraCharts.Series[] {
+ series3,
+ series4};
+ this.VChart.Size = new System.Drawing.Size(937, 295);
+ this.VChart.TabIndex = 6;
+ //
+ // layoutControlGroup4
+ //
+ this.layoutControlGroup4.CustomizationFormText = "layoutControlGroup4";
+ this.layoutControlGroup4.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup4.GroupBordersVisible = false;
+ this.layoutControlGroup4.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1,
+ this.layoutControlItem7});
+ this.layoutControlGroup4.Name = "Root";
+ this.layoutControlGroup4.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup4.Size = new System.Drawing.Size(1290, 318);
+ this.layoutControlGroup4.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.VChart;
+ this.layoutControlItem1.CustomizationFormText = "Cell Voltage";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(941, 316);
+ this.layoutControlItem1.Text = "Cell Voltage";
+ this.layoutControlItem1.TextLocation = DevExpress.Utils.Locations.Top;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(94, 14);
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.TChart;
+ this.layoutControlItem7.Location = new System.Drawing.Point(941, 0);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(347, 316);
+ this.layoutControlItem7.Text = "Cell Temperature";
+ this.layoutControlItem7.TextLocation = DevExpress.Utils.Locations.Top;
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(94, 14);
+ //
+ // gbValue
+ //
+ this.gbValue.Controls.Add(this.layoutControl2);
+ this.gbValue.Location = new System.Drawing.Point(3, 3);
+ this.gbValue.Name = "gbValue";
+ this.gbValue.Size = new System.Drawing.Size(1145, 120);
+ this.gbValue.TabIndex = 4;
+ this.gbValue.Text = "Value";
+ //
+ // layoutControl2
+ //
+ this.layoutControl2.AllowCustomization = false;
+ this.layoutControl2.Controls.Add(this.gaugeControl5);
+ this.layoutControl2.Controls.Add(this.gaugeControl4);
+ this.layoutControl2.Controls.Add(this.gaugeControl3);
+ this.layoutControl2.Controls.Add(this.gaugeControl2);
+ this.layoutControl2.Controls.Add(this.gaugeControl1);
+ this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl2.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl2.Name = "layoutControl2";
+ this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1123, 466, 650, 400);
+ this.layoutControl2.Root = this.layoutControlGroup2;
+ this.layoutControl2.Size = new System.Drawing.Size(1141, 95);
+ this.layoutControl2.TabIndex = 0;
+ this.layoutControl2.Text = "layoutControl2";
+ //
+ // gaugeControl5
+ //
+ this.gaugeControl5.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.dgSOH});
+ this.gaugeControl5.Location = new System.Drawing.Point(686, 20);
+ this.gaugeControl5.Name = "gaugeControl5";
+ this.gaugeControl5.Size = new System.Drawing.Size(223, 72);
+ this.gaugeControl5.TabIndex = 8;
+ //
+ // digitalBackgroundLayerComponent5
+ //
+ this.digitalBackgroundLayerComponent5.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent5.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent5.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent5.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent5.ZOrder = 1000;
+ //
+ // gaugeControl4
+ //
+ this.gaugeControl4.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.dgTemperature});
+ this.gaugeControl4.Location = new System.Drawing.Point(913, 20);
+ this.gaugeControl4.Name = "gaugeControl4";
+ this.gaugeControl4.Size = new System.Drawing.Size(225, 72);
+ this.gaugeControl4.TabIndex = 7;
+ //
+ // digitalBackgroundLayerComponent4
+ //
+ this.digitalBackgroundLayerComponent4.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent4.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent4.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent4.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent4.ZOrder = 1000;
+ //
+ // gaugeControl3
+ //
+ this.gaugeControl3.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.dgSOC});
+ this.gaugeControl3.Location = new System.Drawing.Point(457, 20);
+ this.gaugeControl3.Name = "gaugeControl3";
+ this.gaugeControl3.Size = new System.Drawing.Size(225, 72);
+ this.gaugeControl3.TabIndex = 6;
+ //
+ // digitalBackgroundLayerComponent3
+ //
+ this.digitalBackgroundLayerComponent3.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent3.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent3.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent3.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent3.ZOrder = 1000;
+ //
+ // gaugeControl2
+ //
+ this.gaugeControl2.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.dgCurrent});
+ this.gaugeControl2.Location = new System.Drawing.Point(230, 20);
+ this.gaugeControl2.Name = "gaugeControl2";
+ this.gaugeControl2.Size = new System.Drawing.Size(223, 72);
+ this.gaugeControl2.TabIndex = 5;
+ //
+ // digitalBackgroundLayerComponent2
+ //
+ this.digitalBackgroundLayerComponent2.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent2.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent2.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent2.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent2.ZOrder = 1000;
+ //
+ // gaugeControl1
+ //
+ this.gaugeControl1.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.dgVoltage});
+ this.gaugeControl1.Location = new System.Drawing.Point(3, 20);
+ this.gaugeControl1.Name = "gaugeControl1";
+ this.gaugeControl1.Size = new System.Drawing.Size(223, 72);
+ this.gaugeControl1.TabIndex = 4;
+ //
+ // digitalBackgroundLayerComponent1
+ //
+ this.digitalBackgroundLayerComponent1.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent1.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent1.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent1.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent1.ZOrder = 1000;
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2";
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem3,
+ this.layoutControlItem4,
+ this.layoutControlItem5,
+ this.layoutControlItem6,
+ this.layoutControlItem24});
+ this.layoutControlGroup2.Name = "Root";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(1141, 95);
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.gaugeControl1;
+ this.layoutControlItem3.CustomizationFormText = " Voltage";
+ this.layoutControlItem3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(227, 93);
+ this.layoutControlItem3.Text = " Voltage";
+ this.layoutControlItem3.TextLocation = DevExpress.Utils.Locations.Top;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(76, 14);
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.gaugeControl2;
+ this.layoutControlItem4.CustomizationFormText = " Current";
+ this.layoutControlItem4.Location = new System.Drawing.Point(227, 0);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(227, 93);
+ this.layoutControlItem4.Text = " Current";
+ this.layoutControlItem4.TextLocation = DevExpress.Utils.Locations.Top;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(76, 14);
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.gaugeControl3;
+ this.layoutControlItem5.CustomizationFormText = " SOC";
+ this.layoutControlItem5.Location = new System.Drawing.Point(454, 0);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(229, 93);
+ this.layoutControlItem5.Text = " SOC";
+ this.layoutControlItem5.TextLocation = DevExpress.Utils.Locations.Top;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(76, 14);
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.gaugeControl4;
+ this.layoutControlItem6.CustomizationFormText = " Temperature";
+ this.layoutControlItem6.Location = new System.Drawing.Point(910, 0);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(104, 41);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(229, 93);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.Text = " Temperature";
+ this.layoutControlItem6.TextLocation = DevExpress.Utils.Locations.Top;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(76, 14);
+ //
+ // layoutControlItem24
+ //
+ this.layoutControlItem24.Control = this.gaugeControl5;
+ this.layoutControlItem24.CustomizationFormText = " SOH";
+ this.layoutControlItem24.Location = new System.Drawing.Point(683, 0);
+ this.layoutControlItem24.MinSize = new System.Drawing.Size(100, 24);
+ this.layoutControlItem24.Name = "layoutControlItem24";
+ this.layoutControlItem24.Size = new System.Drawing.Size(227, 93);
+ this.layoutControlItem24.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem24.Text = " SOH";
+ this.layoutControlItem24.TextLocation = DevExpress.Utils.Locations.Top;
+ this.layoutControlItem24.TextSize = new System.Drawing.Size(76, 14);
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lcitemValue,
+ this.layoutControlItem2,
+ this.icitemStatusAlarm,
+ this.layoutControlItem19,
+ this.lbHeatbeat,
+ this.layoutControlItem21,
+ this.layoutControlItem20,
+ this.layoutControlGroup7,
+ this.layoutControlItem26});
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(1300, 572);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // lcitemValue
+ //
+ this.lcitemValue.Control = this.gbValue;
+ this.lcitemValue.CustomizationFormText = "lcitemValue";
+ this.lcitemValue.Location = new System.Drawing.Point(0, 0);
+ this.lcitemValue.MaxSize = new System.Drawing.Size(0, 124);
+ this.lcitemValue.MinSize = new System.Drawing.Size(104, 124);
+ this.lcitemValue.Name = "lcitemValue";
+ this.lcitemValue.Size = new System.Drawing.Size(1149, 124);
+ this.lcitemValue.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemValue.TextSize = new System.Drawing.Size(0, 0);
+ this.lcitemValue.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.gbDetail;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 223);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(104, 24);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(1298, 347);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // icitemStatusAlarm
+ //
+ this.icitemStatusAlarm.Control = this.gbStatusAlarm;
+ this.icitemStatusAlarm.CustomizationFormText = "icitemStatusAlarm";
+ this.icitemStatusAlarm.Location = new System.Drawing.Point(0, 124);
+ this.icitemStatusAlarm.MaxSize = new System.Drawing.Size(172, 0);
+ this.icitemStatusAlarm.MinSize = new System.Drawing.Size(172, 24);
+ this.icitemStatusAlarm.Name = "icitemStatusAlarm";
+ this.icitemStatusAlarm.Size = new System.Drawing.Size(172, 99);
+ this.icitemStatusAlarm.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.icitemStatusAlarm.TextSize = new System.Drawing.Size(0, 0);
+ this.icitemStatusAlarm.TextVisible = false;
+ //
+ // layoutControlItem19
+ //
+ this.layoutControlItem19.Control = this.btnParam;
+ this.layoutControlItem19.CustomizationFormText = "layoutControlItem19";
+ this.layoutControlItem19.Location = new System.Drawing.Point(1196, 153);
+ this.layoutControlItem19.MinSize = new System.Drawing.Size(50, 26);
+ this.layoutControlItem19.Name = "layoutControlItem19";
+ this.layoutControlItem19.Size = new System.Drawing.Size(102, 35);
+ this.layoutControlItem19.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem19.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem19.TextVisible = false;
+ //
+ // lbHeatbeat
+ //
+ this.lbHeatbeat.AllowHotTrack = false;
+ this.lbHeatbeat.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold);
+ this.lbHeatbeat.AppearanceItemCaption.Options.UseFont = true;
+ this.lbHeatbeat.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lbHeatbeat.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbHeatbeat.CustomizationFormText = "HB";
+ this.lbHeatbeat.Location = new System.Drawing.Point(1196, 124);
+ this.lbHeatbeat.MaxSize = new System.Drawing.Size(102, 0);
+ this.lbHeatbeat.MinSize = new System.Drawing.Size(102, 25);
+ this.lbHeatbeat.Name = "lbHeatbeat";
+ this.lbHeatbeat.Size = new System.Drawing.Size(102, 29);
+ this.lbHeatbeat.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lbHeatbeat.Text = "HB";
+ this.lbHeatbeat.TextSize = new System.Drawing.Size(17, 16);
+ //
+ // layoutControlItem21
+ //
+ this.layoutControlItem21.Control = this.gbEtc;
+ this.layoutControlItem21.CustomizationFormText = "layoutControlItem21";
+ this.layoutControlItem21.Location = new System.Drawing.Point(1072, 124);
+ this.layoutControlItem21.MaxSize = new System.Drawing.Size(124, 0);
+ this.layoutControlItem21.MinSize = new System.Drawing.Size(124, 69);
+ this.layoutControlItem21.Name = "layoutControlItem21";
+ this.layoutControlItem21.Size = new System.Drawing.Size(124, 99);
+ this.layoutControlItem21.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem21.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem21.TextVisible = false;
+ //
+ // layoutControlItem20
+ //
+ this.layoutControlItem20.Control = this.btnCalib;
+ this.layoutControlItem20.Location = new System.Drawing.Point(1196, 188);
+ this.layoutControlItem20.MinSize = new System.Drawing.Size(44, 26);
+ this.layoutControlItem20.Name = "layoutControlItem20";
+ this.layoutControlItem20.Size = new System.Drawing.Size(102, 35);
+ this.layoutControlItem20.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem20.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem20.TextVisible = false;
+ //
+ // layoutControlGroup7
+ //
+ this.layoutControlGroup7.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem25});
+ this.layoutControlGroup7.Location = new System.Drawing.Point(1149, 0);
+ this.layoutControlGroup7.Name = "layoutControlGroup7";
+ this.layoutControlGroup7.Padding = new DevExpress.XtraLayout.Utils.Padding(3, 3, 3, 3);
+ this.layoutControlGroup7.Size = new System.Drawing.Size(149, 124);
+ this.layoutControlGroup7.Text = " ";
+ //
+ // layoutControlItem25
+ //
+ this.layoutControlItem25.Control = this.pictureEdit1;
+ this.layoutControlItem25.CustomizationFormText = "Logo";
+ this.layoutControlItem25.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem25.MaxSize = new System.Drawing.Size(137, 0);
+ this.layoutControlItem25.MinSize = new System.Drawing.Size(137, 24);
+ this.layoutControlItem25.Name = "layoutControlItem25";
+ this.layoutControlItem25.Size = new System.Drawing.Size(137, 91);
+ this.layoutControlItem25.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem25.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem25.TextVisible = false;
+ //
+ // tmrDisplay
+ //
+ this.tmrDisplay.Interval = 500;
+ this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick);
+ //
+ // FaultAlarmGroup
+ //
+ this.FaultAlarmGroup.Location = new System.Drawing.Point(175, 127);
+ this.FaultAlarmGroup.Name = "FaultAlarmGroup";
+ this.FaultAlarmGroup.Size = new System.Drawing.Size(896, 95);
+ this.FaultAlarmGroup.TabIndex = 15;
+ //
+ // dgSOH
+ //
+ this.dgSOH.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.dgSOH.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.dgSOH.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent5});
+ this.dgSOH.Bounds = new System.Drawing.Rectangle(6, 6, 211, 60);
+ this.dgSOH.DigitCount = 5;
+ this.dgSOH.Name = "dgSOH";
+ this.dgSOH.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.dgSOH.Text = "00,000";
+ //
+ // dgTemperature
+ //
+ this.dgTemperature.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.dgTemperature.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.dgTemperature.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent4});
+ this.dgTemperature.Bounds = new System.Drawing.Rectangle(6, 6, 213, 60);
+ this.dgTemperature.DigitCount = 5;
+ this.dgTemperature.Name = "dgTemperature";
+ this.dgTemperature.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.dgTemperature.Text = "00,000";
+ //
+ // dgSOC
+ //
+ this.dgSOC.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.dgSOC.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.dgSOC.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent3});
+ this.dgSOC.Bounds = new System.Drawing.Rectangle(6, 6, 213, 60);
+ this.dgSOC.DigitCount = 5;
+ this.dgSOC.Name = "dgSOC";
+ this.dgSOC.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.dgSOC.Text = "00,000";
+ //
+ // dgCurrent
+ //
+ this.dgCurrent.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.dgCurrent.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.dgCurrent.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent2});
+ this.dgCurrent.Bounds = new System.Drawing.Rectangle(6, 6, 211, 60);
+ this.dgCurrent.DigitCount = 5;
+ this.dgCurrent.Name = "dgCurrent";
+ this.dgCurrent.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.dgCurrent.Text = "00,000";
+ //
+ // dgVoltage
+ //
+ this.dgVoltage.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.dgVoltage.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.dgVoltage.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent1});
+ this.dgVoltage.Bounds = new System.Drawing.Rectangle(6, 6, 211, 60);
+ this.dgVoltage.DigitCount = 5;
+ this.dgVoltage.Name = "dgVoltage";
+ this.dgVoltage.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.dgVoltage.Text = "00,000";
+ //
+ // layoutControlItem26
+ //
+ this.layoutControlItem26.Control = this.FaultAlarmGroup;
+ this.layoutControlItem26.Location = new System.Drawing.Point(172, 124);
+ this.layoutControlItem26.Name = "layoutControlItem26";
+ this.layoutControlItem26.Size = new System.Drawing.Size(900, 99);
+ this.layoutControlItem26.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem26.TextVisible = false;
+ //
+ // ucShelfStatus
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.Name = "ucShelfStatus";
+ this.Size = new System.Drawing.Size(1300, 572);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.pictureEdit1.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbEtc)).EndInit();
+ this.gbEtc.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl6)).EndInit();
+ this.layoutControl6.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem23)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbStatusAlarm)).EndInit();
+ this.gbStatusAlarm.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit();
+ this.layoutControl3.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl2)).EndInit();
+ this.panelControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl1)).EndInit();
+ this.panelControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemStatus)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemAlarm)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbDetail)).EndInit();
+ this.gbDetail.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl4)).EndInit();
+ this.layoutControl4.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(xyDiagram1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(series1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(series2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TChart)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(xyDiagram2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(series3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(series4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.VChart)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbValue)).EndInit();
+ this.gbValue.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit();
+ this.layoutControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem24)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemValue)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.icitemStatusAlarm)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbHeatbeat)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem21)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem25)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgSOH)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgTemperature)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgSOC)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgCurrent)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgVoltage)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem26)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.GroupControl gbDetail;
+ private DevExpress.XtraEditors.GroupControl gbValue;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemValue;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.LayoutControl layoutControl2;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl4;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgTemperature;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent4;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl3;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgSOC;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent3;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl2;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgCurrent;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent2;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl1;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgVoltage;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraEditors.GroupControl gbStatusAlarm;
+ private DevExpress.XtraLayout.LayoutControlItem icitemStatusAlarm;
+ private DevExpress.XtraLayout.LayoutControl layoutControl3;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3;
+ private DevExpress.XtraEditors.PanelControl panelControl2;
+ private DevExpress.XtraEditors.PanelControl panelControl1;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemStatus;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemAlarm;
+ private DevExpress.XtraEditors.LabelControl lbStatus;
+ private DevExpress.XtraEditors.LabelControl lbAlarm;
+ private DevExpress.XtraLayout.LayoutControl layoutControl4;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup4;
+ private System.Windows.Forms.Timer tmrDisplay;
+ private DevExpress.XtraEditors.SimpleButton btnParam;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem19;
+ private DevExpress.XtraLayout.SimpleLabelItem lbHeatbeat;
+ private DevExpress.XtraEditors.GroupControl gbEtc;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem21;
+ private DevExpress.XtraLayout.LayoutControl layoutControl6;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup6;
+ private DevExpress.XtraEditors.LabelControl lbAmbTemp;
+ private DevExpress.XtraEditors.LabelControl lbFetTemp;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem22;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem23;
+ private DevExpress.XtraCharts.ChartControl VChart;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraCharts.ChartControl TChart;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private DevExpress.XtraEditors.SimpleButton btnCalib;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem20;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl5;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgSOH;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent5;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem24;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup7;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem25;
+ private DevExpress.XtraEditors.PictureEdit pictureEdit1;
+ private UcFaultAlarmGroup FaultAlarmGroup;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem26;
+ }
+}
diff --git a/LFP_Manager/Controls/ucShelfStatus.cs b/LFP_Manager/Controls/ucShelfStatus.cs
new file mode 100644
index 0000000..073aac2
--- /dev/null
+++ b/LFP_Manager/Controls/ucShelfStatus.cs
@@ -0,0 +1,1401 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+using DevExpress.XtraCharts;
+
+using LFP_Manager.Forms;
+using LFP_Manager.DataStructure;
+using LFP_Manager.Utils;
+using DevExpress.Utils.Text;
+
+namespace LFP_Manager.Controls
+{
+ public delegate void paramCommand(int sId, int mode, int index, int flag,
+ ref CsDeviceData.DeviceModuleData.DeviceParamData aParam,
+ ref CsDeviceData.DeviceModuleData.DeviceCalibration aCalib);
+
+ public partial class ucShelfStatus : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region CONSTDATA
+ const int STATUS_QTY = 10;
+ #endregion
+
+ #region VARIABLES
+ int ModuleID = 1;
+ bool start = false;
+
+ CommConfig Config;
+
+ CsDeviceData.DeviceModuleData[] ModuleData;
+
+ DataTable[] dtVolt;
+ DataTable[] dtTemp;
+ Series[] seriesVolt;
+ Series[] seriesTemp;
+
+ Palette paletteV;
+ Palette paletteT;
+
+ public event paramCommand OnCommand = null;
+ public event SendDataUartEvent OnSendUartData = null;
+ #endregion
+
+ #region CONSTRUCTORS
+ public ucShelfStatus()
+ {
+ InitializeComponent();
+ }
+ #endregion
+
+ #region PROPERTIES
+ public void UpdateSystemId(int mID)
+ {
+ ModuleID = mID;
+ }
+
+ public void Start(int mID, ref CommConfig aConfig, ref CsDeviceData.DeviceModuleData[] mData)
+ {
+ ModuleID = mID;
+ Config = aConfig;
+ ModuleData = mData;
+
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ btnParam.Text = "Param";
+ btnParam.Enabled = true;
+ btnCalib.Enabled = true;
+ btnCalib.Text = "Calib";
+ break;
+ case csConstData.CommType.COMM_RS485:
+ btnParam.Text = "Information";
+ btnParam.Enabled = true;
+ btnCalib.Enabled = true;
+ btnCalib.Text = "Calib";
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ btnParam.Text = "Information";
+ btnParam.Enabled = true;
+ btnCalib.Enabled = false;
+ btnCalib.Text = "";
+ break;
+ default:
+ break;
+ }
+
+ InitDataTableVolt();
+ InitDataTableTemp();
+ vSeriesInit();
+ tSeriesInit();
+
+ tmrDisplay.Start();
+
+ start = true;
+ }
+
+ public void Stop()
+ {
+ start = false;
+ tmrDisplay.Stop();
+ }
+
+ public void ModuleIDSet(int mID)
+ {
+ ModuleID = mID;
+ }
+
+ public int ModuleIDGet()
+ {
+ return ModuleID;
+ }
+
+ public void UpdateData(CsDeviceData.DeviceModuleData[] mData)
+ {
+ ModuleData = mData;
+ }
+ #endregion
+
+ #region INIT_COMPONENT
+
+ private void InitDataTableVolt()
+ {
+ dtVolt = new DataTable[ModuleData[ModuleID - 1].cellQty];
+
+ for (int i = 0; i < dtVolt.Length; i++)
+ {
+ dtVolt[i] = new DataTable();
+ dtVolt[i].Columns.Add("C_No", typeof(Int32));
+ dtVolt[i].Columns.Add("Alarm", typeof(Int32));
+ dtVolt[i].Columns.Add("Value", typeof(double));
+
+ // Add data rows to the table.
+ DataRow row = null;
+
+ row = dtVolt[i].NewRow();
+ row["C_No"] = i + 1;
+ row["Alarm"] = 0;
+ row["Value"] = 3.2;
+
+ dtVolt[i].Rows.Add(row);
+ }
+ }
+
+ private void InitDataTableTemp()
+ {
+ dtTemp = new DataTable[ModuleData[ModuleID - 1].tempQty];
+ for (int i = 0; i < dtTemp.Length; i++)
+ {
+ dtTemp[i] = new DataTable();
+ dtTemp[i].Columns.Add("T_No", typeof(Int32));
+ dtTemp[i].Columns.Add("Alarm", typeof(Int32));
+ dtTemp[i].Columns.Add("Value", typeof(double));
+
+ // Add data rows to the table.
+ DataRow row = null;
+
+ row = dtTemp[i].NewRow();
+ row["T_No"] = i + 1;
+ row["Alarm"] = 0;
+ row["Value"] = 25.4;
+ dtTemp[i].Rows.Add(row);
+ }
+ }
+
+ private Palette vPaletteInit(string bName, short bValue)
+ {
+ paletteV = new Palette(bName);
+ for (int i = 0; i < dtVolt.Length; i++)
+ {
+ if (((bValue >> i) & 0x0001) == 0x0001)
+ paletteV.Add(Color.Orange);
+ else
+ paletteV.Add(Color.Green);
+ }
+ return paletteV;
+ }
+
+ private void vPaletteUpdate(ushort bValue)
+ {
+ paletteV.Clear();
+ for (int i = 0; i < dtVolt.Length; i++)
+ {
+ if (((bValue >> i) & 0x0001) == 0x0001)
+ paletteV.Add(Color.Orange);
+ else
+ paletteV.Add(Color.Green);
+ }
+ }
+
+ private Palette tPaletteInit(string bName, short bValue)
+ {
+ paletteT = new Palette(bName);
+
+ for (int i = 0; i < dtTemp.Length; i++)
+ {
+ if (((bValue >> i) & 0x0001) == 0x0001)
+ paletteT.Add(Color.Orange);
+ else
+ paletteT.Add(Color.Green);
+ }
+
+ return paletteT;
+ }
+
+ private void tPaletteUpdate(short bValue)
+ {
+ paletteT.Clear();
+ for (int i = 0; i < dtTemp.Length; i++)
+ {
+ if (((bValue >> i) & 0x0001) == 0x0001)
+ paletteT.Add(Color.Orange);
+ else
+ paletteT.Add(Color.Green);
+ }
+ }
+
+ private void vSeriesInit()
+ {
+ VChart.Series.Clear();
+ VChart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
+
+ seriesVolt = new Series[ModuleData[ModuleID - 1].cellQty];
+
+ for (int i = 0; i < seriesVolt.Length; i++)
+ {
+ seriesVolt[i] = new Series(String.Format("C_{0:00}", i + 1), ViewType.Bar)
+ {
+ DataSource = dtVolt[i],
+ //Label.PointOptions.PointView = PointView.ArgumentAndValues,
+ //Label.PointOptions.ValueNumericOptions.Format = NumericFormat.Number,
+ //Label.PointOptions.ValueNumericOptions.Precision = 3,
+ CrosshairLabelPattern = "C_{A:00} : {V:F3}",
+
+ // Specify data members to bind the series.
+ ArgumentScaleType = ScaleType.Numerical,
+ ArgumentDataMember = "C_No",
+ ValueScaleType = ScaleType.Numerical,
+ };
+ ((SideBySideBarSeriesView)(seriesVolt[i].View)).BarWidth = 10.0;
+ seriesVolt[i].ValueDataMembers.AddRange(new string[] { "Value" });
+ VChart.Series.Add(seriesVolt[i]);
+ }
+
+ VChart.PaletteRepository.Clear();
+ VChart.PaletteRepository.Add("V Palette", vPaletteInit("V Palette", 0));
+ VChart.PaletteName = "V Palette";
+
+ // Cast the chart's diagram to the XYDiagram type, to access its axes.
+ XYDiagram diagram = (XYDiagram)VChart.Diagram;
+ if (diagram.AxisY.ConstantLines.Count > 0)
+ diagram.AxisY.ConstantLines.Clear();
+
+ // Create a constant line.
+ ConstantLine constantLineMax = new ConstantLine("Limit(Max)");
+ ConstantLine constantLineMin = new ConstantLine("Limit(Min)");
+ ConstantLine constantDataMax = new ConstantLine(
+ String.Format(" Max({0:#0.000}V:{1:00})", 0, 0));
+ ConstantLine constantDataAvg = new ConstantLine(
+ String.Format(" Avg({0:#0.000}V) - ({1:#0.000}V)", 0, 0));
+ ConstantLine constantDataMin = new ConstantLine(
+ String.Format("Min({0:#0.000}V:{1:00})", 0, 0));
+
+ constantLineMax.Color = Color.Red;
+ constantLineMin.Color = Color.Red;
+
+ // Customize the behavior of the constant line.
+ constantLineMax.Visible = true;
+ constantLineMax.ShowInLegend = true;
+ constantLineMax.LegendText = "Limit(Max)";
+ constantLineMax.ShowBehind = false;
+
+ constantLineMin.Visible = true;
+ constantLineMin.ShowInLegend = true;
+ constantLineMin.LegendText = "Limit(Min)";
+ constantLineMin.ShowBehind = false;
+
+ constantDataMax.Visible = true;
+ constantDataMax.ShowInLegend = true;
+ constantDataMax.LegendText = "Max";
+ constantDataMax.ShowBehind = false;
+ constantDataMax.Color = Color.MediumVioletRed;
+ constantDataMax.Title.TextColor = Color.Black;
+ constantDataMax.Title.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Bold);
+
+ constantDataAvg.Visible = true;
+ constantDataAvg.ShowInLegend = true;
+ constantDataAvg.LegendText = "Avg";
+ constantDataAvg.ShowBehind = false;
+ constantDataAvg.Color = Color.LawnGreen;
+ constantDataAvg.Title.TextColor = Color.Black;
+ constantDataAvg.Title.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Bold);
+
+ constantDataMin.Visible = true;
+ constantDataMin.ShowInLegend = true;
+ constantDataMin.LegendText = "Min";
+ constantDataMin.ShowBehind = false;
+ constantDataMin.Color = Color.BlueViolet;
+ constantDataMin.Title.TextColor = Color.Black;
+ constantDataMin.Title.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Bold);
+
+ // Define its axis value.
+ constantLineMax.AxisValue = 3.85;
+ constantLineMin.AxisValue = 2.5;
+ constantDataMax.AxisValue = 0;
+ constantDataAvg.AxisValue = 0;
+ constantDataMin.AxisValue = 0;
+
+ diagram.AxisY.ConstantLines.Add(constantLineMax);
+ diagram.AxisY.ConstantLines.Add(constantLineMin);
+ diagram.AxisY.ConstantLines.Add(constantDataMax);
+ diagram.AxisY.ConstantLines.Add(constantDataAvg);
+ diagram.AxisY.ConstantLines.Add(constantDataMin);
+
+ // Axis Y
+ diagram.AxisY.VisualRange.Auto = false;
+ diagram.AxisY.VisualRange.AutoSideMargins = false;
+ diagram.AxisY.VisualRange.StartSideMargin = 0;
+ diagram.AxisY.VisualRange.EndSideMargin = 0;
+ diagram.AxisY.VisualRange.MaxValue = 4.0;
+ diagram.AxisY.VisualRange.MinValue = 2.0;
+ diagram.AxisY.WholeRange.MaxValue = 4.0;
+ diagram.AxisY.WholeRange.MinValue = 2.0;
+
+ diagram.AxisY.NumericScaleOptions.AutoGrid = false;
+ diagram.AxisY.NumericScaleOptions.GridAlignment = NumericGridAlignment.Ones;
+ diagram.AxisY.NumericScaleOptions.GridOffset = 0;
+ diagram.AxisY.NumericScaleOptions.GridSpacing = 0.1;
+
+ //diagram.AxisY.GridSpacing = 0.1;
+ diagram.AxisY.Title.Text = "Voltage(V)";
+ //diagram.AxisY.Label.NumericOptions.Precision = 3;
+ diagram.AxisY.Title.Visibility = DevExpress.Utils.DefaultBoolean.True;
+ diagram.AxisY.Title.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular);
+
+ // Axis X
+ diagram.AxisX.VisualRange.MaxValue = seriesVolt.Length;
+ diagram.AxisX.VisualRange.MinValue = 1;
+ diagram.AxisX.VisualRange.Auto = false;
+ diagram.AxisX.VisualRange.AutoSideMargins = false;
+ diagram.AxisX.VisualRange.SideMarginsValue = 0.5;
+
+ diagram.AxisX.Title.Text = "Cell No";
+ diagram.AxisX.Title.Visibility = DevExpress.Utils.DefaultBoolean.False;
+ diagram.AxisX.Title.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular);
+ }
+
+ private void tSeriesInit()
+ {
+ TChart.Series.Clear();
+ TChart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
+
+ seriesTemp = new Series[ModuleData[ModuleID - 1].tempQty];
+
+ for (int i = 0; i < seriesTemp.Length; i++)
+ {
+ seriesTemp[i] = new Series(String.Format("T_{0:00}", i + 1), ViewType.Bar)
+ {
+ DataSource = dtTemp[i],
+ //Label.PointOptions.PointView = PointView.ArgumentAndValues,
+ //Label.PointOptions.ValueNumericOptions.Format = NumericFormat.Number,
+ //Label.PointOptions.ValueNumericOptions.Precision = 3,
+ CrosshairLabelPattern = "T_{A:00} : {V:F1}",
+
+ // Specify data members to bind the series.
+ ArgumentScaleType = ScaleType.Numerical,
+ ArgumentDataMember = "T_No",
+ ValueScaleType = ScaleType.Numerical,
+ };
+ ((SideBySideBarSeriesView)(seriesTemp[i].View)).BarWidth = 2.5;
+ seriesTemp[i].ValueDataMembers.AddRange(new string[] { "Value" });
+ TChart.Series.Add(seriesTemp[i]);
+ }
+
+ TChart.PaletteRepository.Clear();
+ TChart.PaletteRepository.Add("T Palette", tPaletteInit("T Palette", 0));
+ TChart.PaletteName = "T Palette";
+
+ // Cast the chart's diagram to the XYDiagram type, to access its axes.
+ XYDiagram diagram = (XYDiagram)TChart.Diagram;
+ if (diagram.AxisY.ConstantLines.Count > 0)
+ diagram.AxisY.ConstantLines.Clear();
+
+ diagram.Margins.All = 0;
+
+ ConstantLine constantLineMax = new ConstantLine("Limit(Max)");
+ ConstantLine constantLineMin = new ConstantLine("Limit(Min)");
+ ConstantLine constantDataMax = new ConstantLine(String.Format(" Max({0:#0.0}C)", 0));
+ ConstantLine constantDataAvg = new ConstantLine(String.Format(" Avg({0:#0.0}C)", 0));
+ ConstantLine constantDataMin = new ConstantLine(String.Format("Min({0:#0.0}C)", 0));
+
+ constantLineMax.Color = Color.Red;
+ constantLineMin.Color = Color.Red;
+
+ // Customize the behavior of the constant line.
+ constantLineMax.Visible = true;
+ constantLineMax.ShowInLegend = true;
+ constantLineMax.LegendText = "Limit(Max)";
+ constantLineMax.ShowBehind = false;
+
+ constantLineMin.Visible = true;
+ constantLineMin.ShowInLegend = true;
+ constantLineMin.LegendText = "Limit(Min)";
+ constantLineMin.ShowBehind = false;
+
+ constantDataMax.Visible = true;
+ constantDataMax.ShowInLegend = true;
+ constantDataMax.LegendText = "Max";
+ constantDataMax.ShowBehind = false;
+ constantDataMax.Color = Color.MediumVioletRed;
+ constantDataMax.Title.TextColor = Color.Black;
+ constantDataMax.Title.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Bold);
+
+ constantDataAvg.Visible = true;
+ constantDataAvg.ShowInLegend = true;
+ constantDataAvg.LegendText = "Avg";
+ constantDataAvg.ShowBehind = false;
+ constantDataAvg.Color = Color.LawnGreen;
+ constantDataAvg.Title.TextColor = Color.Black;
+ constantDataAvg.Title.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Bold);
+
+ constantDataMin.Visible = true;
+ constantDataMin.ShowInLegend = true;
+ constantDataMin.LegendText = "Min";
+ constantDataMin.ShowBehind = false;
+ constantDataMin.Color = Color.BlueViolet;
+ constantDataMin.Title.TextColor = Color.Black;
+ constantDataMin.Title.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Bold);
+
+ // Define its axis value.
+ constantLineMax.AxisValue = 60.0;
+ constantLineMin.AxisValue = -20.0;
+ constantDataMax.AxisValue = 0;
+ constantDataAvg.AxisValue = 0;
+ constantDataMin.AxisValue = 0;
+
+ diagram.AxisY.ConstantLines.Add(constantLineMax);
+ diagram.AxisY.ConstantLines.Add(constantLineMin);
+ diagram.AxisY.ConstantLines.Add(constantDataMax);
+ diagram.AxisY.ConstantLines.Add(constantDataAvg);
+ diagram.AxisY.ConstantLines.Add(constantDataMin);
+
+ // Axis Y
+ diagram.AxisY.VisualRange.Auto = false;
+ diagram.AxisY.VisualRange.AutoSideMargins = false;
+ diagram.AxisY.VisualRange.StartSideMargin = 0;
+ diagram.AxisY.VisualRange.EndSideMargin = 0;
+ diagram.AxisY.VisualRange.MaxValue = 80.0;
+ diagram.AxisY.VisualRange.MinValue = -30.0;
+ diagram.AxisY.WholeRange.MaxValue = 80.0;
+ diagram.AxisY.WholeRange.MinValue = -30.0;
+
+ diagram.AxisY.NumericScaleOptions.AutoGrid = false;
+ diagram.AxisY.NumericScaleOptions.GridAlignment = NumericGridAlignment.Ones;
+ diagram.AxisY.NumericScaleOptions.GridOffset = 0;
+ diagram.AxisY.NumericScaleOptions.GridSpacing = 5;
+
+ diagram.AxisY.Title.Text = "Temperature(C)";
+ diagram.AxisY.Title.Visibility = DevExpress.Utils.DefaultBoolean.True;
+ diagram.AxisY.Title.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular);
+
+ // Axis X
+ diagram.AxisX.VisualRange.MaxValue = seriesTemp.Length;
+ diagram.AxisX.VisualRange.MinValue = 1;
+ diagram.AxisX.VisualRange.Auto = false;
+ diagram.AxisX.VisualRange.AutoSideMargins = false;
+ diagram.AxisX.VisualRange.SideMarginsValue = 0.5;
+
+ diagram.AxisX.Title.Text = "Temperature No";
+ diagram.AxisX.Title.Visibility = DevExpress.Utils.DefaultBoolean.False;
+ diagram.AxisX.Title.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular);
+ }
+
+ #endregion
+
+ #region DISPLAY DATA
+
+ private void tmrDisplay_Tick(object sender, EventArgs e)
+ {
+ DisplayLevelMasking();
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ DisplayDataUart();
+ break;
+ case csConstData.CommType.COMM_RS485:
+ DisplayDataRs485();
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ DisplayDataSnmp();
+ break;
+ default:
+ break;
+ }
+ // 하위 컨트롤 업데이트
+ var idx = SafeModuleIndex();
+ FaultAlarmGroup.SetData(Config, ModuleData[idx]);
+ }
+
+ void DisplayLevelMasking()
+ {
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ // UART Mode
+ switch (Config.ControlLevel)
+ {
+ case 0: // User Level
+ btnCalib.Text = "Calib";
+ btnCalib.Enabled = false;
+ break;
+ case 1: // Technician Level
+ btnCalib.Text = "Calib";
+ btnCalib.Enabled = true;
+ break;
+ case 2: // Engineer Level
+ btnCalib.Text = "Calib";
+ btnCalib.Enabled = true;
+ break;
+ case 3: // Master Level
+ btnCalib.Text = "Calib";
+ btnCalib.Enabled = true;
+ break;
+ default: // User Level
+ btnCalib.Text = "Calib";
+ btnCalib.Enabled = true;
+ break;
+ }
+ break;
+ case csConstData.CommType.COMM_RS485:
+ switch (Config.ControlLevel)
+ {
+ case 0: // User Level
+ btnCalib.Text = "Calib";
+ btnCalib.Enabled = false;
+ break;
+ case 1: // Technician Level
+ btnCalib.Text = "Calib";
+ btnCalib.Enabled = true;
+ break;
+ case 2: // Engineer Level
+ btnCalib.Text = "Calib";
+ btnCalib.Enabled = true;
+ break;
+ case 3: // Master Level
+ btnCalib.Text = "Calib";
+ btnCalib.Enabled = true;
+ break;
+ default: // User Level
+ btnCalib.Text = "Calib";
+ btnCalib.Enabled = true;
+ break;
+ }
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ // SNMP Mode
+ btnCalib.Enabled = false;
+ btnCalib.Text = "";
+ break;
+ default:
+ break;
+ }
+ }
+
+ void DisplayDataUart()
+ {
+ if (start)
+ {
+ dgVoltage.Text = String.Format("{0:0.0}", Convert.ToDouble(ModuleData[ModuleID - 1].ValueData.voltage) / 10);
+ dgCurrent.Text = String.Format("{0:0.0}", Convert.ToDouble(ModuleData[ModuleID - 1].ValueData.current) / 10);
+ dgSOC.Text = String.Format("{0:0.0}", Convert.ToDouble(ModuleData[ModuleID - 1].ValueData.SOC) / 10);
+ dgSOH.Text = String.Format("{0:0.0}", Convert.ToDouble(ModuleData[ModuleID - 1].ValueData.SOH) / 10);
+ dgTemperature.Text = String.Format("{0:0.0}", Convert.ToDouble(ModuleData[ModuleID - 1].AvgData.maxTemp) / 10); //Byul 21.08.09 "maxTemp"
+ lbFetTemp.Text = String.Format(" FET: {0:##0.0}C", Convert.ToDouble(ModuleData[ModuleID - 1].ValueData.MosTemperature) / 10);
+ lbAmbTemp.Text = String.Format(" AMB: {0:##0.0}C", Convert.ToDouble(ModuleData[ModuleID - 1].ValueData.AmbTemperature) / 10);
+
+ //lbFetTemp.Text = String.Format(" FAULT: 0x{0:X4}", ModuleData[ModuleID - 1].StatusData.protection);
+
+ lbHeatbeat.Text = String.Format("Cycle: {0}", ModuleData[ModuleID - 1].ValueData.cycleCount);
+
+ DisplayCellVoltage();
+ DisplayCellTemperature();
+
+ DisplayInformationUart();
+ DisplayAlarmUart();
+ DisplayStatusStrUart();
+ DisplayAlarmStrUart();
+ }
+ }
+
+ void DisplayDataRs485()
+ {
+ if (start)
+ {
+ dgVoltage.Text = String.Format("{0:0.0}", Convert.ToDouble(ModuleData[ModuleID - 1].ValueData.voltage) / 10);
+ dgCurrent.Text = String.Format("{0:0.0}", Convert.ToDouble(ModuleData[ModuleID - 1].ValueData.current) / 10);
+ dgSOC.Text = String.Format("{0:0.0}", Convert.ToDouble(ModuleData[ModuleID - 1].ValueData.SOC) / 10);
+ dgSOH.Text = String.Format("{0:0.0}", Convert.ToDouble(ModuleData[ModuleID - 1].ValueData.SOH) / 10);
+ dgTemperature.Text = String.Format("{0:0.0}", Convert.ToDouble(ModuleData[ModuleID - 1].AvgData.maxTemp) / 10); //Byul 21.08.09 "maxTemp"
+ lbFetTemp.Text = String.Format(@" AVG: {0:##0.0}C", Convert.ToDouble(ModuleData[ModuleID - 1].ValueData.MosTemperature) / 10);
+ lbAmbTemp.Text = String.Format(@" AMB: {0:##0.0}C", Convert.ToDouble(ModuleData[ModuleID - 1].ValueData.AmbTemperature) / 10);
+
+ lbHeatbeat.Text = String.Format("Cycle: {0}", ModuleData[ModuleID - 1].ValueData.cycleCount);
+ //lbHeatbeat.Text = String.Format("Cycle: {0}", ModuleData[ModuleID - 1].MaxValue.MaxChgCurrent);
+
+ DisplayCellVoltage();
+ DisplayCellTemperature();
+
+ DisplayInformationRs485();
+ DisplayAlarmRs485();
+
+ DisplayStatusStrRs485();
+ DisplayAlarmStrRs485();
+ }
+ }
+
+ void DisplayDataSnmp()
+ {
+ if (start)
+ {
+ dgVoltage.Text = string.Format("{0:0.0}", Convert.ToDouble(ModuleData[0].ValueData.voltage) / 10);
+ dgCurrent.Text = string.Format("{0:0.0}", Convert.ToDouble(ModuleData[0].ValueData.current) / 10);
+ dgSOC.Text = string.Format("{0:0.0}", Convert.ToDouble(ModuleData[0].ValueData.SOC) / 10);
+ dgSOH.Text = string.Format("{0:0.0}", Convert.ToDouble(ModuleData[0].ValueData.SOH) / 10);
+ dgTemperature.Text = string.Format("{0:0.0}", Convert.ToDouble(ModuleData[0].AvgData.maxTemp) / 10); //Byul 21.08.09 "maxTemp"
+ lbFetTemp.Text = string.Format(" FET: {0:##0.0}C", Convert.ToDouble(ModuleData[0].ValueData.MosTemperature) / 10);
+ lbAmbTemp.Text = string.Format(" AMB: {0:##0.0}C", Convert.ToDouble(ModuleData[0].ValueData.AmbTemperature) / 10);
+
+ lbHeatbeat.Text = string.Format("Cycle: {0}", ModuleData[0].ValueData.cycleCount);
+
+ DisplayCellVoltage();
+ DisplayCellTemperature();
+
+ DisplayInformationUart();
+ DisplayAlarmSnmp();
+ DisplayStatusStrSnmp();
+ DisplayAlarmStrSnmp();
+ }
+ }
+
+ private void DisplayInformationUart()
+ {
+ string strInfor = string.Format("V: {0} - Model: {1} - SN: {2}"
+ , ModuleData[ModuleID - 1].Information.SwProductRev
+ , ModuleData[ModuleID - 1].Information.ModelName
+ , ModuleData[ModuleID - 1].Information.HwSerialNumber
+ );
+ gbValue.Text = "Value - " + strInfor;
+ }
+
+ private void DisplayInformationRs485()
+ {
+ string strInfor = string.Format("V: {0} - Model: {1} - SN: {2}"
+ , ModuleData[ModuleID - 1].Information.SwProductRev
+ , ModuleData[ModuleID - 1].Information.ModelName
+ , ModuleData[ModuleID - 1].Information.HwSerialNumber
+ );
+ gbValue.Text = "Value - " + strInfor;
+ }
+
+ private void DisplayInformationSnmp()
+ {
+ string strInfor = string.Format("V: {0} - Model: {1} ({2}) - SN: {3} ({4})"
+ , ModuleData[0].Information.SwProductRev
+ , ModuleData[0].Information.ModelName
+ , ModuleData[0].Information.ProductCode
+ , ModuleData[0].Information.HwSerialNumber
+ , ModuleData[0].Information.ManufacturingDate
+ );
+ gbValue.Text = "Value - " + strInfor;
+ }
+
+ private void DisplayCellVoltage()
+ {
+ try
+ {
+ for (int i = 0; i < seriesVolt.Length; i++)
+ dtVolt[i].Rows[0]["Value"] = Convert.ToDouble(ModuleData[ModuleID - 1].ValueData.CellVoltage[i]) / 1000;
+
+ if (ModuleData[ModuleID - 1].StatusData.cellBallanceStatus != 0x0000)
+ vPaletteUpdate(ModuleData[ModuleID - 1].StatusData.cellBallanceStatus);
+ else
+ vPaletteUpdate(0);
+
+ double maxValue = Convert.ToDouble(ModuleData[ModuleID - 1].AvgData.maxCellVoltage) / 1000;
+ double avgValue = Convert.ToDouble(ModuleData[ModuleID - 1].AvgData.avgCellVoltage) / 1000;
+ double minValue = Convert.ToDouble(ModuleData[ModuleID - 1].AvgData.minCellVoltage) / 1000;
+ double gapValue = Convert.ToDouble(ModuleData[ModuleID - 1].AvgData.diffCellVoltage) / 1000;
+ int maxCno = Convert.ToInt32(ModuleData[ModuleID - 1].AvgData.maxCellNum);
+ int minCno = Convert.ToInt32(ModuleData[ModuleID - 1].AvgData.minCellNum);
+
+ // Cast the chart's diagram to the XYDiagram type, to access its axes.
+ ((XYDiagram)VChart.Diagram).AxisY.ConstantLines[2].Name =
+ String.Format(" Max({0:#0.000}V:{1:00})", maxValue, maxCno);
+ ((XYDiagram)VChart.Diagram).AxisY.ConstantLines[3].Name =
+ String.Format(" Avg({0:#0.000}V) - ({1:#0.000}V)", avgValue, gapValue);
+ ((XYDiagram)VChart.Diagram).AxisY.ConstantLines[4].Name =
+ String.Format("Min({0:#0.000}V:{1:00})", minValue, minCno);
+
+ // Define its axis value.
+ ((XYDiagram)VChart.Diagram).AxisY.ConstantLines[2].AxisValue = maxValue;
+ ((XYDiagram)VChart.Diagram).AxisY.ConstantLines[3].AxisValue = avgValue;
+ ((XYDiagram)VChart.Diagram).AxisY.ConstantLines[4].AxisValue = minValue;
+
+ //VChart.Legend.Visible = true;
+
+ //VChart.Titles[0].Text =
+ // String.Format("Voltage Status");
+
+ //VChart.Invalidate();
+ }
+ catch (Exception)
+ {
+ //MsgBox.ErrorShow(ex);
+ }
+
+ }
+ private void DisplayCellTemperature()
+ {
+ try
+ {
+ for (int i = 0; i < seriesTemp.Length; i++)
+ dtTemp[i].Rows[0]["Value"] = Convert.ToDouble(ModuleData[ModuleID - 1].ValueData.CellTemperature[i]) / 10;
+
+ double maxValue = Convert.ToDouble(ModuleData[ModuleID - 1].AvgData.maxTemp) / 10;
+ double avgValue = Convert.ToDouble(ModuleData[ModuleID - 1].AvgData.avgTemp) / 10;
+ double minValue = Convert.ToDouble(ModuleData[ModuleID - 1].AvgData.minTemp) / 10;
+ int maxCno = Convert.ToInt32(ModuleData[ModuleID - 1].AvgData.maxTempNum);
+ int minCno = Convert.ToInt32(ModuleData[ModuleID - 1].AvgData.minTempNum);
+
+ ((XYDiagram)TChart.Diagram).AxisY.ConstantLines[2].Name = String.Format(" Max({0:#0.0}C:{1:00})", maxValue, maxCno);
+ ((XYDiagram)TChart.Diagram).AxisY.ConstantLines[3].Name = String.Format(" Avg({0:#0.0}C)", avgValue);
+ ((XYDiagram)TChart.Diagram).AxisY.ConstantLines[4].Name = String.Format("Min({0:#0.0}C:{1:00})", minValue, minCno);
+
+ // Define its axis value.
+ ((XYDiagram)TChart.Diagram).AxisY.ConstantLines[2].AxisValue = maxValue;
+ ((XYDiagram)TChart.Diagram).AxisY.ConstantLines[3].AxisValue = avgValue;
+ ((XYDiagram)TChart.Diagram).AxisY.ConstantLines[4].AxisValue = minValue;
+
+ //TChart.Legend.Visible = true;
+
+ //TChart.Titles[0].Text =
+ // String.Format("Temperature Status");
+ }
+ catch (Exception)
+ {
+ //MsgBox.ErrorShow(ex);
+ }
+
+ }
+
+ private void DisplayStatusStrUart()
+ {
+ if (ModuleData[ModuleID - 1].CommFail == false)
+ {
+ if (ModuleData[ModuleID - 1].ShelfCommFail == false)
+ {
+ switch ((int)ModuleData[ModuleID - 1].StatusData.status)
+ {
+ case 0x0000: // Stand by
+ lbStatus.Text = "STANDBY";
+ lbStatus.ForeColor = System.Drawing.Color.Black;
+ break;
+ case 0x0001: // Charging
+ lbStatus.Text = "CHARGING";
+ lbStatus.ForeColor = System.Drawing.Color.Blue;
+ break;
+ case 0x0002: // Discharging
+ lbStatus.Text = "DISCHARGING";
+ lbStatus.ForeColor = System.Drawing.Color.Magenta;
+ break;
+ case 0x0004: // TRIP
+ if ((ModuleData[ModuleID - 1].StatusData.specialAlarm & 0x0001) != 0)
+ {
+ lbStatus.Text = "PWR-OFF"; // "ANTI -THEFT (Comm.)";
+ lbStatus.ForeColor = Color.Red;
+ }
+ else if ((ModuleData[ModuleID - 1].StatusData.specialAlarm & 0x0002) != 0)
+ {
+ lbStatus.Text = "PWR-OFF"; // "ANTI -THEFT (Gyro)";
+ lbStatus.ForeColor = Color.Red;
+ }
+ else
+ {
+ lbStatus.Text = "TRIP";
+ lbStatus.ForeColor = Color.Red;
+ }
+ break;
+ case 0x0008: // Chg-Lmt
+ lbStatus.Text = "CHG-LIMIT";
+ lbStatus.ForeColor = System.Drawing.Color.Blue;
+ break;
+ case 0x8000: // Stand by - Heat
+ lbStatus.Text = "STANDBY-HEAT";
+ lbStatus.ForeColor = System.Drawing.Color.Blue;
+ break;
+ case 0x8001: // Charging
+ lbStatus.Text = "CHARGING-HEAT";
+ lbStatus.ForeColor = System.Drawing.Color.Blue;
+ break;
+ case 0x8002: // Discharging
+ lbStatus.Text = "DISCHARGING-HEAT";
+ lbStatus.ForeColor = System.Drawing.Color.Magenta;
+ break;
+ case 0x8004: // TRIP
+ lbStatus.Text = "TRIP-HEAT";
+ lbStatus.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 0x8008: // Chg-Lmt
+ lbStatus.Text = "CHG-LIMIT-HEAT";
+ lbStatus.ForeColor = System.Drawing.Color.Blue;
+ break;
+ default:
+ lbStatus.Text = "UNKNOWN";
+ lbStatus.ForeColor = System.Drawing.Color.Black;
+ break;
+ }
+ }
+ else
+ {
+ lbStatus.Text = "COMM FAIL";
+ lbStatus.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+ else
+ {
+ lbStatus.Text = "OFF LINE";
+ lbStatus.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+ private void DisplayStatusStrUart124050()
+ {
+ if (ModuleData[ModuleID - 1].CommFail == false)
+ {
+ if (ModuleData[ModuleID - 1].ShelfCommFail == false)
+ {
+ switch ((int)ModuleData[ModuleID - 1].StatusData.status)
+ {
+ case 0x0000: // Stand by
+ lbStatus.Text = "STANDBY";
+ lbStatus.ForeColor = System.Drawing.Color.Black;
+ break;
+ case 0x0001: // Charging
+ lbStatus.Text = "CHARGING";
+ lbStatus.ForeColor = System.Drawing.Color.Blue;
+ break;
+ case 0x0002: // Discharging
+ lbStatus.Text = "DISCHARGING";
+ lbStatus.ForeColor = System.Drawing.Color.Magenta;
+ break;
+ case 0x0004: // TRIP
+ if ((ModuleData[ModuleID - 1].StatusData.errorCode & 0x8000) != 0)
+ {
+ lbStatus.Text = "PWR-OFF"; // "ANTI -THEFT (Comm.)";
+ lbStatus.ForeColor = Color.Red;
+ }
+ else if ((ModuleData[ModuleID - 1].StatusData.errorCode & 0x4000) != 0)
+ {
+ lbStatus.Text = "PWR-OFF"; // "ANTI -THEFT (Gyro)";
+ lbStatus.ForeColor = Color.Red;
+ }
+ else
+ {
+ lbStatus.Text = "TRIP";
+ lbStatus.ForeColor = Color.Red;
+ }
+ break;
+ case 0x0008: // Chg-Lmt
+ lbStatus.Text = "CHG-LIMIT";
+ lbStatus.ForeColor = System.Drawing.Color.Blue;
+ break;
+ case 0x8000: // Stand by - Heat
+ lbStatus.Text = "STANDBY-HEAT";
+ lbStatus.ForeColor = System.Drawing.Color.Blue;
+ break;
+ case 0x8001: // Charging
+ lbStatus.Text = "CHARGING-HEAT";
+ lbStatus.ForeColor = System.Drawing.Color.Blue;
+ break;
+ case 0x8002: // Discharging
+ lbStatus.Text = "DISCHARGING-HEAT";
+ lbStatus.ForeColor = System.Drawing.Color.Magenta;
+ break;
+ case 0x8004: // TRIP
+ lbStatus.Text = "TRIP-HEAT";
+ lbStatus.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 0x8008: // Chg-Lmt
+ lbStatus.Text = "CHG-LIMIT-HEAT";
+ lbStatus.ForeColor = System.Drawing.Color.Blue;
+ break;
+ default:
+ lbStatus.Text = "UNKNOWN";
+ lbStatus.ForeColor = System.Drawing.Color.Black;
+ break;
+ }
+ }
+ else
+ {
+ lbStatus.Text = "COMM FAIL";
+ lbStatus.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+ else
+ {
+ lbStatus.Text = "OFF LINE";
+ lbStatus.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+
+ private void DisplayAlarmStrUart()
+ {
+ if (ModuleData[ModuleID - 1].CommFail == false)
+ {
+ if (ModuleData[ModuleID - 1].ShelfCommFail == false)
+ {
+ switch (ModuleData[ModuleID - 1].StatusData.batteryStatus)
+ {
+ case 0: // NORMAL
+ if ((ModuleData[ModuleID - 1].StatusData.specialAlarm & 0x0001) != 0)
+ {
+ lbAlarm.Text = "FAULT (Comm)";
+ lbAlarm.ForeColor = Color.Red;
+ }
+ else if ((ModuleData[ModuleID - 1].StatusData.specialAlarm & 0x0002) != 0)
+ {
+ lbAlarm.Text = "FAULT (GyroScope)";
+ lbAlarm.ForeColor = Color.Red;
+ }
+ else
+ {
+ if ((ModuleData[ModuleID - 1].StatusData.specialAlarm & 0x0004) != 0)
+ {
+ lbAlarm.Text = "WARNING";
+ lbAlarm.ForeColor = System.Drawing.Color.Orange;
+ }
+ else
+ {
+ lbAlarm.Text = "NORMAL";
+ lbAlarm.ForeColor = System.Drawing.Color.Green;
+ }
+ }
+ break;
+ case 1: // WARNING
+ lbAlarm.Text = "WARNING";
+ lbAlarm.ForeColor = System.Drawing.Color.Orange;
+ break;
+ case 2: // FAULT
+ lbAlarm.Text = "FAULT";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 3: // WARMING UP
+ lbAlarm.Text = "WARMING UP";
+ lbAlarm.ForeColor = System.Drawing.Color.Black;
+ break;
+ case 4: // FAULT (Anti-Theft GyroScope.)
+ lbAlarm.Text = "FAULT (GyroScope)";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 5: // FAULT (Anti-Theft Gyro-Scope)
+ lbAlarm.Text = "FAULT (Comm)";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ default:
+ lbAlarm.Text = string.Format("UNKNOWN ({0})", ModuleData[ModuleID - 1].StatusData.batteryStatus);
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ }
+ }
+ else
+ {
+ lbAlarm.Text = "COMM FAIL";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+ else
+ {
+ lbAlarm.Text = "OFF LINE";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+ private void DisplayAlarmStrUart124050()
+ {
+ if (ModuleData[ModuleID - 1].CommFail == false)
+ {
+ if (ModuleData[ModuleID - 1].ShelfCommFail == false)
+ {
+ switch (ModuleData[ModuleID - 1].StatusData.batteryStatus)
+ {
+ case 0: // NORMAL
+ if ((ModuleData[ModuleID - 1].StatusData.errorCode & 0x8000) != 0)
+ {
+ lbAlarm.Text = "FAULT (Comm)";
+ lbAlarm.ForeColor = Color.Red;
+ }
+ else if ((ModuleData[ModuleID - 1].StatusData.errorCode & 0x4000) != 0)
+ {
+ lbAlarm.Text = "FAULT (GyroScope)";
+ lbAlarm.ForeColor = Color.Red;
+ }
+ else
+ {
+ if ((ModuleData[ModuleID - 1].StatusData.specialAlarm & 0x4000) != 0)
+ {
+ lbAlarm.Text = "WARNING";
+ lbAlarm.ForeColor = System.Drawing.Color.Orange;
+ }
+ else
+ {
+ lbAlarm.Text = "NORMAL";
+ lbAlarm.ForeColor = System.Drawing.Color.Green;
+ }
+ }
+ break;
+ case 1: // WARNING
+ lbAlarm.Text = "WARNING";
+ lbAlarm.ForeColor = System.Drawing.Color.Orange;
+ break;
+ case 2: // FAULT
+ lbAlarm.Text = "FAULT";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 3: // WARMING UP
+ lbAlarm.Text = "WARMING UP";
+ lbAlarm.ForeColor = System.Drawing.Color.Black;
+ break;
+ case 4: // FAULT (Anti-Theft GyroScope.)
+ lbAlarm.Text = "FAULT (GyroScope)";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 5: // FAULT (Anti-Theft Gyro-Scope)
+ lbAlarm.Text = "FAULT (Comm)";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ default:
+ lbAlarm.Text = string.Format("UNKNOWN ({0})", ModuleData[ModuleID - 1].StatusData.batteryStatus);
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ }
+ }
+ else
+ {
+ lbAlarm.Text = "COMM FAIL";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+ else
+ {
+ lbAlarm.Text = "OFF LINE";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+
+ private void DisplayStatusStrRs485()
+ {
+ if (ModuleData[ModuleID - 1].CommFail == false)
+ {
+ if (ModuleData[ModuleID - 1].ShelfCommFail == false)
+ {
+ if ((ModuleData[ModuleID - 1].StatusData.batteryStatus == 4)
+ || (ModuleData[ModuleID - 1].StatusData.batteryStatus == 5))
+ {
+ lbStatus.Text = "PWR-OFF";
+ lbStatus.ForeColor = Color.Red;
+ }
+ else
+ {
+ switch (ModuleData[ModuleID - 1].StatusData.status)
+ {
+ case 0x0000: // Stand by
+ lbStatus.Text = "STANDBY";
+ lbStatus.ForeColor = Color.Black;
+ break;
+ case 0x0001: // Charging
+ lbStatus.Text = "CHARGING";
+ lbStatus.ForeColor = Color.Blue;
+ break;
+ case 0x0002: // Discharging
+ lbStatus.Text = "DISCHARGING";
+ lbStatus.ForeColor = Color.Magenta;
+ break;
+ case 0x0004: // PROTECT
+ lbStatus.Text = "TRIP";
+ lbStatus.ForeColor = Color.Red;
+ break;
+ case 0x0008: // Charging Lmt
+ lbStatus.Text = "CHG-LIMIT";
+ lbStatus.ForeColor = Color.Blue;
+ break;
+ default:
+ lbStatus.Text = string.Format("UNKNOWN({0})", ModuleData[ModuleID - 1].StatusData.status);
+ lbStatus.ForeColor = Color.Black;
+ break;
+ }
+ }
+ }
+ else
+ {
+ lbStatus.Text = "COMM FAIL";
+ lbStatus.ForeColor = Color.Red;
+ }
+ }
+ else
+ {
+ lbStatus.Text = "OFF LINE";
+ lbStatus.ForeColor = Color.Red;
+ }
+ }
+
+ private void DisplayAlarmStrRs485()
+ {
+ if (ModuleData[ModuleID - 1].CommFail == false)
+ {
+ if (ModuleData[ModuleID - 1].ShelfCommFail == false)
+ {
+ switch (ModuleData[ModuleID - 1].StatusData.batteryStatus)
+ {
+ case 0: // NORMAL
+ lbAlarm.Text = "NORMAL";
+ lbAlarm.ForeColor = System.Drawing.Color.Green;
+ break;
+ case 1: // WARNING
+ lbAlarm.Text = "WARNING";
+ lbAlarm.ForeColor = System.Drawing.Color.Orange;
+ break;
+ case 2: // FAULT
+ lbAlarm.Text = "FAULT";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 3: // WARMING UP
+ lbAlarm.Text = "WARMING UP";
+ lbAlarm.ForeColor = System.Drawing.Color.Black;
+ break;
+ case 4: // FAULT (Anti-Theft GyroScope.)
+ lbAlarm.Text = "FAULT (GyroScope)";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 5: // FAULT (Anti-Theft Gyro-Scope)
+ lbAlarm.Text = "FAULT (Comm)";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ default:
+ lbAlarm.Text = string.Format("UNKNOWN ({0})", ModuleData[ModuleID - 1].StatusData.batteryStatus);
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ }
+ }
+ else
+ {
+ lbAlarm.Text = "COMM FAIL";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+ else
+ {
+ lbAlarm.Text = "OFF LINE";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+
+ private void DisplayStatusStrSnmp()
+ {
+ if (ModuleData[0].CommFail == false)
+ {
+ if (ModuleData[0].ShelfCommFail == false)
+ {
+ if ((ModuleData[0].StatusData.batteryStatus == 4)
+ || (ModuleData[0].StatusData.batteryStatus == 5))
+ {
+ lbStatus.Text = "PWR-OFF";
+ lbStatus.ForeColor = Color.Red;
+ }
+ else
+ {
+ switch (ModuleData[0].StatusData.status)
+ {
+ case 0x0000: // Stand by
+ lbStatus.Text = "STANDBY";
+ lbStatus.ForeColor = Color.Black;
+ break;
+ case 0x0001: // Charging
+ lbStatus.Text = "CHARGING";
+ lbStatus.ForeColor = Color.Blue;
+ break;
+ case 0x0002: // Discharging
+ lbStatus.Text = "DISCHARGING";
+ lbStatus.ForeColor = Color.Magenta;
+ break;
+ case 0x0004: // PROTECT
+ lbStatus.Text = "TRIP";
+ lbStatus.ForeColor = Color.Red;
+ break;
+ case 0x0008: // Charging Lmt
+ lbStatus.Text = "CHG-LIMIT";
+ lbStatus.ForeColor = Color.Blue;
+ break;
+ default:
+ lbStatus.Text = "UNKNOWN";
+ lbStatus.ForeColor = Color.Black;
+ break;
+ }
+ }
+ }
+ else
+ {
+ lbStatus.Text = "COMM FAIL";
+ lbStatus.ForeColor = Color.Red;
+ }
+ }
+ else
+ {
+ lbStatus.Text = "OFF LINE";
+ lbStatus.ForeColor = Color.Red;
+ }
+ }
+
+ private void DisplayAlarmStrSnmp()
+ {
+ if (ModuleData[0].CommFail == false)
+ {
+ if (ModuleData[0].ShelfCommFail == false)
+ {
+ switch (ModuleData[0].StatusData.batteryStatus)
+ {
+ case 0: // NORMAL
+ lbAlarm.Text = "NORMAL";
+ lbAlarm.ForeColor = System.Drawing.Color.Green;
+ break;
+ case 1: // WARNING
+ lbAlarm.Text = "WARNING";
+ lbAlarm.ForeColor = System.Drawing.Color.Orange;
+ break;
+ case 2: // FAULT
+ lbAlarm.Text = "FAULT";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 3: // WARMING UP
+ lbAlarm.Text = "WARMING UP";
+ lbAlarm.ForeColor = System.Drawing.Color.Black;
+ break;
+ case 4: // FAULT (Anti-Theft GyroScope.)
+ lbAlarm.Text = "FAULT (GyroScope)";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 5: // FAULT (Anti-Theft Gyro-Scope)
+ lbAlarm.Text = "FAULT (Comm)";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ default:
+ lbAlarm.Text = string.Format("UNKNOWN ({0})", ModuleData[0].StatusData.batteryStatus);
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ }
+ }
+ else
+ {
+ lbAlarm.Text = "COMM FAIL";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+ else
+ {
+ lbAlarm.Text = "OFF LINE";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+
+ private void DisplayAlarmUart()
+ {
+ }
+
+ private void DisplayAlarmRs485()
+ {
+ }
+
+ private void DisplayAlarmSnmp()
+ {
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+
+ private void btnParam_Click(object sender, EventArgs e)
+ {
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ foreach (Form frm in Application.OpenForms)
+ {
+ if (frm.Name == "fmxParamConfig")
+ {
+ frm.Activate();
+ return;
+ }
+ }
+ fmxParamConfig ParamConfigForm = new fmxParamConfig(ModuleID, Config, ModuleData[ModuleID - 1].ParamData);
+
+ ParamConfigForm.OnUpdate += UpdateParam;
+ ParamConfigForm.OnCommand += ParamSetCmd;
+ ParamConfigForm.Show();
+ break;
+ case csConstData.CommType.COMM_RS485:
+ FmxInformation InformationForm1 = new FmxInformation(ModuleID, Config, ref ModuleData[ModuleID - 1]);
+
+ InformationForm1.ShowDialog();
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ FmxInformation InformationForm2 = new FmxInformation(ModuleID, Config, ref ModuleData[ModuleID - 1]);
+
+ InformationForm2.ShowDialog();
+ break;
+ default:
+ break;
+ }
+ }
+
+ private void btnCalibration_Click(object sender, EventArgs e)
+ {
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ fmxCalibration CalibrationForm =
+ new fmxCalibration(ModuleID, Config, ModuleData[ModuleID - 1].ParamData, ModuleData[ModuleID - 1].CalibrationData);
+
+ CalibrationForm.OnUpdate += UpdateCalibration;
+ CalibrationForm.OnCommand += ParamSetCmd;
+ CalibrationForm.ShowDialog();
+ break;
+ case csConstData.CommType.COMM_RS485:
+ fmxAntiTheft AntiTheftForm = new fmxAntiTheft(ModuleID, ModuleData[ModuleID - 1].CalibrationData);
+
+ AntiTheftForm.OnUpdate += UpdateCalibrationRS485;
+ AntiTheftForm.OnCommand += AntiTheftSetCmd; // OnSendUartData
+ AntiTheftForm.OnSendUartData += OnSendUartData;
+ AntiTheftForm.ShowDialog();
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ break;
+ }
+ }
+
+ #endregion
+
+ #region CONTROL EVENT FUNCTION
+
+ private void UpdateParam(object sendor)
+ {
+ ((fmxParamConfig)sendor).UpdateData(ModuleData[ModuleID - 1].ParamData, ModuleData[ModuleID - 1].CalibrationData);
+ }
+
+ private void UpdateCalibration(object sendor)
+ {
+ ((fmxCalibration)sendor).UpdateData(ModuleData[ModuleID - 1].ParamData, ModuleData[ModuleID - 1].CalibrationData, ModuleData[ModuleID - 1]);
+ }
+
+ private void UpdateCalibrationRS485(object sendor)
+ {
+ ((fmxAntiTheft)sendor).UpdateData(ModuleData[ModuleID - 1].ParamData, ModuleData[ModuleID - 1].CalibrationData, ModuleData[ModuleID - 1]);
+ }
+
+ private void ParamSetCmd(int mID, int mode, int index, int flag,
+ ref CsDeviceData.DeviceModuleData.DeviceParamData aParam,
+ ref CsDeviceData.DeviceModuleData.DeviceCalibration aCalib)
+ {
+ OnCommand?.Invoke(mID, mode, index, flag, ref aParam, ref aCalib);
+ }
+
+ // RS485 Control Function
+ private void AntiTheftSetCmd(int mID, int mode, int index, int flag,
+ ref CsDeviceData.DeviceModuleData.DeviceParamData aParam,
+ ref CsDeviceData.DeviceModuleData.DeviceCalibration aCalib)
+ {
+ OnCommand?.Invoke(mID, mode, index, flag, ref aParam, ref aCalib);
+ }
+
+ #endregion
+
+ #region HELPERS
+ private int SafeModuleIndex()
+ {
+ // ModuleId는 1-based로 보이므로 내부 인덱스는 0-based
+ int idx = Math.Max(0, ModuleID - 1);
+ if (ModuleData == null || ModuleData.Length == 0) return 0;
+ if (idx >= ModuleData.Length) idx = 0;
+ return idx;
+ }
+
+ private ref CsDeviceData.DeviceModuleData GetModule()
+ {
+ int idx = SafeModuleIndex();
+ return ref ModuleData[idx];
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucShelfStatus.resx b/LFP_Manager/Controls/ucShelfStatus.resx
new file mode 100644
index 0000000..88845ee
--- /dev/null
+++ b/LFP_Manager/Controls/ucShelfStatus.resx
@@ -0,0 +1,1158 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ True
+
+
+
+
+ /9j/4AAQSkZJRgABAQEAAAAAAAD/2wBDAAcHBwcIBwgJCQgMDAsMDBEQDg4QERoSFBIUEhonGB0YGB0Y
+ JyMqIiAiKiM+MSsrMT5IPDk8SFdOTldtaG2Pj8D/2wBDAQcHBwcIBwgJCQgMDAsMDBEQDg4QERoSFBIU
+ EhonGB0YGB0YJyMqIiAiKiM+MSsrMT5IPDk8SFdOTldtaG2Pj8D/wgARCAhwDwADASIAAhEBAxEB/8QA
+ HAABAAICAwEAAAAAAAAAAAAAAAcIBQYBAwQC/9oACAEBAAAAALIgAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAOvs5AAAAAA
+ Bx4/K9Hp7XIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADzx6AAAAAAAAA
+ AAAADffaAAAAABr2h6fq+BxHR8cfXZ35XMZ/Zdu3DMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAACMwAAAAAAAAAAAAASN3AAAAADBQ7FerfIAA7NmkWTd/wDsAAAAAAAAAAAAAAAA
+ AQxX8AAAPv79Hu9+WzWxbXuPuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZgAAAAAAAAAAAAAkbuAAAA
+ AYOv8SdAAAAZq2m4AAAAAAAAAAA41vUMN5PTlNr237AAAABCtawAAAAHdtkmyxs3IAAAAAAAAAAAAAAA
+ AAwGsyJyAAAAAAAAAAAAAEZgAAAAAAAAAAAAAkbuAAAAAhyuXhDnYZC3fYcr7PjrxmL1vSNAxQFlpoAA
+ AAAAAAAAGMhWItd+Q5yksTjsAAAAAjqJuvH69rHWAAAAD73+epCAAAAAAAAAAAAAAAAAxUGwmvd2gAAA
+ AAAAAAAAABGYAAAAAAAAAAAAAJG7gAAAA6q0w7wO6WZr3PkAOmNa9asE22RAAAAAAAAAAIerpjRz9/HA
+ 9E5z/wBgAAAAOMHV3QAcyrvXfwA6fNiMFq+t9AHMk2WzwAAAAAAAAAAAAAAADr0WH4p8r13u7QAAAAAA
+ AAAAAAAjMAAAAAAAAAAAAAEjdwAAAA+KsxUG72c2sAAdVYojEhW8AAAAAAAAAA660Q7wZidpMyuLiWB/
+ MN5tnkgAAAAMFSLrCRLc8gAHk0eLooxgPdZ6UgAAAAAAAAAAAAAADGazpeh6BiQ9d7u0AAAAAAAAAAAA
+ AIzAAAAAAAAAAAAABI3cAAAAK9QMEvWb7QAAfFUIzMzeTkAAAAAAAAAFZYbG62xzAR/UfpG53E7wAAAA
+ KV6qE3WQAAA8sKwJ4A+7JTSAAAAAAAAAAAAAAB80VxoB673doAAAAAAAAAAAAARmAAAAAAAAAAAAACRu
+ 4AAAA0ennwJUtR9AAAMTSfHvu9GTAAAAAAAAACH6xcGYubmQK+wGE4WOAAAAAqXGoTzYUAAAwVUdMD7t
+ XKAAAAAAAAAAAAAAAPmqGKw2C+Qeu93aAAAAAAAAAAAAAEZgAAAAAAAAAAAAAkbuAAAAKe6GMzdXIAAA
+ CvUDFwt8AAAAAAAAAGLpPjRZuYwHjpHiR6bz+4AAAAFWYnCdrEAAADwU11oMldPMgAAAAAAAAAAAAAAO
+ NZqrqQeu93aAAAAAAAAAAAAAEZgAAAAAAAAAAAAAkbuAAAAaXTbgWHncAAAMDSPrWSmwAAAAAAAAAV3g
+ kZm73eAQfXELcSMAAAACrkSBO1iAAAA0Sn3yExWcAAAAAAAAAAAAAAAEf1C4Hrvd2gAAAAAAAAAAAABG
+ YAAAAAAAAAAAAAJG7gAAAFdYLH1drYgAAAU60ZMNnQAAAAAAAADz0exQmqygA6KZaqLib0AAAACsEQBO
+ 1iAAAAVGjoPReLKAAAAAAAAAAAAAAAHkop5x673doAAAAAAAAAAAAARmAAAAAAAAAAAAACRu4AAABTjS
+ Bk71cgAAAgSvjcrmAAAAAAAAAEZ1NC18ngBrFR8A3a4nYAAAACsEQBO1iAAAARfVEFmZlAAAAAAAAAAA
+ AAAAFGMQPXe7tAAAAAAAAAAAAACMwAAAAAAAAAAAAASN3AAAAfFGMWNluyAAABpNN3qvd3AAAAAAAAAK
+ 4QgObvZ8AHl0Tnfe8GPrOsTnwAACsEQBO1iAAAAeOivnCXbQgAAAAAAAAAAAAAACjmEHrvd2gAAAAAAA
+ AAAAABGYAAAAAAAAAAAAAJG7gAAAPPQ/pGevAAAAB00S8nNz9uAAAAAAAAAU60Yeu+H2AAANKpsuduAA
+ ABWCIAnaxAAAAFMdPDd7jgAAAAAAAAAAAAAACj+BHrvd2gAAAAAAAAAAAABGYAAAAAAAAAAAAAJG7gAA
+ APihnnHfev2AAAAVeyciyB6QAAAAAAAAFFMYNju1yAAAIerEuduAAABWCIAnaxAAAAFVIsDarqAAAAAA
+ AAAAAAAAACj+BHrvd2gAAAAAAAAAAAABGYAAAAAAAAAAAAAJG7gAAAOKM4gLYyaAAAAAAAAAAAAADyUS
+ 6RudywAAArRDC524AAAFYIgCdrEAAAAVbiUNuugAAAAAAAAAAAAAAAKP4Eeu93aAAAAAAAAAAAAAEZgA
+ AAAAAAAAAAAAkbuAAAAU60YJPteAAAAAAAAAAAAADDUb4G/XAAAAHFJNdXO3AAAArBEATtYgAAACqcWh
+ IVvAAAAAAAAAAAAAAABR/Aj13u7QAAAAAAAAAAAAAjMAAAAAAAAAAAAAEjdwAAACucGh93J3IAAAAAAA
+ AAAAAANfpCEi25AAAGkU4LnbgAAAVgiAJ2sQAAABTfSQmuyYAAAAAAAAAAAAAAAo/gR673doAAAAAAAA
+ AAAAARmAAAAAAAAAAAAACRu4AAABoVP+A3C4vpAAAAAAAAAAAAAGEo4EkW2AAAFYIgLnbgAAAVgiAJ2s
+ QAAADrotjgtLLIAAAAAAAAAAAAAAAo/gR673doAAAAAAAAAAAAARmAAAAAAAAAAAAACRu4AAAB8Uq1kE
+ l2r9AAAAAAAAAAAAABhKOBJFtgAADUaadRc7cAAACsEQBO1iAAAAaRTngeq8WSAAAAAAAAAAAAAAAFH8
+ CPXe7tAAAAAAAAAAAAAHVpvIAAAAAAAAAAAAAbZ6gAAACIavgb1arNAAAAAAAAAAAAAMJRwJItsAAA8d
+ PtOFztwAAAKwRAE7WIAAABWyFAmCzwAAAAAAAAAAAAAAAUfwI9d7u0AAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAA66daUBlrLyiAAAAAAAB18c/X0AAAAwlHAki2wAAGMqpH4XO3AAAArBEATtYgAAAMJSjxj13S2E
+ AAAOPhz9cgAAAAAB8cc/YAAAUfwI9d7u0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa5TTHgcylZDNgAA
+ AAAA1yOdK1bDY/q+vXk9l2+Qd77QAD484YClYSJa8Aej7B5okgDCAuNtoH16OQAVgiAJ2sQAAAOKoxgF
+ j5vAAAa9HGlanhvB19nfktg2+Q5C7AAABHtcrFyIBjItjrUcR1ejLbVvkqZwAACj+BHrvd2gDp6gA7+w
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAGk1G8AD2TrOXrAAAAAA6YjhjTPkAGXl+cMwABGtUQ46g+uwAWllN
+ 8xrq+lR5jQHbyAvZ7AAVgiAJ2sQAAAK+wGExWb5AADriqE9J+AAZudpp7AAAaZAsYfNi5zDCwHEXkAO6
+ WrF5MAAKP4Eeu93aAY2jIALHzSAAAAAAAAAAAAAAAAAAAAAAAAAAAABqlTdeAM3Psw9oAAAAAjKuOuB2
+ 57P+nqweA8geydp37QAjGp4AAAtPK7poV8AAAL3ZAAFYIgCdrEAAAOmucKcHM02R+wAAj+tmqB3bFnu3
+ Ha1i+A362GQAA+NYjWKtM+Sf5/OIXrz4Dn74+AM3bXbgABR/Aj13u7QDH0V+OAD6slNQAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAADH1hjDgA2Wf5W7AAAAAeetsO/I3WbZJyYdGkw/E3nG7WszgA06DQ8UYhmZCAE1by
+ 6qwg0LAhJOSAWZ9QAKwRAE7WIAAAj+t+oj3WQmAAAOK+wP8AAzc8StlR8adBMWcDdLg+kAQtGGn4rgE4
+ 2NeSsEVm4TRIuX69fjiEsGGVudmwACj+BHrvd2gDy4yIK/cD0zBKu1ZLsAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAOIgrjjwBtNgJR7AAAADwVL0Qe2yMvfQA1ysGhjMW72sAAwlHAki2wAACq0VBc7cAAACsEQBO1i
+ AABjYyhrRuDtliw2bAABWqFglizHuAIbrP8AIl6z/IBUiOACZLNY+pOjspY+WfoHirBFoSVbQAAo/gR6
+ 73doANNppwbfanZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDVxir5AG12Bk/7AAAB01F0EZK3O5gAdNXY
+ pGVuNsYADCUcCSLbAAAKrRUFztwAAAKwRAE6WKAfPR5/FhNb1HRNO6DnMStNWygAAQ1WfgSjav6ACu0F
+ Dm32/gEbYLw6NGXWEr2bqJpDdrWZwA6qZ6kObk7oAAo/gR673doAeKoelEh2v9gAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAI8rjqQAbbP8o8gAACuMHj7tzIQAB0090kbbcn0AAYSjgSRbYAABVaKguduAAABWCIA7
+ +8B89fT8h9ZHbt6kfd+0AAB5qQYke67OXABjKPeUSFbwACE62hI3dGaS7U+oAItqmE12TAAUfwI9d7u0
+ AeGpmhEl2q9IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADrh2AMMAG52FkXkAADSKd/Amey4AAapTLpE7WI
+ AAwlHAki2wAACq0VBc7cAAACsEQAAADbNuzWb2jas5yAABHFSAnOxYACpcajsvRkgAeKivQOeEk2u7wA
+ eaivkGyXaAAUfwI9d7u0A8NSdFJRtN3gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB44SgvHADmRbGbYAAC
+ ocej1XeywAAKxQ8O+62wgAwlHAki2wAACq0VBc7cAAACsEQAAAAH1npFlCQ+4AARZVQdl28+AAgCAAtl
+ JgAFIMADd7e+oABTvRR2XpyIAFH8CPXe7tAY2pOkks2g7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGOg
+ yE/CAO6cJ/8ASAAaVTfgTJZoAADVaW/ImWzIAMJRwJItsAAAqtFQXO3AAAArBEAS/NoA7ejzYzGYTXdR
+ 1fzgzMzTZkwAGIpH5CYrOAAEQ1fCxs4gAUv1EM3cvMAAFXYjC524AAUfwI9d7u0DFVI00mOy/YAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAGLhCE/AANptTtgACtULBcPewAAFM9NHrvJ7wAwlHAki2wAACq0VBc7
+ cAAACsEQBO1iAAAeTRIyijFhkJ8m7sAA0CCuiRJx7gACLqpBO9hwAKaaYO23u+AACt8IhbaSAAKP4Eeu
+ 93aDD1G1Imiyn0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxsIwh4AD1WdlcAHXRzEDKXn+wAAEAQAFn
+ ZhADCUcCSLbAAAKrRUFztwAAAKwRAE7WIAAAPNEcAYUN0tPsYAAAACNKmBN1kAAKbaUM7eEAAK9QMFr5
+ PAAo/gR673doYSourE32O5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADGwXCPlAfdkJrADUKYBKNrQAA
+ DQKgBKFrgAwlHAki2wAACq0VBc7cAAACsEQBO1iAAAA8VbIi4GStfvoAAAAEaVMCbbIgAU20oZ28IAAQ
+ BAAWslIACj+BHrvd2jBVC1tzO9hgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCV2if5A+rPS8AIUrYF
+ hZ5AAAMfRXrGUvR9ADCUcCSLbAAAKrRUFztwAAAKwRAE7WIAAABxBdePkeq2++gAAAAjSpgTbZEACm2l
+ DO3hAACA6+hayUgAKP4Eeu93aa/UPXXNgZ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABH1Y9eA77jb
+ iAVlhsLXyeAAAKOYQc3a2MAYSjgSRbYAABVaKguduAAABWCIAnaxAAAACAq/Bkrl7CAAAAOmG61hNtkQ
+ AKbaUM7eEAAIDr6FrJSAAo/gR673drW6iYA77p7IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4KwRe
+ Bt9zPsBT7QguXuYAAApxpAWwk4AYSjgSRbYAABVaKguduAAABWCIAnaxAAAAD5qTHIb5cD6AAADFaTo2
+ haf4gTbZEACm2lDO3hAACA6+hayUgAKP4Eeu93brFRMGG/W/5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA+K2QuBZ2YQFIMAF4s4AAAKpRcFj5vAGEo4EkW2AAAVWioLnbgAAAVgiAJ2sQAAAAa5SnqC1ErAAA
+ eLQY3j3WusATbZEACm2lDO3hAACA6+hayUgAKP4Eeu92sVGwwFlJqAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAfNWYpBtN0/oHzRLwBfP1gAACsMPhPlggBhKOBJFtgAAFVoqC524AAAFYIgCdrEAAAACrEUBu
+ dywAB545iON/GHOakf2wgE22RAAptpQzt4QAAgOvoWslIACj+BHst7UzEtj1wPbdLPgAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAPHTLWg5uHvQPPRHzj7vv2AAACtsJhNdkwBhKOBJFtgAAFVoqC524AAAFYIg
+ CdrEAAAACMqnBzdvYgAMPC8NYYOdrlGTtw+40qYE22RAAptpQzt4QAAgOvoWslIACj+BH37PAlC0tO9O
+ CRLcfQAAAAAAAAAAA6dXAAAAAAAAAAAAABsvpAAAAAAAAARxUngJzsWDx0T6R331+gAABXKDgmSzQAwl
+ HAki2wAACq0VBc7cAAACsEQBO1iAAAABi6MfAWbmMAMdAsMeMMhLsv7jyI0qYE22RAAptpQzt4QAAgOv
+ oWslIACj+BAkq1vfp1N+oLNzGAAAAAAAAAAAEZgAAAAAAAAAAAAAkbuAAAAAAAAAcUy08NyuYDyUS6R3
+ X07AAABXCEAmWzIAwlHAki2wAACq0VBc7cAAACsEQBO1iAAAABxRfFBOVjADiI654oMvOUze8CNKmBNt
+ kQAKbaUM7eEAAIDr6FrJSAAo/gQSJbL0FeIIDIXTzYAAAAAAAAAAAjMAAAAAAAAAAAAAEjdwAAAAAAAA
+ BBFeA9l7e0OqiHlH1fXvAAAFaYXCb7HgDCUcCSLbAAAKrRUFztwAAAKwRAE7WIAAAACk+shLdowHirDF
+ vA75rnzIAEaVMCbbIgAU20oZ28IAAQHX0LWSkABR/AhvttvWPNTDWQku2XIAAAAAAAAAABGYAAAAAAAA
+ AAAAAJG7gAAAAAAAADRKeBzeXMBxRPHBe3IgAACrcShPtgQBhKOBJFtgAAFVoqC524AAAFYIgCdrEAAA
+ ABSfWQlm0oGNqLpobdaPbQAjSpgTbZEACm2lDO3hAACA6+hayUgAKP4Eei8uRBolP/gLQy6AAAAAAAAA
+ AARmAAAAAAAAAAAAACRu4AAABxx9AAAABiqMfI5u1sYKR66F2tkAAAFRY7Cx83gDCUcCSLbAAAKrRUFz
+ twAAAKwRAE7WIAAAACjGICabKg6qiaCEk2p9gAI0qYE22RAAptpQzt4QAAgOvoWslIACj+BHrvd2gVrh
+ UMldTMAAAAAAAAAAAIzAAAAAAAAAAAAABI3cAAACO4rj2d5jAAAADz0N6xzeHOAqDH4XE3oAAAUp1cLX
+ SgAMJRwJItsAAAqtFQXO3AAAArBEATtYgAAAAeeiPnCwc9ggavQblcP0gARpUwJtsiABTbShnbwgABAd
+ fQtZKQAFH8CPXe7tA8lKsCEpWr5AAAAAAAAAAAjMAAAAAAAAAAAAAEjdwAAAK7wSk22IAAAAeah3WOy9
+ vtBWmFws/L4AAB10P8o5uptIAwlHAki2wAACq0VBc7cAAACsEQBO1iAAAABqtKwWvk8MbSLwD7ubtwAC
+ NKmBNtkQAKbaUM7eEAAIDr6FrJSAAo/gR673doCN6lcBaiVgAAAAAAAAAAIzAAAAAAAAAAAAABI3cAAA
+ DQKgPZeb2AAAADC0d+RmbycghWtYTtYgAAA1alfA916u4AYSjgSRbYAABVaKguduAAABWCIAnaxAAAAA
+ hqswfV5MwEM1nCSLbAAEaVMCbbIgAU20oZ28IAAQHX0LWSkABR/Aj13u7QCrsRhlbq5QAAAAAAAAAAEZ
+ gAAAAAAAAAAAAAkbuAAAB00Yxy0ctgAAACO6ihJtsQNPpiG/XAAAAIcrIEhW8ADCUcCSLbAAAKrRUFzt
+ wAAAKwRAE7WIAAAAFSI4DdbkchVWKwspNQABGlTAm2yIAFNtKGdvCAAEB19C1kpAAUfwI9d7u0AxtKsQ
+ Er2nAAAAAAAAAABGYAAAAAAAAAAAAAJG7gAAAKnxi3q4fIAAABXSDAsnNYHXRnFj03r9QAACqsVhYidg
+ AwlHAki2wAACq0VBc7cAAACsEQBO1iAAAADXKU9QWVmkOKV6sFvJCAAI0qYE22RAAptpQzt4QAAgOvoW
+ slIACj+BHrvd2gCK6qhza2UAAAAAAAAAAAjMAAAAAAAAAAAAAEjdwAAAEI1vc3D3oAAAB00jwY9F3cyA
+ rJDgWulAAADyUa8I+7rbKAGEo4EkW2AAAVWioLnbgAAAVgiAJ2sQAAAAVdiMMxdr2BxRbFhcTegACNKm
+ BNtkQAKbaUM7eEAAIDr6FrJSAAo/gR673doAVRi8MxdXIgAAAAAAAAACMwAAAAAAAAAAAAASN3AAAAah
+ THhvlwPoAAACE62hMFngDRadhJlsgAAIcrIEhW8ABhKOBJFtgAAFVoqC524AAAFXIkCdrEAAAAI1qb8h
+ ZiZgcUVxgW6kQAAjSpgTbZEACm2lDO3hAACA6+hayUgAKP4Eeu93aAGFpXjwl20IAAAAAAAAAAjMAAAA
+ AAAAAAAAAEjdwAAAHXRXHlmpkAAABrlNMePbdTOgHzTnSR2XR2kAAOqlusDm20jgA12kYSNbgAABViKA
+ ubuIAABViKAnew4AAAGnVDxwSLbf6ApRrAWUmoAAjSpgTbZEACmuljOXiAACvsBhauUwAKPYIeu9vcAC
+ HKyBzbKSwAAAAAAAAACMwAAAAAAAAAAAAASN3AAAAKgaAeu4W4gAADFVB1Qc2WmcAI+qHwJJtqAAEHVy
+ CRbccgA1mk4SHbsAABWeGQt9IAAABVCMAm+x4AAAI3q1jg2S4mWAVWioJMtkAA+KwRGE02VAApjp4zV4
+ +QABXyBAtRKwAFHMIPTfDtAB81HjsM5dP3gAAAAAAAAAIzAAAAAAAAAAAAABI3cAAAArpBgy9uttAAAa
+ 1VDVQmey4AFYYfHNl5mAANQp54x7rm7GABo1Og3W5IAACB68hZiZgAACmemhLlogAABi6/wz1hsNvNhA
+ Iiq8HZc/awAeSrsXAlW1IAFJNcGTvT9AACt8IhZ2YQAKL4kdt8+4ADXqW+QJjs2AAAAAAAAAAjMAAAAA
+ AAAAAAAAEjdwAAACJqtB7bJS9yAAOuGq8eEJjsx9gAeKnepDss1MAAGnVKw4+7UykAAh2sYZS8/2AABH
+ 1Qgk62AD4+wAxdHfOGdu52gAA6tJiWJPCDd7XZkAeak+CDabe5gAajVzUgNtuiADool5R33w7wABVmJw
+ n+fwAeCi3SObv54ABB1cg+rVyiAAAAAAAAABGYAAAAAAAAAAAAAJG7gAAAGq0rA3md5H7wAeCKYP1YO6
+ wU6fQABhqh6sOZlsT7wD4hyufjHbZeYgAHmp9pYLPy+AAB10hwY+7g70HXDMK3H9oB4qxRWBvktZjuAH
+ V5vFi8Bq+o48D0TpPncACNKnfIZixkrdgNfguG+n6njR49H3dbZQAiyqgLdyGAAeakeGDdrjfQAQ3WUF
+ jpwAAfFO9ID1WilIAAAAAAAAAEZgAAAAAAAAAAAAAkbuAAAAeWiPSAye/wC87RnMn6PT5fBrWoaDoPlB
+ uVl91AABj6yRbwMlMss7X9jDxlCuoBm7RSCAMLrvxi9WiTWAOyUpDzvq7dnyQACHqxB77CST7sPHsMas
+ nCxw0KMenyYDSvCAAAAAeqWZ42MAAhCuXyDNSLtuR6Nd0LTOt7LKS9F9UQ3izeS0fJ78apjsbo0KeMGY
+ nfa/Zu30A1DHYKGdEAkqXsvs+YGj+fFaDDfQDumff8lltqADVqY9AcyJK+zd+49gAAAAAAAAEZgAAAAA
+ AAAAAAAAkbuAAAAIiibQPMABy4Ac7VOst/YAADiLq8a0DIbD7OvB4brD0THYPIABBddQAAWhl0ABxWOH
+ gOeBv1pM4IVrWAAAAAOfdvcmynlAAARVWjGgAcyDZXZ3FUYwDlxNVlCo8cgAei9nqAU10sACyM2nzRPH
+ gAJEt0ACAIAAO+8GXAAAAAAAAAjMAAAAAAAAAAAAAEjdwAAAAeCPY90DWekAAc5WS5bkHkAAAHXGEO6B
+ 5QA+tjleZM8ABD8GgAAsLJoAB8whAWPA52eeJb+wiOCQAAADnu9fuy+d2Pbtm7wAABi4FiDHAHokSbZF
+ Dz1vh7qHOwzrM5WbRgAO64noAVX1UACdJePmnfjAAbvZsAHXUvCgO23WTAAAAAAAAAjMAAAAAAAAAAAA
+ AEgewAAAAA8Go6frGtYHE+fp+XZ3+3YNo3DeNv7gAAAAePSdO1vDeDr59GYzu1btsnIAAAAAAAA8EY6J
+ rvm7c5tEibn9gAAAAAAAAAAPNH2i6ziHdmNi3HfskAYTQcPzmds2n6AAAAAAAAAAAAAAAAAAAAAAAOOn
+ oAAAAAAAAAAAAAD1/YAAAAAB14vG+X79mUyHIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAD//xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAgBAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAIAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAACgAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAACAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAoAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAgAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAKAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAIAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAACgAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAACAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAoAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAACgAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAACAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAgAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAIAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAACAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAgAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAA/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAIAQMQAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAA
+ ACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAA
+ AAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA
+ AAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIA
+ AAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC
+ AAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ ACAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAgAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAIAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAACAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAgAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/EAFMQAAEDAgICCwsICAUEAgMBAQECAwQA
+ BQYHESASExUhMTZAQVFSkRYwMjRTVXFzdJKxFCIjQmBhcqEQFzNQVIGTsiQ1YnCEQ2SCwURjJtHgg4D/
+ 2gAIAQEAAT8A/wD7/wD/AP8AgTwqABJrdCN1h2it0I3WHaK3QjdYdordCN1h2it0I3WHaK3QjdYdordC
+ N1h2it0I3WHaK3QjdYdordCN1h2it0I3WHaK3QjdYdordCN1h2it0I3WHaK3QjdYdordCN1h2it0I3WH
+ aK3QjdYdordCN1h2it0I3WHaK3QjdYdordCN1h2it0I3WHaK3QjdYdordCN1h2it0I3WHaK3QjdYdord
+ CN1h2it0I3WHaK3QjdYdordCN1h2it0I3WHaK3QjdYdordCN1h2it0I3WHaK3QjdYdordCN1h2it0I3W
+ HaK3QjdYdordCN1h2it0I3WHaK3QjdYdordCN1h2it0I3WHaK3QjdYdordCN1h2it0I3WHaK3QjdYdor
+ dCN1h2it0I3WHaK3QjdYdordCN1h2it0I3WHaK3QjdYdordCN1h2it0I3WHaK3QjdYdordCN1h2it0I3
+ WHaK3QjdYdordCN1h2it0I3WHaK3QjdYdordCN1h2it0I3WHaK3QjdYdordCN1h2it0I3WHaK3QjdYdo
+ rdCN1h2it0I3WHaK3QjdYdordCN1h2it0I3WHaK3QjdYdordCN1h2it0I3WHaK3QjdYdordCN1h2it0I
+ 3WHaK3QjdYdordCN1h2it0I3WHaKEyKOFQP8xSFBSdkDpB/dRNFbY4VpH86duUJrw5CB/wCQpV/tSRvy
+ m/eTQxFaVDQmUj7/AJyabvVq3iJCD/5CmpUV7wXkdtbNJ+sO3/8A5am+JvHf06KK16fCNbYvrGtsX1jW
+ 2L6xrbF9Y1ti+sa2xfWNbYvrGtsX1jW2L6xrbF9Y1ti+sa2xfWNbYvrGtsX1jW2L6xrbF9Y1ti+sa2xf
+ WNbYvrGtsX1jW2L6xrbF9Y1ti+sa2xfWNbYvrGtsX1jW2L6xrbF9Y1ti+sa2xfWNbYvrGtsX1jW2L6xr
+ bF9Y1ti+sa2xfWNbYvrGtsX1jW2L6xrbF9Y1ti+sa2xfWNbYvrGtsX1jW2L6xrbF9Y1ti+sa2xfWNbYv
+ rGtsX1jW2L6xrbF9Y1ti+sa2xfWNbYvrGtsX1jW2L6xrbF9Y1ti+sa2xfWNbYvrGtsX1jW2L6xrbF9Y1
+ ti+sa2xfWNbYvrGtsX1jW2L6xrbF9Y1ti+sa2xfWNbYvrGtsX1jW2L6xrbF9Y1ti+sa2xfWNbYvrGtsX
+ 1jW2L6xrbF9Y1ti+satWgwGNJPB+5SQBpJq4Yuw5bAoy7i0COFIUCauGcuH42kRGHpJ9ypmdlzKv8HbW
+ kfjJJqVmtjB8nYS0sjoQmpON8Uyv2t2fPoNOXu7unSu4SFelZo3Gerhlun0rNGbLP/yHPeNCZLHA+57x
+ oT5o/wDlO+8aFzuSeCY8PQs0i+3lHg3GQP8A/Q1HxviqN+yuz/bTOaWNGjv3Mr/EKjZ0YibAD0WM6Ki5
+ 3R94SrSv0oVULNjCEnY7N1xk9C01BxHYZ2x2i5ML08wUNNAgjSPtfpFaRWkVpFaRWkVpFaRWkVpFaRWk
+ VpFaRWkVpFaRWkVpFaRWkVpFaRWkf7m3LxJ/0D40eH7KWUgW5n9x3nE1ksiCqdNQ2epwqq9Z08Ldpg//
+ AOrtXXGuJrqf8TcnQOqg7AUpa1klSionhJOnkKHXG1BSFqSRwEHRVtxrie2eLXR4fco7IVac6royEIuM
+ JD6esjeNWfM7Ctz2pC31RnVfVcph+PIbDjTqVoPApJBB+1ec8ybDgWYx33GSXnQdgSK3evfnOT/UNbvX
+ vznJ/qGt3r35zk/1DW71785yf6hrd69+c5P9Q1u9e/Ocn+oa3evfnOT/AFDW71785yf6hrd69+c5P9Q1
+ u9e/Ocn+oa3evfnOT/UNbvXvznJ/qGt3r35zk/1DW71785yf6hrd69+c5P8AUNbvXvznJ/qGt3r35zk/
+ 1DW71785yf6hrd69+c5P9Q1u9e/Ocn+oa3evfnOT/UNbvXvznJ/qGhf735zk/wBQ0MRX4cF0k/1DQxNi
+ AcF1k++aRi/Ezfg3aR71NZgYua8C7PUjNHGqOG5lXpTUbOLFbOjZbS56U0xndcwRt9qYUB1VGomdtq4H
+ ra+ioWZ+EZOxHy0tk8ywRUO8WmYEmPPYcJA0ALB/3EuXiT/oHxo8P2UspAtzP7hvuI7TYo5fnyUo6qOF
+ aqxLm7dpxWxakfJGOvwuGpEmRJdU6+8txxW+VKOknlFsxFerUtC4c51vYneAUSmsA4gl37DTUyWoF/bF
+ NrI5yj7BrWlCSpaglI4SToFXDGOGrdpEm5sg9CTsqm5wYYY0oZS8996RT2eFv4GrU7Qzwa80UjPCDvBd
+ qdqJnPh5Z0OR32qgY/wnNUlDdzbCjzK3qZkxn29kw8h1PShQI5fnt/l1j9e9+4WpEhlYU08tChwFJIq1
+ 4+xVa95i5OFPVc+cKtGdru8i628EddqrNjXDd5QBFnNhfUWdia4ftXfcTWewsKdnSUpPM2DpWqsN5n2C
+ 9vGMsqiPFXzA59f7KXLxJ/0D40eH7KWUgW5nl5KUpJJ0AVjXNOJbdshWcpfk8CnfqIq4XKfcpK5EyQt5
+ 1R3yo6wBJAG+TVswpiG6eKW15Q6xTsRVvyZvrwQuXJZYSah5JWdvfk3F53pAATTWVODWQCYjiyOuum8B
+ YSZA2NpaPpruQwr5ljcHVo4Owsrhs0b+SaewHhFTf+UtCnssMGOaSbcU9AC6lZQYRd/Zbe16F1NyPjaF
+ GJdV+haKuWUWKIaSpkNyR0INXCyXa2rKJkF1ojhJTvd4ySnbK03GL5F4H3/sDdLxbLTHL86W2ygdY75q
+ /wCcwBWzZog9c7V1xdiK7LUqXcXSD9RJ2KaJJOkknXgXu7W5YXEnPNEHToCt6rBnNdYy0N3VhMhvncTv
+ LqwYssd+ZBhS0FfO0o6F8tzHwhPxNDtjUJ1pBYcWpezPWr9TGJeZ+OaXk3idP/Uj1IynxcyNIjIX6DUz
+ BGKYSCp61PaOkDTTrLrKti62tCuhQIPL0rWhQKVFJHAQdFWDMrEtlKEbf8pY8m7WGsysPXva2nHPksg7
+ xQ4aBBAIOkH7T3S+2q0slydMbaSOYnfrEucb7uzYsjAbT5ddTJ0yc+t+U+t1xXCpZ0moHj0X1qPjUXxa
+ P6pP2TuXiT/oHxo8P2UspAtzPLn32YzLjz7iW20AlSydAAFY7zNfuhdt9pWWonAt3nd1mWHn3EtMtKcW
+ o6AlI0k1h3KO8XDYPXJwQ2erwrqy5f4Ys6QWoIdd8o7880lCUABKQkdAGjvj8WLIbLb7DbqVcIUARWIs
+ pbDcwp2DphPn3DWI8H3vDr5RNjkt8zyN9B1skphRep8TyzIX7n7/ACQkEk6AKxnmnEthdhWkpkSeAu/U
+ RVzu9yushUidKW8s9Y6oGngranfJq7DR3tWNKkxHkvR3lNOJOkKSdBFYPzeebLUO+/PRwJkiokuJLjNy
+ IzyHWnBpSpJ0g8vI01ecL2G9sKbmwG1E7wWkAKFY5wNLwtLBSS7Cd/Zu/wDpWuASdA36w9lPfLow3Jlq
+ ERlfghXh0jI+AhILt2d9yjklZvObtHJO0fx79HJO0fx79HJO0fx79HJO0fx79HJO0fx79HJO0fx79HJO
+ 0fx79KyRtPnN8UvJC28Kbw77lO5GoA0ouyvcqTkldh4vPZXUnKHFbIJQhp38Kql4IxVE0l20vaBzgaad
+ iyWSQ6w4gjh2SSO8AkHSKwrmZe7Gttl9Zlwxwtr4Uj7jWHsU2TEMYOwpI2YTpW0fDT9o3X2GE7N51Dae
+ lRA+NXjMrC1rHjfyhzqNVfM4L3MCmre0iI31+FdS50ya6XZUhx1Z4VLJP6YHj0X1qPjUXxaP6pP2TuXi
+ T/oHxo8P2UspAtzPLXHWmW1uuLCUIBKlHgAFZh4/evr64EFZRb21fzeOthPAt3xI6FNo2mIPCfWPhWHM
+ GWPDrITEYC3vrvr31E8hlwosyO4xJYQ60sEKSoaQazAy4esilXG2pLkBXCnna1cr5/yLGMA+WCmve/fz
+ zzTDS3XVpQhAJUpR0AAVj7Mt+5qdt1pdLcPgW6N4u6tmsV0vUkR4EVbquc8yR0k1YcmoTSEO3iSp1fO0
+ 3vAVEwdheElIZtLGkDwlDSaNotQGgW9jR+AVOwbhaa2oPWljZKHCkaDWJcmwEOP2N8noYcqXEkw5DkeS
+ 0pp1B0KQoaCNXBuOblhmUAlZdhqP0jFWa926921qZBeC21jf6QroP7gxPZWb3Yp0JxAKlIJbJ5lgbxp1
+ pTTrjat5SFFJ9IOjWyxszN2xTGDwBaYBeUCOryGXbbZLQpEiGy6D1kDnq65XYTnhS0RjGcPkjV5yYu8Y
+ FdtlIko6D81VXGz3S2OFubDdZV/qGvb7jNtspuVDfU06g7ykmsC5lwr4GoNw2DE4e479npN9ssLxq4MN
+ kcxWKn5l4PhIIE/bT0N1cc67cjxK3uO/jOxq6ZvYollYYLUZB6BpNT75eLioKmT3nvxK1oHj0X1qPjUX
+ xaP6pP2TuXiT/oHxo8P2UspAtzPLc1cc7Ytdit69CE+NOD+zWwBlu9eFN3G5oLcIb6Ec7tR40eKw2xHZ
+ S202NCUpGgADkbjbbra23EBaFAhSSNIINZkYKVh24CTGQTAkqJQeorqamHpfyK+WyT5OQg0hYWhKh9YA
+ 9v78JABJOgVmZj1dzfctFud0Q2zoeX5VQ1cG4Mn4nmhKAW4rZ+meqyWK22OEiJBYCEDhVzqPSTrY9wNG
+ xJb1PMNpRcGUktr646qqfYdjvOsvIKHG1FKknhBGrgvF8zDNxDqFFUVwgPtVAnRJ0OPLiuhxl1IUkj9w
+ Y3iCHiu8MgaEiQop9B1skmQbvcXehjkkyBb57CmZkRt9ChoKVjTWKcnWXA5JsbmwV5BdXG2T7ZJVHmR1
+ sup4QoayFrbWlaFFKknSCDoINZb5jidtVpuzoEjgZf6/2cf/AGTn4FfCrspZuc0FSiA+vhJPP3qB49F9
+ aj41F8Wj+qT9k7l4k/6B8aPD9lLKQLczyzH2KW8O2NxaFf4t/S2wn4qpxxbi1OLUVKUSok8JJ1ctsDqv
+ swT5jf8AgGF/1VUhCG0JQhISlIAAG8AByW/2WNerTLt8lI0Oo+aeqrmNXS3SLZPkwpCdi4yspP6W1bBa
+ FdVQPZVimpm2S2yE/wDUjoP78zTxpuXCNphOaJchP0ivJo1bFZpd7ukaBFTpW6rfPVTzk1YbJEsdsjwI
+ qQENjfPOpXOe8ZwYRDakX6G3vL3pQA7Fa2UGLBFlqskt0hp86WD0K/cGbLIaxlK6FtNr1sjfH7n6scmx
+ Fhq04jhrjzmBstHzHR4aTWMMFXLC8vYvAuRln6J8cB1kLW2tC0KKVJIII4QRWWuOkX6FufNUBPYT/VT9
+ m3AVNuADSSkgVcctMYOTZbot+lKnVq4ek05lzi9sEm1rqThbEMUEvWqQkDn2FKQtBIUkpPQRo14Hj0X1
+ qPjUXxaP6pP2TuXiT/oHxo8P2UspAtzPKyQkEneA3zWYmIzfsRyFoV/h2NLTOrYLNJvd2i29gfOdXoJ6
+ E85q1WyLarfGgxk7FplASP8A9nk+dGHdpkxLyyj5rv0T34tTLCemZg+Dzlglr993q7RbNa5dwkqAQygn
+ R1jzCrxdJN2uUqdIUS48sq9H3auUOGfkFsXd30fTy95r7mx3m5W9i426XDfGlt9so4Omr5aZFmusuA+k
+ hbKyPSOY6sSU7DlMSWTocaWFpP3g6aslxYudogz0b4fZSoDl+c3HL0wmdbJHx26+qHJ7taYN3t0iFMa2
+ bTiSPvCuYisV4amYbu70F8Ep4Wl9dGtabnKtNwjToyylxlYI/wD0aw7fod+s8adGPhp+enqr5x9nSAQQ
+ RpBq/wCCcP3xhQkRUIXoIDrYCVCsYYSm4YuRjPHZsr32XesNaB49F9aj41F8Wj+qT9k7l4k/6B8aPD9l
+ LKQLczyvH973FwzNeSoh14bS1+JdEkkk8J1cmLCEMTLy6nfWdqZ5Riqzs3nD9xhqG+polH4k74p1tbTi
+ 21jQpKikj7x+nJG46bbc4XknA57/AO+85MRl1+PZWV/Nb+kf1cP2py73mDARwvOpBPQOc1FjNxYzLDSQ
+ ENoCEgdAGjvWcmGA/GYvkZOlbPzJGtlVJcewdFSvgbWtCeX50ccB7G1rZI+O3X1Q5RmPhRGIbEtbSB8r
+ i6Vs/eOdNKSpKilQ0EHQR941socTG33ZdrdXoZmeB9zn2fzNsabthaQsI0vRTtzWtA8ei+tR8ai+LR/V
+ J+ydy8Sf9A+NHh+yllIFuZ5XnVdyubAtiDvNILjo+86qUlSgkcJOgVhG3ItmGrVFSOBhK1DoUvfPKcxb
+ QLViue0jwHTtqP8Az/TkzOLOI34vNIY/s/fUyU1DiSJLp0NstqWv0JGmr3c3brdps51RKnnVK1cl7SH7
+ xMuK+CM1sU+lzvcyJHmRJEV9AW26goUD0GsX4YlYbvD0N1JLRJUwvrI1ctYSomD7aFcLoLhHp5fnVxtb
+ 9jb1skfHbr6oco3jWZuHtxcSPKbRoYl6XW//AGNaLIcjSWX2zoW2sKSR0g1hy7NXexwbglX7ZsFSehfO
+ Ps9PZD8CayRp2bC09oqUyWJL7R+otSew6sDx6L61HxqL4tH9Un7J3LxJ/wBA+NHh+yllIFuZ5XmJPM/F
+ 1zX5Ne1D0I1bMyX7tAa676B+dNoShCUp4EgAcpzttO9bbmkdLK/04Anqg4stTg+u7sD6F/vrNe8G3YXc
+ ZQdDstYbSdbKG3/I8L7csaFSXSrvmMMJwcT2xUd3Qh5vfZe6pq/4bu1gmLjTmFJ0H5qxvpV6D+nBeDZ2
+ JLg2A2UQ0KBedpllthlplsAIQkJSB0Dl+dXG1v2NvWyR8duvqhynNyyC4YbExCPpYR2foQdfJW6F+zzL
+ ctXi72zR6F/Z4jSDV/QEXu5pHNJc+OrA8ei+tR8ai+LR/VJ+ydy8Sf8AQPjR4fspZSBbmeVOK2Da19VJ
+ PZV7fMm8XB4/XfWfz1cHt7Zia0p/7hPKsybWJ+D7gNjpcZAdQP0wX1RpkZ9B0KbdSofyNRHg/BjOhQO2
+ NIV2jT++c67i4u6wIGkbBporPpOqkaVADnNYUiGHhu1Ruownvs632+ewWJkVt5s8yxpqVlPg54lYjutE
+ 8yV1EyswfGWlfyRbpHMtZNRokaIylmMyhptPAhA0Aa92mfILZMl+RaUvsFfrgxZ1mPdr9cOLuuz7lYTu
+ km64dtk6To255rZKI3hybOrja37G3rZI+O3X1Q5Tc4bU62zYjqdKXmVJqWwqPKfZUNBbcUkj0HWyam7R
+ ihTBWQl5k/Z/EnGC7e1O/wB2rA8ei+tR8ai+LR/VJ+ydy8Sf9A+NHh+yllIFuZ5VM0/I5RHMy4fyqQdM
+ h49K1fHVww+I+ILW7zCQjlUyOl+DJaUAdtaUkD01PjLizZUdW8pt1ST/ACP6cAT/AJbhO0uFZK0tFCvu
+ IP75zHlmVjC6HZ7INrCE+hOrAaL06K0OFbqB2mmEhthlPQhIA6NA5PmLKEXB11PlWi2D+L9OX3Eyx+o5
+ NnVxtb9jb1skfHbr6ocqx7E+SYtu6NGgF4rT6Fa2XLxZxlZj0vhP2fxPxiu/tbvx1YHj0X1qPjUXxaP6
+ pP2TuXiT/oHxo8P2UspAtzPKpnzosoc20uAdlShsZL46HFfHVjOliQy6OFCwrsNWiYmZaoMkK07awhen
+ 8Q08qxTgDEE3Flx+QwlKadc2YcO8n51W3Ja4OJCp09to9VA2VWzKnCkAoU6yuUseUPzaiQokFhLEVhDL
+ SeBCRoA/fBISNJ5qvMhUm6z3lb5W+s/nq4RZD+J7O11pSKHJ86J6GrBEhjhffB9z9OX3Eyx+o5NnVxtb
+ 9jb1skfHbr6ocqzgaDeMXD14rS9bBKtjiqznokp+z+J+MV39qd+OrA8ei+tR8ai+LR/VJ+ydy8Sf9A+N
+ Hh+yllIFuZ5UtAWhaT9YEdtX+P8AJr3cmepIWNbKO8pnYYTHWrS7DcKD9lbo4GbVPd50MLUT0aBT6tk+
+ 6rpWo6uXzRcxjZR0Pg8ozouQevkSCOCMz+a/05fcTLH6jk2dXG1v2NvWyR8duvqhyrObjcj2NvWwG3tu
+ L7Kjpkp+z+J+MV39qd+OrA8ei+tR8ai+LR/VJ+ydy8Sf9A+NHh+yllIFuZ5XmPbzBxfc0eUUHff1sqsQ
+ ptGIksvL0MTBtSvsriZSW8NXlfOIbx7E0d86dXLMacZ2v7lHk61BCFKPAkEn+VYrum6uIblMC9KHH1bX
+ +Dm/Tl9xMsfqOTZ1cbW/Y29bJHx26+qHKs4HQvGKx1IrSdbK+MX8ZW5XkSXPs/ifjFd/anfjqwPHovrU
+ fGovi0f1SfsncvEn/QPjR4fspZSBbmeV52WnarjAuKBvPILa/SjWbWttaFpOhSSCD94rAGKG8RWFl1RB
+ lMANvg9I5/spi06ML3z2J7+w62Vg040t/J8wr0LPhec4FlLrw2po/erUy+4mWP1HJs6uNrfsbetkj47d
+ fVDlWYkoycYXY9R3Ye7rZKQVLvc2Z9Rlkp977P4n4xXf2p346sDx6L61HxqL4tH9Un7J3LxJ/wBA+NHh
+ +yllIFuZ5XmTZTdsKSwgaXIxDyP5a+CsVv4ZvDckaVML+a+30pqFNiz4jEuK8HGXUhSVD7J4yQE4UvXs
+ b39utlRx0g/hXyfN7EIn3lFtZXpah+H97h1MvuJlj9RybOrja37G3rZI+O3X1Q5S+sNMPOngQhSifQNN
+ XaWubc5slXC68pXadbJy2GJhp6YR86W/+SPs/ifjFd/anfjqwPHovrUfGovi0f1SfsncvEn/AED40eH7
+ KWUgW5nlbiEuNrbWNKVpKSPuO9WL7G5Y8QToSgQkL2bZ6UK18AY/kYaf+TSCpyA6d9Pkz1k1BmxJ0VqX
+ FeQ6y4kKQoHSD9ksZICcKXr2N7+3Wyo46Qfwr5NjXErWHbI/KJBfWChhHSo0886+6486sqccUVLUeEk7
+ 5Opl9xMsfqOTZ1cbW/Y29bJHx26+qHKcxLsLXhWev67w2lHpXrQorsyWxGaBK3VhAA++rPbm7Za4UFvR
+ sWGUI09JA4fs/ifjFd/anfjqwPHovrUfGovi0f1SfsnJbU5GdQkaVHeFbjXDfO1VuJcfIGtxLj5A1uJc
+ fIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfI
+ GtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGt
+ xLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxL
+ j5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5
+ A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1
+ uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJ
+ cfIGtxLj5A1uJcfIGtxLj5A1uJcfIGtxLj5A1uJcfIGoDa2YbTa06FDh5Zm7hUz7Yi8MI0PxPDHS13jB
+ 2O7nhh7YIJdhrOlxk/FNWDENpv8ABTLgvg9Zs+Gk9BH2RxkgJwpevY3v7dbKjjpB/CvktxuES2w3pct0
+ NstDSpRrGmLZOJ7qp9QKIzelLDXQnVy+4mWP1HJs6uNrfsbetkj47dfVDlOct/8AlN0j2lleluMnZO/e
+ tWtlDh75deF3N1P0MPwfWH7QYn4xXf2p346sDx6L61HxqL4tH9Un/cR5lt9lxp1AUhaSlQPODWO8LO4b
+ vbrABMZ0lbC/u6O8We93Oyy0SoEhTSwf5H0isH5o229JaizymLN4B1F0CDvj94EgDfNF9gH5zqB/OhJi
+ aDpktj/yFJkxDwvo96kuNq4Fg+g8rxkgJwpevY3v7dbKjjpB/Cvkl3vVus0RyXNfS02kfzPorG2PJ2Jn
+ 9qQCzBQfmNdP3q1svuJlj9RybOrja37G3rZI+O3X1Q5RiK9x7HaJU94j6NB2A6yzwCrhNfnzZMt9Wyce
+ WVqP3nVgw350tiKwkqddWEpA6TWFcPsYessaA2AVJALq+us8PKCpKeEgUJEYeE8gfzozYx3g+2B+IUJE
+ Yj9sgn8VB1pX1x/I8t0gEDTvng76H2En5zqB9xNCVF5n2yfxCg80rgcSfuB5RifjFd/anfjqwPHovrUf
+ Govi0f1Sf9xcW4XhYltDkV1IDyQSw5zpVV0tky1zn4ctoodaUQQfiO8AkHSN4isJZo3eylpiYVS4g99F
+ WHE1lv0ZLsGUlXXR9cfuokAaTV0xdh20hQl3FoLA8AHSqrjnTaGfEYDr/wB6/mipuc2I3SRGZYYR71S8
+ xMXSiSbotH4N6nsT4hf/AGt1kK9K6Xc7i54cx4+lZozJZ4ZLvvGhPmjglO++abvt4a8C4Pp9CzTONcVM
+ kFN3kegqqJm1i9gALkNvAddFQM7nt5M61g9K0Kq05n4TuJCTJMdfQ9vCmJEeQ2HGHkOJUAQUkEcgcdaa
+ SVOOJQnpUdArdCB/Fs++K3QgfxbPvit0IH8Wz74rdCB/Fs++K3QgfxbPvisWTYS8L3sJlskmG6AkLHV1
+ srXG2sYQ1OLCE7Be+TW6EH+LZ98VuhA/i2ffFboQP4tn3xW6ED+LZ98VuhA/i2ffFboQP4tn3xW6ED+L
+ Z98VuhA/i2ffFboQP4tn3xW6ED+LZ98U0606nZNuJWnpSQRrypsOG0t6VIQ02kaSVECsSZvWyEFs2lHy
+ p/yh8AVfMQ3a+yjIuEpTiuYfVTr4BmQ0YOsqFymUHaN8FYrdCB/Fs++K3QgfxbPvit0IH8Wz74rdCB/F
+ s++K3QgfxbPvit0IH8Wz74rdCB/Fs++K3Qt+jT8tY9GzFAggEcB77nVxtb9jb1skfHbr6ocnUpKEqUog
+ ADSSeasy8ZG+3L5HFX/gYqiB0OL62tlTgoxGRfJ7Wh9zxZB5k9bkhIAJNXTFuH7RpMy4NBQGkIBBJq45
+ 1WhkaIEF189K/m1MznxK6SIzTDKKl5hYulKKlXRxH3I+bTuJb+9+0ukhXpXS7jPX4Ut4+lZr5ZL/AIh3
+ 3jQuM9PBLe9803e7u34E98f+ZprGOJ2dGwu8n36hZqYwi/8AzUufjFW/O24I8et6HPvQas+aeFLgQh15
+ UZfQ7UaRHlNpcYeQ6lQ0gpII5PivMWzWBC2kLEmZ5JB/uq6Y5xJcbkmeqctpaDpbS2dCUVlviyfiO0yD
+ NSjbWFpQV9bvFyvNrtbW2TpjTI/1Kq7ZzWeN823xHJKusr5oqfm7imSVhgtR0HqipGMcTydO23eR6Aqn
+ LncXCSuY8SelZoTZg3xJd9403eLq0dk3PfSR0LNMYzxSwRsLxI9BVUHNzFkbYhxxp4Drpq052QlqCblb
+ lNjrt/OqzYmsV5bCoM9tatG+gnQockxPxiu/tTvx1YHj0X1qPjUXxaP6pPeiQkEk6AOE03cbbp0qmM++
+ K3QgfxbPvit0IH8Wz74rdCB/Fs++K3QgfxbPvit0IH8Wz74rdCB/Fs++K3QgfxbPvit0IH8Wz74rdCB/
+ Fs++K3QgfxbPvit0IH8Wz74pp9h5JLTqFgcJSQf9r8b4GhYmhkp0NzWgdpe6fuNXK2TbXMeiTGVNutqI
+ IPxHeYNwm2+QiREfWy6k7ykmsLZxn5kW+tf8hFQbhBuEdL8SSh5tXAUHT+5pEmPFaU6+8hptI0lSjoAr
+ EWb9qglbNsaMt3r8CKveYGJ7ype3TVNtnhba+aKUtayVKUVHpJ099tt+vFrWFwpzrR+5VWDOia0UNXiM
+ HkeVbqy4is18ZQ7AmIcGjSpHApPpHfs2/m4TWUkg7aitvf8ALL941t7/AJZfvGtvf8sv3jW3v+WX7xrb
+ 3/LL940X3iNBdWQfvOslSknSkkHpFbe/5ZfvGtvf8sv3jW3v+WX7xrb3/LL941t7/ll+8a29/wAsv3jW
+ 3v8All+8a29/yy/eNbe/5ZfvGvlD/lV+8aycWThd0qUSflKv0uLS2ha1HQlIJPoFP5uYRZ2SQt51Q6EV
+ LztioJEW1LX0KWqrjm9imWhSGC1GT0oFT7xdLisrmTXXlHrK7yHngNAcWAOYE1t7/ll+8a29/wAsv3jW
+ 3v8All+8a29/yy/eNbe/5ZfvGtvf8sv3jW3v+WX7xr5Q/wCVX7xqzrItMH1CN/8Al33Orja37G3rZI+O
+ 3X1Q5MTorMzMLZ7bZbU990h5P9idbLbADl1fbutxaKYbagWkeVIoJCUhKRoAGgAcideZYbU484ltCRpU
+ pR0AViLNuy20rZt6Pljw9wVe8w8T3gqS5LLLR/6bXzRS1rWdK1FR6SdPfbTiK82d0OQZzrX3adINYVzh
+ jySiLe2gyvy6fApl5l9pDrLiXELGlKknSCOREgDSTV+x9hyxAh6Sl57yLe+axLmnfLvs2Yh+Rxz1PDNK
+ UpaipSipR3ySdJP6MjXR8kvqOhbOtesQ2mxxy9PlJbHMjhWr0CsR5wXKWXGLQ18lZ8qd9ZqZOmTXluyp
+ Djq1HSSok96ZfeYcDjLq21g6QUnQawvm3drcUMXQGXH6/wBcVZr5ar3CRKgyEuIPCB4ST0EcixPxiu/t
+ Tvx1YHj0X1qPjUXxaP6pPer4NFluR5/kzn9tbe/5ZfvGtvf8sv3jW3v+WX7xrb3/ACy/eNbe/wCWX7xr
+ b3/LL941t7/ll+8a29/yy/eNbe/5ZfvGtvf8sv3jW3v+WX7xrb3/ACy/eNZKLUbXcypRP0w/2wxXg+1Y
+ mhKRISESEj6J8cINYiwzdcPTFRpzBT1HPqrHerLiG72SQHoEtbR50/VNYXzfgTSiPeWxGd8qPANR5MeS
+ yl2O8l1CuBSDpB/ceLsy7VYtnHikSpnVB+air9iu9354rmylFHM0k6EDWbZedVsW21LJ5kgmouEcSStG
+ 1WmQR0lBFM5XYyeAIt4HpWKGU2MjwRGv6gpzKrGbY0mAD6FipOCcUxvDtL5/CnTUiDNjKKX4zrZHMpJG
+ tCnzID6H4khbLiTpCkHRWEc3/wBnDvw6EiSKYfYksoeYdQ42saUqSdII75m1xSd9ajk+TvFZz2lX6ZoG
+ 50w//Ur4U7+0X+I8ltH+VwPUI+Hfc6uNrfsbetkj47dfVDksmVHisrefeQ22gaVKUdAFY7zQenbbbrMs
+ txuBx/ncokk6Tvk6nDvCsA5ZPTls3K8NlEbhbZPC5TbbbTaG20BKEgBKQNAAHIsWZiWfDyVtJUJMzmaQ
+ eD8VYgxlfr+4TLlKDXMyjeQNZph55WxaaUsnmSCfhUTBmJ5e+1aX9HSU6Kbyrxm4kEQEj0rFHKXGn8Ej
+ 36lZb4vig7O2KV+Ag1Lsd4heNW99odKkGjpGtg7H91w0+hvZl6ET89k/FNWi8W+825mbCfC2lj+YPQe/
+ LdbbBK3EpHSSBVzxxha2J0v3NpRHChs7I1eM6YrezRa4JcPM67V8x/ia9FQfnKbbP/Sb+aKUpSiSokk8
+ JOpkc7sXL0j1WopSUIKlKCUgb5O8BWMs148ArhWUpef4FP8A1EVcLnPuclcibJW86rhKjqAE1tTvk1dh
+ otrHChQ7xY7/AHSxTESoEhTagd9P1VekVgzGEDFEELbIblIADzPOPvHIcT8Yrv7U78dWB49F9aj41F8W
+ j+qT3q+IIslyJB0mM5/bW1O9RXYaII4R3oJUeAE1koCLVcwoEfTj/bG72i3XmEuJPjpdbUP5pP3Gsa5a
+ XKwKXJiBUmF1hvqR3uw4svlhdC4MtYRztk6UGsMZt2m5hDF1HyR/r/UUaaeZfbS4y4lxChpCknSDy+VL
+ iw47kiS8hppsaVLUdAFY3zRl3FbsGzrLMTgL3AtyiSokk6Sd8k6uHcBYhvxSpmMWmOd5zeFWTKCxQkoX
+ cHFS3eccCKhWSzQGw3Et7LaR/pBNAAasmFCfSUvRmXRzlSAau2WGE7kHCmJ8nX12qxBk/e4AW9bliY11
+ eBdSI0iK6pp9lba08KVgg6uE8c3fDT6drcLsU+GwrgrD2I7ViGCiVCfB67R8NB73j2wzL9YFQoexDhWk
+ /Or9TmKelmv1OYp6Wa/U5inpZr9TmKelmv1OYp6WauGVOI4EGXMdLW1sNqWv0J1rDZJd9uLcCLo21YJG
+ mv1OYp6Wa/U5inpZr9TmKelmv1OYp6Wa/U5inpZr9TmKelmv1OYp6Wa/U5inpZr9TmKelmv1N4p6Way/
+ w9Ow9ZFwphSXC8V736ZLanY77adGyU2pIpeT2JyonZM1+pzFPSzX6nMU9LNfqcxT0s1+pzFPSzX6nMU9
+ LNYhw/MsE8wpZSXAkK+brWnLC/3W2xZ7Cmg0+jZJ0mv1OYp6Wa/U5inpZr9TmKelmv1OYp6Wa/U5inpZ
+ r9TmKelmv1OYp6Wa/U5ijpZqAyuPBisq8JDSUk+gaO+51cbW/Y29bJHx26+qHIyQBpNYkzIsFiQtCHRK
+ l8zbdYmxre8SOky3ylnmZRvJGrb7bOuUlEaHHW86s6AEisF5Ww7WGZt2Afl8Ib4UN0AANA5CtSEJKlKA
+ AGkk7wArHWaayt622NzQnwFyfiEUta3FqWtZUpR0kk6STq2XDt3vkgM2+Ktw86uBI9JrD+Ttujht27Pl
+ 9znaTvIqBYrRbmw3EgMtpHQgarrTTqdi62hY6FJBFXvL3Ct2DhXCDTqv+o1vVivKy8WVDkqHplxB76aI
+ IJBGgjVwXjCbhm5JcQtRiuEB9qoU2LPhMS4rqXGnUhSVDveNMz7lh+9SLbFhtK2sJJWup2aWLpRIRMDA
+ 6GxUu+XiasqkXB9wnpWa4d86+SLgF1uKDzs/pnz4lviuypTyWmWxpUomsb5lTr4pyHAUpiB2Kc1LBgfE
+ N9UgxoakMnheX81NWbJu0xwhdykrkOc6U7yKhYQwvAA+TWpkekaaTbrakHRBY9G1pp20WhxOhVvYVp6U
+ Cp2AcJTQouWxsE8BTvGr5kqyUFdpmKC/Ju1esOXixvlm4RFtHmVwpPoOtZbzOstwYnQ3ShxtX8lDoNYa
+ xDDv9ojTmCODQ4jqL5BifjFd/anfjqwPHovrUfGovi0f1Se9EBQII0jnFLttsV/8GOBwAbWmp2E8OTkE
+ P2pgg9CdBrHWVUKLAk3Kz7JG0jZrYOtFiSpjyWYzC3XFcCEDSasGTtylBt66viMjySd9dW3LHCEJsbOE
+ X1jncNM2Cxx0BDNsjpH4AaajsMJ2LLKGweZKQP8AbJSUrSUqSCkjQQeA1jPKiHcg5MsoDEnhLXAhdXK1
+ XC1Slxp0ZbLqSQQod7w/jG+2BwGHLVtfO0rfTWGM2rLcg2zcR8jkdqFU06082lxpaVoUNIUk6QeWXS5w
+ rVCemTXg0y2NJJ+ArGuOJ+JpZAJahIP0TP8A7VqwLfMuMpuLEYW66s6AlIrBuVcG2BqXeEJkSuENfURS
+ EIQhKEJCUgaAANAHe8RYTseIWCiZGG2aDoeTvLBrGGAbthl0rUgvQyfmPAf3atjvtxsc5uZBeKFpO+OZ
+ Y6DWD8ZW7FEALaIbktgbcxyDGSAnCl69je/t1sqOOkH8K+S5wcbXfVJ1sv8AiZY/Ucmzq42t+xt62SPj
+ t19UOQzb1abeFLmTmWgkaSCrfq9Zw2KIhSLc0uU5zK8FFX7MPEl62SFyiwz5Jr5tEkkk75Oo0y68sNtN
+ qWs8CUjSTWGMprvcih+5kw4/V+uqrLh2z2OOlmBFSjpXwrV6TyIkAEk6AKzIzCcnvO2m1vFMVBIedHC6
+ dbA2Wsq+FE24BTEEe87VutkC2RkRoUdDLSRvBI7yQDWYeWrNwZeulnYCJKBpcaHA7S0KQopUClSToIPC
+ Dq5WY0Vabgm1zHT8jkr0I6G1muHvWa3HW4ehHeslHQnE0hHTFV+i63WDaYLs2a8G2Wx/MnoFYzxtPxNL
+ IKi3DQTtTI+Kv02mzXK8S0RYEdTriujgH3k1hLKq2WsNyboBLldX6iKQhDaEoQgJSBoAA0Aa9xtsC5xH
+ Is2Mh1lSSCFCsf5eP4dcM2GC7b1n+bWtllik2O+tMPOaIkshDnQlXMeQYn4xXf2p346sDx6L61HxqL4t
+ H9UnvuP70xZ8MT3FqAdfQWmU85UqidJJ1MKYMuuJZISwgojg/SPq4BWHMJ2fDscNw2AXPrvK31q/24vm
+ HrPfohYnxUr6q+BQrFuVV4sxXIghUuIPfRSkqSopUCCOEHh73h/Gd/sCx8klqLXO0s6UkVhnNmyXQNMX
+ D/BP9qCabdaebDjTiVpPAoHSOUypLESM7IfcS200kqWo8AArHmNH8S3FQaUUwGToZR0/6zq2m0zrxPZh
+ QmS484ewdJrB2DLdhmGlKAHJa0/TP/8Aod+kxmJTDjEhpLjTidCkKGkEVmJl89YHjOgoK7e4f5tHVs15
+ nWa4MzYbpQ42f5KHQawriaBiO1tzI6gHBvPNc6F9/wAZICcKXr2N7+3Wyo46Qfwr5LnBxtd9UnWy+4mW
+ P1HJs6uNrfsbetkmtCJt1KnEo+jFfKovl2/eFfKovl2/eFfKovl2/eFfKovl2/eFfKovl2/eFfKovl2/
+ eFfKovl2/eFfKovl2/eFfK4iBoEhrT+IUZ0EcMtkelYpV4tSPCnsD/zFPYsw1G33bqx7wNPZl4NZ4bmF
+ noQKk5z4cZJDER96p2dlxXskxLc0hPMV1ccxMWXAKS5cVIT0I+bT8mRIWVvvLcUedRJOrbcP3m6OJRCg
+ POk8BCToqx5M3B8Ieu0kMI8mjfXVjwjYbGgCHCQF+UUNkrkmbGMDbogtEJzRIkDS8eo3rZa4L3euHyyW
+ j/Axj/UX0UhtDaEoQkJSkAJSN4ADvmb+EERH03yG1obeVokgcy+tqgkHSN4istMUJv1gbbfXplRNDbnS
+ ocx71iPLG1367P3F+W6hboGlKaVknZvOEgU/khD2BLF3c09Ck1espsTW1pTzKUS0DyfhU4240tTbiClS
+ ToKVDQQdbJtwIxh6Yboq4XCJbYb8uW6G2WkkqUaxrjOZiaeTpKIbZO0tf+z+nCGCLniaQChJaiIP0j5+
+ CasOHbXYISY0FgJ6y/rLPST3qXFjS4z0V9sONupKVg8BBrGmGXsN3x+GQSyfnsK6UHVBIII3iN8GsvsQ
+ G9YaiOrWC+ykMudOlPf8T8Yrv7U78dWB49F9aj41F8Wj+qT3y4XGFbIbsuY8GmWxpUo1jfF7+J7oXd9E
+ VreYb1MDYCmYlkh50FqA2fnudf7k1At8O2xGokRkNMtjQlI/27xVlvZL+FvNJESX10DeVWIsFX7DzpEu
+ MVM8zyN9B75h/Gt/sC0/JJai15JZ0prDea1juwbYnaIUk+4TTbiHEBbawpJ4FA6RyfNnGRlPmxw3fomv
+ GVDnX1dVCFuLQhCSpSiAAOEk1l7g5vDtrS4+hJnPgKdPVHU5BJjR5cd6NIaS404kpUk8BBrHWFHsM3lx
+ jQTFdJWwvpGrg3FEjDd4alIJLKiEvo6yahzI02IxKjOBbTyApKh9/fsZICcKXr2N7+3Wyo46Qfwr5LnB
+ xtd9UnWy+4mWP1HJs6uNrfsbeszJkMEll1aCeqSK3SuH8Y975rdK4fxj3vmt0rh/GPe+a3SuH8Y975rd
+ K4fxj3vmt0rh/GPe+a3SuH8Y975rdK4fxj3vmjcJ54Zb3vmlSpKuF9w+lRorWeFRPpOslClbyUk+gVHs
+ 11kqCWID6yehBqBlji+YU6YBZT1nDoq25JPlIXcbmEfc0KtWWmFLZsV/JNucA4Xd+mI7EdsNstJbQOBK
+ QAPy5LOmMwYcmW8dDbDalrP3Jq+XV+73aZPfVpW84VatugP3GfGhsJ2TrzgQkemrDZ41ltMWAwkANIGy
+ PWVzk99vVsYu1pmwXk6Q80QKmxXYcuRGdGhxlxSFD706uWl93IxNGC16GJP0Tnfs28Hx3oJvkNnYvM+M
+ ADw0a2VklqNi6O464lCNpc0lRrMXGzt/nqiRXCLewohA8oesf04DwBKxFIRKlJU1b0HfVzufcmoUKLAj
+ NRYrSWmWxoShI0Dvmbdh3Rw6Jrbel6ESr/w1sl7uWLxLty1gIfb2Y/Ejv+J+MV39qd+OrA8ei+tR8ai+
+ LR/VJ73crlCtcN2XMeDbLY0qUaxxjiXieYUo0tQWz9E1/wC1amAsv5WJH0yZIU1b2z85fO59wqHDjQYz
+ UaM0ltlsAIQBoA/29fZZfaW082lxCxoUlQ0gisU5QwJu2SbMsR3vJK8A1eLBd7K+WZ8RbR6SN498w5jq
+ /wCH1pEeQXGOdle+KwvmbYb2EMvq+SS+ovgPoNBQUAQdIPARyTH2Jhh6xPOIIEl7ShgU4tbji1rUVKUS
+ STwknVykwp8unKvEprSxGOhn73ORY3wwxiKxPxtA+UNguMHoUKfZdYecZdQUrQopUDzEauT+LSzINilu
+ fRO78Y9Cur37GSAnCl69je/t1sqOOkH8K+S5wcbXfVJ1svuJlj9RybOrja37G3yey4unWaMGY8SIvQsq
+ 2bjQWqmM4sSs/wDQiEfc2BUfPC5I3nbUwuoWdtvPjVrcR96DULNvCUpWhbzjH401AxRh+4eK3Nhf/lSH
+ ELSChYUOkHTyTNaauJg+SEHQXlob1smsPbdMk3l5v5rI2tn0nv8Amva0wMXylNp0NyEJcHp59Vp1bTqH
+ EHQpCgoH7wdNYfuKLlZLfMCv2rCNmrpUBoPfblDbnW2bFc8F5haO2pLW0yHmuotSew6oJHAdH6cA4Efx
+ FKEmSkot7S/nq8oeqmo0ZiIw0ww0ltptIShIGgADvs6I1MhSYzg0odbUhXoNT4rkSbJjuDQppxSSPQdX
+ CNx3MxLapfMh9On0K3u/4n4xXf2p346sDx6L61HxqL4tH9UnvV0ukG0w3psx8NstjSSfgKxtjebieZzt
+ Qmz9Ez/7VqYAy+fv76Zk0Kbt6O12osViJHajx2kttNpCUJA0AAf7gXC3QLjHVHmRUPNq4QoVifJoELkW
+ N7/jrNXG03G1vlmbFcZWOZQ72CQdIrC+ZV9sRS0tfyqL5Nzm9BrDONrDiJnRGf2D/wBZle8vkRIAJJAF
+ Zk4kN9xE+G16Y0UlpoejhOrBhvTpkeKynS484lCR96qsVoYs1nhW9lIAZbAUelXOeR5v4aFuvKLkwjQx
+ M8P7nNWNIdiyGn2V7FxtQUk9BFYSxA1iCwxJqVjZlGxeT0OJ77jJAThS9exvf262VHHSD+FfJc4ONrvq
+ k62X3Eyx+o5NnVxtb9jb5YlaknSkkVAxTiC3aBFuTyEjm2RIq05z36LoTNjsyUe4as+bGF7glLb7iojh
+ 8pUeVFktpdYeQ6lQ0gpOnkOcbCzhNLnUkI1WWlvOttIGlS1BIH3k6KwrZm7HYYMFIAUlsFz71nv+eETS
+ uzy0jeCVt62Uk8SMItMfw7i099UNINYoYEfENzaHNIXr4IwfJxNcwggoiNEF9z/0KgwosCIzFitBtppI
+ CEjv+ZEMxMY3bocd2wehWq0vYONr6qgew1ZJpmWa3yPKx0LJ9I79ifjFd/anfjqwPHovrUfGovi0f1Se
+ 83e7QLPCdmzHg202O09ArGeNZ+J5hKiW4bZ+hZ1Mvsu3r24i4XFBRASd5PO7UeOzGZbZZbShtCdCUjeA
+ A/3DutmtN3jlidDbdRzaRv1ibJt5oKfsb22J8gup1unW94sy462XB9VQ0d7YfejupdZdU2tJ0hSToIrC
+ Gb78cNw74C63wCRzj8VQJ0OfGblRX0PNLAKVJOkcgzBvgsmGZbqVgPPDamvSdbJ6wiXd3rm6glEQfM6C
+ tXJMb2Ju94ZnRwgF5Cdsa/EmlJKVFJ4QdB1cnb+qHeXLU4vQzM8H1g77jJAThS9exvf262VHHSD+FfJc
+ 4ONrvqk62X3Eyx+o5NnVxtb9jb1sp7FaLxKuKbhDQ+EIBRsq/V9hDzOzX6vsIeZ2a/V9hDzOzX6vsIeZ
+ 2a/V9hDzOzX6vsIeZ2a/V9hDzOzX6vsIeZ2a/V9hDzOzX6vsIeZ2aVl1g9I/ylmlZc4MUP8AKkCncq8H
+ qSSYRR9wVT2UGEF8AkD0Lp/Jewq07TNkIp/I5fzixeB6FIqXkzihknaVx3R+OpuA8Vw1KDlreIHOkbIU
+ 9FksKKXmVoI4QoEa9rxBebS6HIM51ojmCqw/nQsFDN6igjyzdWu92m7sJegTG3hzgHfHf8SWVF5sk23r
+ 0AvIOw+5XMTU+FJgTH4khsodaWUrSekamVWD3Z9xReJTWiLGOlr/AOxzkGdLIOG4S+cStbJF8bn3Znoe
+ C+/Y7GjFt59oVrYfsUy/XRiBFTpUs/OVzITzk1YbHBsNtZgxEAJQPnHnUrnJ5BnKzsMVoX14qNbL2WH8
+ I2sn6jYT2d+xPxiu/tTvx1YHj0X1qPjUXxaP6pPeLzeYFmgOzZroQ2gfzUegVjDGNwxNNK3CURUE7Szz
+ AamXmXK7stu53RsohJOltvnepplphtDTSAhCBoSkDQAB/uNd7FaLwxtM+G28OkjfrE2TL7RW9ZH9mnyC
+ 6uFsn218sTIy2XBzKHe8N4vvOHJAchvktE/PZVvoVWE8bWnE7A2hYakJHz2FcI7/AJzXoSLxGtjSzsIq
+ NK/xr1strQLVhWGCgpdkfSuckIBGg1j60G0YpuMcJAQte2oA6q9WDLdhTI8pokLacSoEfdVouLNztUKc
+ 1o0PspWfuJ5u+YyQE4UvXsb39utlRx0g/hXyXODja76pOtl9xMsfqOTZ1cbW/Y29bJHx26+qHI5drtcx
+ C0vwmnNlw6UirnlXhKcNLcZUVXS0avOS93jJLlulIkp6qvmmrlZbpa3NhNiOsnmKgdB1rddLhbJCJEKS
+ tl1J0gpOisJZxIdW1FvqAg8AkIph9iQyh5l1LjahpSpJ0g9+xnl9bMTAPoUI81IADoG8v01PyqxZEcUE
+ RkvJ5lIVTGV+L3z4kEfiUBWH8mWmltvXmSHOlhuosWPEYbYYaS202kBCUjQAByDN5AOFD9zyDrZIukTb
+ qj/60Hv2YPHG9evOqy0486202gqWtQSkDnJrAOEGcN2pJcSDNfALy/gnkOdjYF4t6+lgjWykWFYOjlX1
+ XnB37E/GK7+1O/HVgePRfWo+NRfFo/qk698vlvsUByZNdCUJHzU86j0CsW4uuOJpxefUUMJJDLI4EjUy
+ 6y5VcVNXS7NkRQQWmTwu02hDaEoQgJSBoAA0AD/cm6WW0XdhTM+Eh4HpHBWJcmXE7Y/Y3tkPIOVcLZPt
+ r6mJkZbLg5lDvUObKgyG5EV5TTqDpStJ0GsB5ksXwNwLmsNTuBKuBLvfX3kMMuvLOhLaSo+hI01friu5
+ 3ifMUrZba+sp/DzatkgG43aBD0Eh59CD6CaZbS0y00ngQgJHoA0clzutSdnbLm23wgtOHWyYu/ymxyrc
+ 4rxV3Sn8K++YyQE4UvXsb39utlRx0g/hXyXODja76pOtl9xMsfqOTZ1cbW/Y29bJHx26+qHJpUGDNZW1
+ LjIeSQRoUAaxJk7bZaVybO78mc8krwKvWH7tZJJYnxVtHmJG8fQdbCuOLzht8Fl0uRifnsKrDWLLTiOH
+ tsJwBwAbYyfDR+4c2uKLvrk62SJ0Xe6+zDv2YvHS9+0HVwzxgtftCKHAOQ53p0SrR6tWtk8odyA9pX37
+ E/GK7+1O/HVgePRfWo+NRfFo/qk61/v9usNvcmTXAlIHzU86z0CsVYruOJJ65ElZDQJDTXMhOpl1luZi
+ mbtd2SGOFlg/X+80lKUJCUgAAaAB/uZdLLabuwpmfCQ8COcb4rFGTj7OzkWR3bEeQXw1MhS4L6mJTC2n
+ E8KVDQe8oWttaVoUUqSdII3iDWXOZCZwatN4dAf4GX+v3zMC5bm4TujiFDZqRtY9K9bKSB8qxW28UAoj
+ tqXybM63fLcIzelgh73dbKW5iFippk8EtBa75jJAThS9exvf262VHHSD+FfJc4ONrvqk62X3Eyx+o5Nn
+ Vxtb9jb1skfHbr6ocouVst10irjToqHm1DnFY3yvmWcuTbWFyIfCU/Xb1rVdp9omNS4T6mnUHhHP9xrA
+ 2PIWJo+1ObBmchPz2ut96f3Bm1xRd9cnWyR/zm6ezDv2YvHS9+0HVwzxgtftCKHgjkOeaAl+zfgXrZPc
+ Uv8AlL79ifjFd/anfjqwPHovrUfGovi0f1SdXEWIrdh63rmTXPVt861dArE+J7jiO4LlSl6EDeaaHgoT
+ +kDTWXWW5dLV2vDPzOFhhXxVSUhIAA0AbwA/3PveG7LfWFNz4aFnmWN5YrFuVV2tG2SbeDLij30UpKkK
+ KVAgjeIO8R3hKlIUFJUQoHSCOEGssswhdW27Tc3dExtIDTnlUjvedc0N2m2xArfdeKyNbJGGQ3dpnW2L
+ Y5Nd4iJtpuEZQ0hxhaaeRsHnEdVZHYdWyTVwbtBkoOhTbyTTTiHG0OIOySpIIPSD3vGSAnCl69je/t1s
+ qOOkH8K+S5wcbXfVJ1svuJlj9RybOrja37G3rZI+O3X1Q5SQCCCNINZi5ZIWHrtZWtC+F6Mn4opQKVEK
+ Ggg6CDzHVhzJMGS1JjOqbdbVpSoHQRWAcbMYoghp0hE9kAOI6w6w5fm1xRd9cnWyR/zm6ezDv2YvHS9+
+ 0HVwzxgtftCKHgjkOev7ezfgXrZPcUv+Uvv2J+MV39qd+OrA8ei+tR8ai+LR/VJ1MSYkt2HbcuZMX6ts
+ eE4egViTEtxxFcFy5i/VtDwUJ6B+kAkgAaSd4AVl1luE7Tdrwz97DCviqgABoH+6WLcurLiBtbzKExZv
+ M4gbyvxCsQYZu2H5ZYnMEdRwb6F+g94jSHor7T7KyhxtQUlQ4QRWBcWsYms6FkgS2dCH0/f1u9Z0S0u3
+ +Iwg7zMbWydjFnCZc8q+pXJlJ0pUOkViSL8jv10j6NGwkL1QdB01gud8swrZ3tOkiKhBP+od7xkgJwpe
+ vY3v7dbKjjpB/CvkucHG131SdbL7iZY/Ucmzq42t+xt62SPjt19UOV5pYASNtvlrZ9paH941rTdZlpns
+ TYbpQ60rSD0joNYXxJExHZ2JrBAVwPI50L5a7MhxwTIkNtgdZQHxrM/FFhmYfdgxp7bsjbEnYI1skf8A
+ Obp7MO/Zi8dL37QdXDPGC1+0IoeCOQ56/t7N+Betk9xS/wCUvv2J+MV39qd+OrA8ei+tR8ai+LR/VJ/T
+ ifE9uw5b1SpS/nneaaHhOGsRYjuWIbguZMc9WgeChPQNSLIciyWJDejZtLStOkaRpSdIrCWI4uI7MxMa
+ IDgAQ8jqrH+6l0tcC7Q3Ik2Oh1pY4CPzBrHOW8/Dq1y4oU/AJ8Lnb7xgnEjuHb7HlbI7QshD6elBph5p
+ 9lp5pYU24kKSRzg95zMkh/Gd1IOlKFISPdGtl4yGsG2YdZrZcnzGYLGMruOu6F62UMoOYQQ3pJW0+4O9
+ 4yQE4UvXsb39utlRx0g/hXyXODja76pOtl9xMsfqOTZ1cbW/Y29bJHx26+qHK1oQ4hSFpCkkEKB4CDWY
+ 2EF4eu6nWUf4KUSpo9U86dbL/FjmHL0hS1kRHyEPj4KpC0OIQtCgpKgCCOcHk5IA0mp1+ssBvZyrkw36
+ VVPzYwnDJDbzkk//AFip+dsn5yYFtSnoWs1ccysWzwUquBaT0NAJqVcp8xWyky3XT0rUTr5I/wCc3T2Y
+ d+zF46Xv2g6uGeMFr9oRQ8Echz1/b2b8C9bJ7il/yl9+xPxiu/tTvx1YHj0X1qPjUXxaP6pP6MU4qt2G
+ 4CpElYLhBDLQ8JZq/wB/uN/uDkya6VE+AjmQnoGtl7itWHb02XVn5G+Qh4fBVNuIcQhxtQUlQBSRwEHg
+ P+6jjbbra23EJWhQ0KSRpBBrMbLdy1rdulqbKoZ33Wxwtd4yfxKJ1rdtL69L0Pfb+9s95xQ/t+Ibq50y
+ XB2HRrYXaSxhy0taNBTHRyfN9kNYydPXjtr1skHiq3XZoneQ8g97xkgJwpevY3v7dbKjjpB/CvkucHG1
+ 31SdbL7iZY/Ucmzq42t+xt62SPjt19UOWYww83f7BLhKA23Rs2j0LFPsuMPOMuJ2K21FCh0EHQdbKTEg
+ udkVbn3CX4QAH3t8kmXO3wW1OS5bTKU9dVXPNjCkFRSy45KWB9Qb1XPOi7Pb1vhtx/vV881cMaYmuCll
+ +6PaFcKUnYiluOOHStalHpJJ73kj/nN09mHfsxeOl79oOrhnjBa/aEUPBHIc9f29m/AvWye4pf8AKX37
+ E/GK7+1O/HVgePRfWo+NRfFo/qk1izF1vwzBLz6gt9YIZZ51Gr7fLhfZ7s2a6VLV4I5kDoHeMo8ZCVG3
+ DmukutAlg9ZP+6q0IcQpC0hSVAgg8BBrMrAq7DMM+GgmA+v+mvXwZfFWPEUGZ9QL2Dn4FUhxDraHEK2S
+ VJBB6QddZ2KFq6Ek1dVbO6T1daS6e1R1rcna7dCb4AllHw5PnQ0BieOvpho1sj3wJF3a6UIPe8ZICcKX
+ r2N7+3Wyo46Qfwr5LnBxtd9UnWy+4mWP1HJs6uNrfsbetkj47dfVDlubeHxbMRGY0n6GanZ+hetgK+Ks
+ uJYT5P0Tiw050aF0CCARoI4RyCVLjRGlOyH0NISN8qIAq9Zs4btmzRFUZjw6ngVec2sST9miMURGuYI8
+ KplwnTnVOypLjq1cJUonWAJ3hVvw5fLl4nbnnR0hNWrJrEEnQua81Fb941i/Le04cwyuYl516UFgBZ1s
+ kf8AObp7MO/Zi8dL37QdXDPGC1+0IoeCOQ56/t7N+Betk9xS/wCUvv2J+MV39qd+OrA8ei+uR8axPjCD
+ hm0MLdUFyVMp2lirzeZ96nuzZrpW4s/ySOgfpawrenbE9ekxj8kbUATzkdYfdrW+fJt02PMjrKHWVhST
+ WFsRxcRWZiawQFEaHkc6V9H+6twgRLlBfhym9m06kpIrFeHJWHLw/BfB2IOyaX1kawrLa+C74UjbNeyf
+ j/Qr15pKYcpQ5mln8qlnZS5B6XVfHVbSFOIT0qAqOf8ACRh0Mo+HJ87EAXuB7PrZIuEX6cjpY73jJATh
+ S9exvf262VHHSD+FfJc4ONrvqk62X3Eyx+o5NnVxtb9jb1skfHbr6octzdtKJmFvlCfDiLC9fBl2F1wx
+ bJhOlZaCVj/Une79d7/Z7Myp2fMbaGjSE6fnK9Aq/Zzq+e1ZoY9c7V2xBeLw8XZ81149BO9rAE7wq0YJ
+ xLd1oEW3ObFXAtY2KatGSizsF3S4gdZtqrTl/hW1bBTUBLjqeBbnzjSGm2k7FttKR0AaP0ZtcUXfXJ1s
+ kf8AObp7MO/Zi8dL37QdXDPGC1+0IoeCOQ56/t7N+Betk9xS/wCUvv2J+MV39qd+Oq2tTa0LSdCkkEH7
+ xVxuc+5yTJmvqedIA2R6B+nL7AL9/kJmzElFvbV/N09Ar5BC+QGFtCdo2vYbWBoATWNsLP4avTsYgmO4
+ SthfSnWy5xccPXlCH1n5FJIQ8OqevSVIWhK0kFKhpBHAR9h5K1NMOOJG+kUcQz98aEdld0dw6Udld0dw
+ 6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw
+ 6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw
+ 6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw
+ 6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw
+ 6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw
+ 6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw
+ 6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw
+ 6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw6Udld0dw
+ 6Udld0dw6UdlQny/EacWBsjw/vnNDCgvdjMphAMuECtP3o5xR1sk7oGrjcbatehD6AtH4069yB3OmnoZ
+ X8KfOl94/wCtXx1Y2/IZ/GKjHREjgeTT8OT53b92t5/+o62SitjiSX7Ke94yQE4UvXsb39utlRx0g/hX
+ yXODja76pOtl9xMsfqOTZ1cbW/Y29bJHx26+qHLb7EEuy3Jgp07OOsD004hTbi0KG+lRB9I1slp4dsc2
+ GTvtP7Ieg98ud4tlpYMifKQy2BznfPoFYmzhkvFbFka2pHl1+HU2fMnPrelSFuuKOkqUdOtb7Vcbk6Go
+ cVx5Wn6gJqx5NXF8IduskMI520b66s2AcM2YNqYhJceT/wBVz5xpISkAJAAHABq5tcUXfXJ1skf85uns
+ w79mLx0vftB1cM8YLX7Qih4I5Dnr+3s34F62T3FL/lL79ifjFd/anfj3jAGA38RyhJkgt29pXz1eUPQm
+ osZiJHajx2kttNpCUoSNAAH6MdYSRiWyLaQAJTOlbBp9l1h5xl1JS4hRSpJ4QRrZS4y+XQ9xpjmmSwPo
+ CedH2HuXiT/oHxo8P2UspAtzP75UlK0qSoAgjQR0g1jqxmyYlnRR+zKtsb/CrWwDcRbsWWt88Bc2B9C9
+ e4DTAm+pX8Kkb0h4f61fHVYOh5o/6hUU6Y0f1SfhyfO3eu9vH/062SnGOZ7Ke94yQE4UvXsb39utlRx0
+ g/hXyXODja76pOtl9xMsfqOTZ1cbW/Y29bJHx26+qHLVJBSoHnBFX1rab1c2+rKdA9462SL4TdLm0T4T
+ IPeiQkFROgDfJNYtzXt9qLkW1ASpIBBc+og1dr3c7xKXJnyVurV0neHoGtabHdLzIDECKt1RPMN4ek1h
+ 3JthsNv3mTtivIN1b7Xb7awhmHGbZQkaAEjvGbXFF31ydbJH/Obp7MO/Zi8dL37QdXDPGC1+0IoeCOQ5
+ 6/t7N+Betk9xS/5S+/Yn4xXf2p346+A8DScSyw88C3AaP0i+ueqmokONCjNRorSWmWkhKEAaAANTN7B+
+ 0P7vQ2/o3d6SB1utrWu5SrXPjToqyh1lYUk1hnEMS/2eNPYOxKhocRzpVzj7DXLxJ/0D40eH7KWUgW5n
+ 99Z3WgbXbrmjmJYXrQHtonRXuo6lXYahyA/DYd3vpG0q3vvGnWlt7KHJHS0sDsqanYzJSeh1Y/PVSdCg
+ eg1EOmHFV0so+A5PnWrRiCI30RxrZINab3Pc6GO94yQE4UvXsb39utlRx0g/hXyXODja76pOtl9xMsfq
+ OTZ1cbW/Y29bJHx26+qHLsYo2OJ7sP8AuFa2Tq9jiZaeswe83K5Q7bEclTH0tMoG+SaxpmXcL2tyLAWq
+ PB7Fua0eM/KeSyw0pxxR0BCRpJrC2UEl8Nyb04WkeQT4VWy02+1RkR4UZDLaRwJHes2uKLvrk62SP+c3
+ T2Yd+zF46Xv2g6uGeMFr9oRQ8Echz1/b2b8C9bJ7il/yl9+xPxiu/tTvx1sD4JlYmmhSwW4TRG2u/wDp
+ NQIES3RGokRlLbLQASkas2JGnRH4shsLaeQULSeg1i3DkjDt5kQXASjwmV9ZB1stMXnD94SxIWRClEJc
+ 6EHr0khQCknSCNIP2FuXiT/oHxo8P2UspAtzP76zLgJmYOuJ52AHE6w4aw46HcPWhenSTFa+GspIUhQ6
+ RV3RsLtckdWU8OxR1rO8HrTbnNPDHRyfOZ3Z4uCepDa1sj2vpbw90BA73jJAThS9exvf262VHHSD+FfJ
+ c4ONrvqk62X3Eyx+o5NnVxtb9jb1skfHbr6ocuxioLxNdj/3CtbJ4f8A5QVdDJ7xd7xBs0F6dNdCGmx/
+ NR6BWMMYz8TTitwluKgkMsjgA1sK4NuuJZOwjNlDCT9I+rwRWGcF2bDjIEZoLfI+e+vwj3zNrii765Ot
+ kj/nN09mHfsxeOl79oOrhnjBa/aEUPBHIc9f29m/AvWye4pf8pffsT8Yrv7U78dWI2l2Uw2rwVOJB9BN
+ WeBEt1riRYrSW20tp3h6OfXzEwkjEdkUtlAEyKCpk9PSmloWhakLBCkkgg8xGtlPi/dSBuRMc0yYyfoi
+ fro+wty8Sf8AQPjR4fspZSBbmeVqUlIJUQAOEmm3GnEhbbiVjpSdI5diGIJWHrs3o8KOv8hppQ0KI6Dq
+ jmrBx/8Axa0ezo18WMbRiS7N/wDcrPbv62DHw/hWzO9MZPJ80pAfxlP/ANASjWyRZKbbdneu8gd7xkgJ
+ wpevY3v7dbKjjpB/CvkucHG131SdbL7iZY/Ucmzq42t+xt62SPjt19UOWkgA1iB3bb5dF9Mt7+462SrA
+ Xe5znUY1332o7Lr7ywhtCSpajwACse4yexJcyG1EQWSQyjp/1HWwFgGTiN8SZILUBs/OVzufcmoFvh26
+ K3FiMJaaQNASkaO+5tcUXfXJ1skf85unsw79mLx0vftB1cM8YLX7Qih4I5Dnr+3s34F62T3FL/lL79if
+ jFd/anfjqwPHovrUfGovi0f1Se8ZtYOMCabzEb0R5B+lA5l61ousu0XGNPiLKXWVhQ+/7jWHb3Dv1njX
+ Bhfhp+cjnSvo+wly8Sf9A+NHh+yllIFuZ5TiXMm0YemvQXGHXJCAD91XPOe+P70GM1HHvGrji7EdyKzJ
+ ubygrhSFaBWTF3MizTYC1krjvbMehzl1wSlVsn9JYc/tp0aHXB/qOrz1hNG1Ybs45zFb+GvmfG2jGlzI
+ GhLhQoe6NbLCYHcGW4A77QLfJ8ayBJxVeXkneMlWtlDGDWEEO87r7ne8ZICcKXr2N7+3Wyo46Qfwr5Ln
+ Bxtd9UnWy+4mWP1HJs6uNrfsbetkj47dfVDltwc+TwJbp+oytXo3qlO7dJfd8o4pXadOtkhFI3Vl8x2L
+ evnBiwoSiwxHOhcoj+zWwThR/Et3QwAUxmtCn3OhNQoUaBFZjRmw200kJQkd+za4ou+uTrZI/wCc3T2Y
+ d+zF46Xv2g6uGeMFr9oRQ8Echz1/b2b8C9bJ7il/yl9+xPxiu/tTvx1YHj0X1qPjUXxaP6pPeLlbYlzt
+ 8qFJQFtuoKVfd0aKxJYZVgu8mA+PAV8xfXRzEa2WGMdwLsIkpf8AgpagFdCF8yqBCgCDpB4D9g7l4k/6
+ B8aPD9lLKQLczynO21bXNt1yQjQHUFpfpH6cp7sIGKmWlr0IlILfpXy6eCLZPX0MOf207vuuH/UdVpBc
+ dQgcKlAdtWYFizW9nnRHbST6Br51wgzf4b4G89H1smZIXhyUxst9uTyaU8hmLIdUQAltSiegAVOdL02U
+ 6TpK3VntOqKwLEELCVnb4FKYSsjoKx3vGSAnCl69je/t1sqOOkH8K+S5wcbXfVJ1svuJlj9RybOrja37
+ G3rZI+O3X1Q5bjqcIGEro/zlooH/AJa+UMFUTCYdUPGXlLGteLmzarZMnPeAw0pZ+/RV0uD9zuEqa+sq
+ cfcK1HVbbW6tKEDSpRAA6SawThtrD1iYjbEbesBb56VHv+bXFF31ydbJH/Obp7MO/Zi8dL37QdXDPGC1
+ +0IoeCOQ56/t7N+Betk9xS/5S+/Yn4xXf2p346sDx6L61HxqL4tH9UnvOZeDxfrOZcZsGZFBUjpWjnTR
+ BBII0EbxB1sqsXi720WyW7/jIo3j10fYO5eJP+gfGjw/ZSykC3M8pzNtIuWE5ZSjS5HIdR+m3y3IU6LK
+ bOhbTqVA+irbOZn26HLZIKHmkr08txLIEXD12fJ0BEdX571KOlRPSdXD8ZUq921hI0lchHxpKQlKUjeA
+ Gga+dcHZ2q3S0p0lp4oUdbJGalE66RFr8NoKSOTY5mIhYUurxc0KLJQj0q1rbGXKnxGEDSXHUp7TUVhE
+ aOyyjwW0BI9AGjveMkBOFL17G9/brZUcdIP4V8lzg42u+qTrZfcTLH6jk2dXG1v2NvWyR8duvqhy3Oi5
+ fJ7NCgpVvyXdkofcjWQhS1pQkaVKOgAc5NYct6bZYbZDAH0TCe07+tnPdvk9nh25HDJc2a/QjWytsgum
+ KGHHE6WogLyuQZtcUXfXJ1skf85unsw79mLx0vftB1cM8YLX7Qih4I5Dnr+3s34F62T3FL/lL79ifjFd
+ /anfjqwPHovrUfGovi0f1Se9ZqYONouO6cVH+ElqJPQhzWst3l2a5Rp8VRDjSwfuUOcGrDeIV7tMW4R1
+ /McTvp50q5x9grl4k/6B8aPD9lLKQLczymUwiTFfYVo2LrakH/yFXaEqBc5sRXCy8pHYf05P34TrE7bX
+ F/Swlb3q18tzVniDhCUhXDKUhoa2U9uVLxbHe0aURUFxfeMwrYbhhG5NNp0uITs/c1stLki34ut6l+C6
+ S17/ACbOi5CPZIcD68h7Z/yRrZYW1U/FsJXCiPpdX3zGSAnCl69je/t1sqOOkH8K+S5wcbXfVJ1svuJl
+ j9RybOrja37G3rZI+O3X1Q5bmhexdcTvobVpaiAMo1sv7ObtiiA19RpYdX6EVwa2b08SsVFlCvmMMpRr
+ ZLW8s2mfNI333QkH7kcgza4ou+uTrZI/5zdPZh37MXjpe/aDq4Z4wWv2hFDwRyHPX9vZvwL1snuKX/KX
+ 37E/GK7+1O/HVgePRfWo+NRfFo/qk96vdoiXq0yoEpIKHkkA84VzEVfLNLslzkwJSSHGlkA9Ycx1srsZ
+ biXMQJS/8HLPuLoEEAj7A3LxJ/0D40eH7KWUgW5nlWbNr+Q4sedQjQ3JQHB+nLu/7iYliurP0L5DTtAg
+ gEHSOWZ03gOTYFrQr9ikuuj7zrZLWjaLbOujiPnvr2tv8Ce8SWEvx3WF8DiCk+gir1b1227Toaxo2l5a
+ R+EHeOrDlLhy48lvw2XErT6UnTVsnIm26HKaOkOtJVp9I3+S5u3gT8UKjIUC3EQEehWtknaChi43VaSC
+ shls98xkgJwpevY3v7dbKjjpB/CvkucHG131SdbL7iZY/Ucmzq42t+xt62SPjt19UOWYsvjdjsU2ao/O
+ CClv71q4KedW8866s6VuKKlHpKjpOtk5YDGtki7Op+fJOwb/AADWNY1kfKcVXl3mMpetlU0G8GQ/9bq1
+ cgza4ou+uTrZI/5zdPZh37MXjpe/aDq4Z4wWv2hFDwRyHPX9vZvwL1snuKX/ACl9+xPxiu/tTvx1YHj0
+ X1qPjUXxaP6pPe81cHi8WzdOIjTLipJIA8NGsDo3xWV2MBerWIEpz/GREe+j7A3LxJ/0D40eH7KWUgW5
+ nlWdtqCoFtuI4WnCz736QSCCN4jfFZd4mF+w4wFr/wATF0NPDp0cB5XKkNxYz0h06G2kKWo/cBprEd3d
+ vN6nT1knbXDsfuTzasWM7KksR2hpW6sISPvJ0Vh+1N2ezQYCB+yaAV+I757znJZDEvrVxQPmS0DZfjRr
+ ZR3oTsMiIsjZwlFA5Jcpjdvt0ua6dihlpStJq5TXZ8+XLdOlbzqlk+nVbQpxaEJGlSiAB95rB9mFkw7b
+ 4WghYbC3Pxr3z3zGSAnCl69je/t1sqOOkH8K+S5wcbXfVJ1svuJlj9RybOrja37G3rZI+O3X1Q5Zmviw
+ XW6C2Rl6Y0M6FHrua1is8i9XWLAYB2TqwCeqnnNW+Exb4EaEwnYtMNhCR6NZfgKP3Gr2suXees876/jr
+ ZaK04LtoH38gza4ou+uTrZI/5zdPZh37MXjpe/aDq4Z4wWv2hFDwRyHPX9vZvwL1snuKX/KX37E/GK7+
+ 1O/HVgePRfWo+NRfFo/qk97ICgQRpB3iKzOwduDdTLioPyKWSpHQhXOnWsN6l2O6RbhGUQtpekjrDnFW
+ a7xbxaos6MsFt1IOx5wecH7AXLxJ/wBA+NHh+yllIFuZ5Vj63C4YSubQQFLQ3s0elNEfpy8xQvD1+aWt
+ X+FkENvikLStCVoUFJUAQRzg8qzdxX8khpskVf0z4Cnz0I1sosNmfd13R5H0EPwfvcPesysPbsYYf2A0
+ vxgXkDWysv4tOJGmXFgMTNDSuSZxYhEO1MWphehyWdK/Vp1stMPi9Ylj7NOliMQ6733GSAnCl69je/t1
+ sqOOkH8K+S5wcbXfVJ1svuJlj9RybObja37G1rZI+O3X1Q5XmPjNFgtyokdWmdJQQkdRPWpSlLUpSjpU
+ o6STzk62UmE/kMA3mUjQ/JGhkdVvXXvoX6DV5QUXWcnofX8dbKl4rwVEHUecHIM2uKLvrk62SP8AnN09
+ mHfsxeOl79oOrhnjBa/aEUPBHIc9f29m/AvWye4pf8pffsT8Yrv7U78dWB49F9aj41F8Wj+qT3zEdgiX
+ +zSYEneCx8xfOlfMRV1tkq1T5MGUjYusqKTrZV4yNouQtktf+DlK3j1F/YC5eJP+gfGjw/ZSykC3M8qf
+ aS9HfZIGhxtSe0aKusRUK5TIquFp5Sew6mU+Nvl8QWWc5pkMJ0sHro5TirEkPDlpdmvkFZBDLfOtdXS5
+ y7rPkTZThW68sqJOrb4Ei4zY8OOgqdeWEpHprDNgjWGzxYDI8BOlxXXWeE96UlK0KSoAhQII+41j7Dhw
+ /iGSwkaGHiXWfQrm1W3FtOIcQopWhQKSOEEb4NYKxA1iCwRJZWA6hIbeSOunkT77Udh151QCG0FSj0AD
+ TWML+7f7/MnKPzCrYNDoQnWyxw1uJYEPOp0Spmhxf3J5h33GJAwpe/ZHf7dbKrjnB+9KuS5woIxUT0sp
+ 1su1/wD4XZvU8mzl45H2NrWyP8funqxyrGOMYOGYBWshcpwfQs85q63Wbdp782Y6VvOq0kn4DWy7wcrE
+ V0DshB+QxyC6euepTbbbTaEISEpSAEgcAA19GkVjKN8lxTeWerKXrZKTi7a7jDKh9E6FD0K5BmzxQd9c
+ nWyQUE3u5ezjv2YfHO9+0K1cNb1/tftCKHAOQ54HS9Zh0IXrZPcUj7Uvv2J+MN39rd+OrB8di+tR8ain
+ TFj+qR8O+5t4P+XQReorf+IYR9MOs3rJUUqCgdBB0g1lpjDd60iHJc/xkRICj10fv+5eJP8AoHxo8P2U
+ spAtzPK8zLeIGMLggcDpDvvakGdJgS2ZcV0tvNKCkqHSKwRjGJie2hekNy2gA+1ye9XqBZYD02a6ENI7
+ VHoFYuxXOxNclSHiUso3mGuZCdbKzBO50cXmcj/EvJ+hR1Ed8zMwqm+2JTrCNMuICts9cc4ojRq5aYtN
+ gvSGX1kQ5RCF9CTzKoFKkgg6QeQ5uYu+TMCxxHPpXQDJI5kdXWy2wsb/AHxC3kaYkUhbp+ApISkAAaAO
+ ADvuNilOEbyecxl62Vx0Y0tvJc6o5av8JzysbWyvkh7BsBHkypHJs3XdtxlI/wBDDadbJJYF2uKf/pHK
+ caZiW7Dza48cpfnkbzfMj8VXS6zrtNdmTXlOurO+T8BrYXw1OxHdGocZJ2PC65zITVjs0Gx25iBDb2Lb
+ aeHnUecnvOb1u+SYqW8lOhEhoK1sqr2LZilhlz9lMSWT3911tlpbjqwhCRpUonQABWY+YAva12y3+Itr
+ 33Od0jWyT/z+d7P37Hp04uvPtCtXDu9fbZ7Qik+Cn0chzxUDMtX4F62TS9GGHPaF9+xJxgu3tTv92rDO
+ iZG9aj41G8Vi+ob+HfVoStCkLAUlQ0EHgINZjYR7nb0osJ/wUklbJ6OlOth2+y7Ddo1wjKILavnDrp5x
+ Vpuca626NOjLCm3kAj7ukH9/XLxJ/wBA+NHh+yllIFuZ5XndAS3crXMQP2rKkKP4NWyXufZJ7U2E6UOI
+ O+OZQ6DWDsa23EsIKbUGpTY+lY/9jkuJ8V2rDsNT0t0Fwj6NkeGs1inFtzxLNL0pexaSfomR4KBrZa4A
+ XcXWrvcmtERB0st+VNABKQAAAN4d8IB3qzWwbuRcTdIbREOUolY6jmtlZjpE6O1Zbi8PlLY0MLV9dHIM
+ ZYthYZtq3lqC5TiSGGek9JqfOk3CY/LkuFbrqypSj0nVttulXOcxDioK3XlhKRWFsORcO2hiCwAVgbJ5
+ zrrPfsyZCWMHXI9YJR72tl49tWMrLzbJ8J5LnfAJbtU7mBU3rZJz0rtE+FsvntPbMehXJswJXyrF94WD
+ pAfKB6E62TUkNYpW2VAbbHWOT3S9Wu0sKfnzG2UjpO+axZm3MmhyLZklhngLx8M04446tS3FlSlHSVE6
+ STrYbw3ccQ3BuJEb9Y59VCek1hnDNuw5bkRIaPnHfddPhOK71nJZvlliYuDaSVxF7/4FazTq2XUOtnYr
+ QoKSRzEb4rBOJ2MR2KO+V/TtAJfR/q77PnRLdFclS30tNNjSpSjorHeYsu/LXChFTMAH+buvlBK2nFiU
+ eVZUO+neBrFrwfxJdXAeGQrVszm13aAs80hHxpB0oQelI5DnY6Ddrc11WTrZKulVjltjhQ/31RABJq+r
+ 2d5uS+mS58dVlWxeaV0KBqAtBtcIjhWw0T7o79izDcXEdnfguaAsAllzqrqfCkQJj8SQgodZWULB6RrZ
+ T4xNsuItMt3RFlH6M9Rz9/XLxJ/0D40eH7KWUgW5nlec8EOYcYkAArZkJ7DrQLhMt0pqVDeU08g6QpJr
+ Bma8O5bCJeFiPK5nfqLpK0rSFJUFA84OkHkLz7TDanHnEoQkb6lHQBWLs2oUPbItl0PvcBf+oKuNynXO
+ SuTMkLedVwqUdbL7Ld65rauV1aKIY322jwu022202httAQhAASkDQAB365W+Jc4L8KW0FsvJIUKxjhOZ
+ hi6rjOgqYWSWHesNVp11l1DrS1IWggpUDoIIrAGZbF1Q1bbu6G5gACHTwO9+xfjO3YahFTiwuUsfRMCr
+ 3e598uDs2Y4VLWd4cyR0DVbbW6tLaEFSlEAAb5JNZc4FRYYgnTEgz30/0k9/znuIYsUWFzyXh2I1rLNV
+ Au0CUnhafQqmnEustOJIIWkKBH3jkmaVqE/CUtaEkqjEOp1sqb4LXiZplxexaljaj3lL7BfLO2p20J2R
+ QDv6O+Xq5M2q0zZzx0JZbJ9J5hUuQuTJefWdKnFqUSfvOnWw1d1Wa9wJ44GXQVDpTUSXGlxWJMdwLadQ
+ FIWOcHkb0mMwlSnn0NgDSSpQFXXMnCdtQQZofX1Whsqvmct1lILNsjpio6x31VPuU+4vF6ZKcecPOs6+
+ EMD3PEkpOxQWogP0j5HwqxWC12CCIkBkITwrV9ZZ6T3ubEYmxJEWQgKaebUhY6QoaKxJY5FivMu3vA6W
+ 1nYHrJ5jrYTxTOw1c0SmFEtK3nmuZaasV+td9gty4L4Ukj56PrIPQR3vE+NLNhxhRkPBb/1GEb6jWKcZ
+ XfEkkrlOlLAJLbKfBT3jA1xTbsVWqQvwQ8En0L77LfRHiyH1kBDbalKP3AVNdL8yQ6Tp2bqldp1Yy9hJ
+ YX1XEnsNQX0PwIbiNBC2kq0+kchzjlJfxaUJVpDTCBrZIS0A3iKT1Fgd9u7wjWqfJUdAbYWrT94FPuqd
+ edcVwrWVH+Z1QdBBrCstM3DdokAg7OOke783v+b+EA8yL7Da+e2AJIHOOtrJUpKgpJ0EHSCOmss8dJvc
+ IW6a8BPYT/N1H79uXiT/AKB8aPD9lLKQLczyvH8RqVhG7thGlSWdmPSD3jDeYGIbAQlmQXWPJOb4qw5s
+ YcuYQ1MKoTx6/gVHlxZTaXY8ht1CuApVp77Mutst6NsmzWWU9KlVfs47TFCm7UwZLnlFbyAav+Mb/f3F
+ GbMVsOZpO8gazDD0h1DTLaluKOhKUjSSawPlWhkM3C+I0ueEiN0fjpKUpSEpSAANAA4ByDEOH7bf7cuF
+ Mb0gjShf1kK6wrFWE7nhqeqPKbJaJJaeHgrGqCQQQdBG+CKwXmvLte1Q7uFSYnM5wrRVqvFrusZMiFLb
+ eQeg7/oPenXGmkKW4tKEpGklR0AVjDNiFBDkSzEPyOAvfURU+fMuMlyTLfW66s761HVZZefdQ0y2pa1k
+ BKQNJJNZe5cItAbuV0QFzCNLbfM13+ZMiQo7kiU8hplsaVLUdAFY6xQrEl7dkI3ozXzGE/6dfK3GjFwt
+ zVomPBEpgANafro5JJjtvx3mHACl1BSR9yhWI7M9ZL1Nt7qSNqcOw+9B306ra1trS4hRSpKgpJHCCOA1
+ l/i9jEdobbW4BOZAQ830/wCrWeeZZbW664lCEjSVKOgAVi/NmHDC4lk0Pv8AO+fATVrxfeIN/bvC5K3X
+ tl9Lsj4aDwpq1XOJdLbGmxlhTbyNkCPh3q4XO3W5lT0yW2yhPCVGsw8wDiFYgwQpEBtX83T3jCmYN7w0
+ Ay0oPRfIrqHnXZ1+M251o+/Qzkwovw0yPcr9cuEv+49yv1y4S/7j3K/XLhL/ALj3K/XLhL/uPcr9cuEv
+ +49yv1y4S/7j3K/XLhL/ALj3K/XLhL/uPcr9cuEv+49yv1y4S/7j3KGceE0cAke5S848MJ07FuQadzss
+ oGhu3vLp7O9nR9DZ1fzcqXnRfXDoYiMNip2ZeLphJ3QLX3IqXdblMWVyZrzhPSo94jRZMt5LMdlbrijo
+ CUjSawhlGslqXffSIwP99Ro0eKyhhhpLTSBoCUjQAB33M7BZv1u+WxGv8dGT76OrSkqQopUCFA6CDwg6
+ 1mvtzsktEmDIU2scI5lDoIrC+bdouKER7qBEkdf6iqYkxn2kuMPJcSoaQpJBGtp0VdsWYesyFKnT0JKf
+ +mk7JZrEub86WFsWhr5M35U+HT8h+S6p15xTi1HSVKOkn9ABUQACSd4AVgLK/bQi43xn5hGlqMfiusy8
+ PMWLEjjcZjaozyAtoara1tuIcQdCkqCgfvFYPvzN9w/ClpX9IEBD3Ts07x75mriZm12Ny3Muj5XNBQU9
+ VvXyxv7V2wxHjlwbfD+Y4n4HkE2ZGgRHpUlYQ00kqUT0CsQXVd4vU+4KGjb3ioDoGtl/iFFgxLEkunQw
+ 59E99yV0haHEJW2oKSoaQRvgg98zbxSxDte47DoMmT+1HURr5OYoaciOWOS6A42Spj709A7+60082406
+ gLQtJSpJ4CDwise4Vcw3e3WUpPyZ4lbB1ocyTCktSYzqm3m1AoWDoIIrBGZkC9ttQ7ktLE7pO8l2gdI0
+ j993LxJ/0D40eH7KWUgW5nldwYTJt01lSQQtlY/KpCNrfeR1VqT2HvMC8XS3LSuJMdaKeqreq2Zt4ohJ
+ 2Dy25I6VioOd8TQkTLW4OktrqLm5g939qt5r0oqNmDhB9IAuraRTWKsNKSSm7xSfx03iPD/CLpG2X3uC
+ u6GwaAN0o+j8Yrujw+g6XLrF98U/jfCcYfPvDB6dialZsYQYB2D7rx6Epq452sb4g2pX3FxdXTNLFc/e
+ RJEZHQ1UqbMlrK5Mhx1ROnSpROvhrA19xC6ksMFtjnfXvJrCuBbPhxoKabD0r6z6xyO6Wm33eE5EnR0u
+ tK6RwH7qxnlncrG47JghUmD2rRRGjVtt3uVqfD8GU4ysdU1Yc55LIS1d4YeHlGzoNWnH+FbkNLVxQ2vq
+ u/MNNSGHkAtPIWk86VA6hUkcKgKm4isVuSsy7iwgpHAVb9XrOOzx0rRbWFyXOZZ+aisQY3xBflkSpakt
+ eSRvJ1rJh6632UmPAjqcPOr6qR0k1g3L624cQ2+sB+dzukeD+Dvd4xJZ7ElldykBpLp0Ir9ZuCwTpuXY
+ mjmtgttG9OcJ+5FSM38KND6Lb3fQjY1c87QUaLda9iel1VYgxffMQOEzZSi3p3mhvIHeGnXGXEONOKQt
+ J0hSToINWTNrENvbSzJ2EtvpX4VQ87LMsASLc+0ekGmM28GkfPffQfV0jNLBXPPV7lN5nYK85VZr7ar1
+ EVJt74dQFbEq7/m7hEz4CbzEZJfjDQ8APCRrW25zrXLblw31NOoO8Qaw5nLAebbZvTBac8qjfRUXF2GZ
+ TaFtXePoV0q0Gjf7COG6RgOnZipuOsJQUaXbq2rpDfzjV5zngNJW3aoa3V8zjlX7GN+vyyZctQa5mkby
+ f05O4hnsznLQWXHYrvzgocDKtXH+L38KxYDzUZDxkLWn3a/XfdB4FtZpWdl5+rb2KczoxGrwY0ZNTcz8
+ XSuCbtI6ECptynznC5KlOuqJ+uon9xRYUuY6GozC3VngCQTWHsoLxMLbt0cERnqcKzVhwrZLC0EwoqUr
+ 53SNKzyDMrLgzFO3izs6XuF9hP1/vTS0KQopUClQOgg7xB17ZiG82pYVCnutfcFb1W7OPEUcITJaafA5
+ +BVRs74Wx0P2l3/xXSM7LCE+ISRTmd9oQjQ1a3z6VCpudk8+JW5tH3rNXTMPFNy2aVz1toVwob+bTjrj
+ qytxxS1HhKiSf0wYEy4SW40RlTrqzoCUisDZZMWcon3UIemcKUcKGv0ZsYcVd7GJrKNMiHpV6Ua2CMaS
+ 8LTyvQXYju881Vrxxhi6MpcZuTSD1HDsFU5iPD7QJcusZIA64q95sYbt6SIqlTHuhG8msvsWyMTQZr0g
+ IQ6094I5kHUumN8NWmY5DnTdrfQASiv1pYKQnx8kkdSpGbuEWUgtKfeV0bCr1nS+6gt2qBtP+tw7Kp8+
+ ZcZTkqW+p15Z0qUo69kvlxsc5EyC+ULHCOZQ6DVpzrgLabbudvWhfOts03mtgxY8ccR6W6bzMwa5sUC4
+ 76j1aQtDiELQdIUAQfuPeZ+PcLW2U7Flz9g82dC06KOaWCm98zlr+4IqdnNh6Ok/JIz0hXu1izH14xJ9
+ E4QzFHAyjvGFMy7xYG0xnR8qijgQvhTUDOTDD6R8qZfjn36Rmjgo8NwV7lWTEdnvjLq7c/twbVoUdQkJ
+ BJp7MjB7C3G3LjoWhRSfm0c0sFAePuH0IqVnFhZjfZQ++fRsavmctzlIW1bIoihQ8M766kyZEp9x991T
+ jqzpUtR0knXjyH4zzb7Dqm3EK0pWk6CCKsOc1yioQ1c4wkpA8NG8uomcGE3k/Th9k/h00jNHBXnBfuVa
+ ccYYu0xESJO2bqxvDY98xphVjEtldi6B8obBWyvoXUmO9FfdYeQUONrKVpPMRrAlJBB0Eb4IrD2ZuI7K
+ kMl4SWOo7VuznsTwAmwnmD0g7IUzmngxaNG6Ckk9KKTmLg4kAXMEkimJDMhhDrSgpC98H973LxJ/0D40
+ eH7KWUgW5nlZAIINX/J+0TnX5EKUuO6sk6OFFXnK3FNsC1oYEppI8NqpESVGWUPsONqHMpJHftkrpPe7
+ HgvEN8WPkkJe187q95IFYZyltNu2D9zX8rf6nA2DTTTbLaW2kJQhI0BKRoA5KQFAgjSOAg1izKu03jbJ
+ UBQiSj7ijV+wlfLC8UTYignmcTvoOvHutyjaNpmvo0dCyKj49xYwkJRdXaGZeMPOR90UvMbGC+G6LqXi
+ a/yyS9c3z6FkUtxxxRU4tSldJOk60aLJlOhqOyt1Z4EoBJrC+UM6Vtcm8ubQ15EeGatlpt1pipjQYyGm
+ wOYb59PfM7wBGtXrF8jyZ4tyvau/qSlSVJUAQRoIPOKzIy8etD7tztzZXBWslaBwtd40nVwnl9eMRrS7
+ sTHh87yx/bVgw9bLBBTFhMhPXX9ZZ+/Vz2/y6x+ve/ckS13KYQI0N538KSateVWLJ6myuMIza/ruGrNk
+ zao5Qu4ylyVc6E7yKttktVrbS3ChtNADhCd/keN8sYt9Lk63BMebwkfUcq6Wi42mUuNOjLZcSeBQ+Hfg
+ CSAN+sL5cX2+rQ4tsxYnO6sfAVhvCNnw7H2ENkFw+E8rw1fpUlKkqSoAgjQQecVmPgh6w3BcyK2TAfUS
+ kjgbPV7zkrcUs3qbCV/12NPuamaoAxpP/Cjv0Xxlj1ifjUDxGH6lHw7zmDxuuvrO/ZGAGFdvWJ1HP2L3
+ 4FVdd65zvXufHv8Aldxvg+hXfc38HFJF+htdCZIH9/eo3jLHrE/GsOlIsEADqq+J/e9y8Sf9A+NHh+yl
+ lIFuZ5dNtNsnpWJcNp3SPrJBNXbKLDEzxcuxV9KKuWSt4YClwprT6eYHeNXHBGKLbvyLW9o6UjZU7HfZ
+ UUusrQeggjkUCxXe4rQiJBddKuDQmrNk5fpehc95ERHOPCXVjyyw1aNgtTJlPD67tNtttIShtISkbwAG
+ gDlLzEd9pTT7SHUK4UqGkVf8pLBcdk9CWqG6fdq85WYptmyUhgSmgNJU3UiFLiq2MiO40roUkjvgSpR0
+ AE1a8IYiuqtES3OkdYjYirJks4Sh27zgB5JqrLhmy2RsIgw0Nnr8Kj37N2y3S6MWxMGIt4oWrZBNdw+K
+ vNL/AGV3D4q80v8AZXcPirzS/wBldw+KvNL/AGV3D4q80v8AZXcPirzS/wBldw+KvNL/AGV3D4q80v8A
+ ZXcPirzS/wBldw+KvNL/AGV3D4q80v8AZXcPirzS/wBldw+KvNL/AGV3D4q80v8AZXcPirzS/wBldw+K
+ vNL/AGV3D4q80v8AZXcPirzS/wBlZU2u4WuwymZsdbLin9ISeQOIQ6hbbiAtKhoKSNIIrGWUSJK3ZtiK
+ UL4VRuY/hq4Wq4W15TMyK4ysEjQod5smDsQ3twCHAcKOdxQ0JrDGUlstpQ/dFiW/1PqJpptpltLbaAhC
+ RoCQNAA1s37Nc7rCtCIENbxbdcKgK7h8VeaX+yu4fFXml/sruHxV5pf7K7h8VeaX+yu4fFXml/sruHxV
+ 5pf7K7h8VeaX+yu4fFXml/sruHxV5pf7K7h8VeaX+yu4fFXml/sruHxV5pf7K7h8VeaX+yu4fFXml/sr
+ uHxV5pf7K7h8VeaX+yu4fFXml/sruHxV5pf7K7h8VeaX+yu4fFXml/sruHxV5pf7K7h8VeaX+yu4fFXm
+ l/sruHxV5pf7K7h8VeaX+yu4fFXml/sruHxV5pf7KGBcVngtL1Iy/wAXL4LS7Qyyxp5qUPSQKZymxk54
+ URCPSumMlsROeHLjIqNkc4PGrt7iKhZNYdYAU+++9UHAWFLerSxbW1HrL+dTEWNHTsWGENjoSkDk94sV
+ ovUVTE6KhwcCT9YViLJucwVvWd8Po8iveVU+03O3OKbmQ3WVA6PnJIHemIsmSsIYZW4o8yQSasmVeJrl
+ sFvtiIyfrOVh7LPDtlKHVtmU+Pru0AEgADQBqzYcSdEeiyWUutODQpKhpBrF+U1wt63JVoBkRvJfXRTz
+ LzCyh1pSFDhChoOqATVpwpf7usJh291f+ojYprA2WMuyT2bpNnaH0eC03qZjYWv9wxXNkRbc660pKNCh
+ XcPirzS/2V3D4q80v9ldw+KvNL/ZXcPirzS/2V3D4q80v9ldw+KvNL/ZXcPirzS/2V3D4q80v9ldw+Kv
+ NL/ZXcPirzS/2V3D4q80v9ldw+KvNL/ZXcPirzS/2VHwTilMhlRtL28tNQ0rRDjIUCClpII6CB3nGuE8
+ RTMTXF9i2uraWsFKhXcPirzS/wBldw+KvNL/AGV3D4q80v8AZXcPirzS/wBldw+KvNL/AGV3D4q80v8A
+ ZXcPirzS/wBldw+KvNL/AGV3D4q80v8AZXcPirzS/wBldw+KvNL/AGV3D4q80v8AZXcPirzS/wBlZR2i
+ 6WmHc0zoi2StxOx2Wo4CWnB0pOirjgvFDk+WtNqeIU8siu4fFXml/sruHxV5pf7K7h8VeaX+yu4fFXml
+ /sruHxV5pf7K7h8VeaX+yu4fFXml/sruHxV5pf7K7h8VeaX+yu4fFXml/sruHxV5pf7K7h8VeaX+yu4f
+ FXml/sruHxV5pf7Ky8wtf7fiiG/KtzrbSQdKz32VFYkxnY76AtDqClST0KrEOXN/gXaUxDguPxwrS0sd
+ U13D4q80v9ldw+KvNL/ZXcPirzS/2V3D4q80v9ldw+KvNL/ZXcPirzS/2V3D4q80v9ldw+KvNL/ZTGCc
+ UofZUbS/oC01YkvMWeG04jYLQkgjo0k/ve5eJP8AoHxo8P2UtS9FtZSP3FLs9nm7IyYDDh+9ANT8r8IT
+ CtfyMs/gVUvJK2KKjHujrfQCAal5KXxvSY85hwe6ak5WYxZJ2MEOgdVVSsG4niadutT49CdNKtF0R4UB
+ 8elBpcSUjwmHB6Umi2scKCP0AE0ll1XAhR9ApECcvwYrqvQk0xh6+PnQ3bJCv/A1Gy4xjJ0FFqcAPWqH
+ kziJ4JU/JjsCoOSdtQUmbc3HOlKBVty9wpblbJq3pWrpd+dTEdiOgIZaQ2nqpAA5fMtVtmo0S4bLx5tk
+ kHQKuGVmEZhUpMVTKjzoURUvJCIQoxrq4PuWKfyUvyNJanRl09lLi9vwGG3fQqlZYY1TvblLNfq1xp5o
+ coZaY080LprK3GLh8QCfSumMmsUOeGthuouSEreMu6oHqxUDJrDsfflPvyKt2DcM20aI9tZ3udQ0mkpS
+ kBKUgAcw/etxtVsujO1TYbbw5tkATV2yasMolcOS5F/NNS8lr8grMaYw8kU/lZjNonRb9n6FUctcZ+aH
+ KRljjRfDayn0kVFyaxU/+0LDPpNQMkm94zrqfvS2mrTlzhW1EOIhB1fWd+fTTbbSAhtASkcAA0AfYWXA
+ gzGy3KjNvJ0cCkg1dMp8KTQssoXHWedBqfkhJR4ldUL9YKk5QYta8BDLv4FUcs8aealn0EUMtMa+Z3Ka
+ ytxo5w20p9KqjZOYoeGla47XpVUPJB0jTMuwHq01b8o8LRQC+HZCh1lVBs1qgJSIkFlnQOFKe9XbC9hu
+ zahOgNLWr64GhVT8mcOPb8eQ+xRyOg816d90UMj7cDv3d/3RUTJvDLACn3X3qt2BsLW0fQW1tR6VjZGm
+ 2220BDaAlI4ABoH+xy0JWgpUNIPDW4dv8n+Qo2q3czX5CjardzNfkKNqt3M1+Qo2q3czX5CjardzNfkK
+ Nqt3M1+Qo2q3czX5CjardzNfkKNqt3M1+Qo2q3czX5CjardzNfkKNqt3M1+Qo2q3czX5CjardzNfkKNq
+ t3M1+Qo2q3czX5CjardzNfkKNqt3M1+Qo2q3czX5CjardzNfkKNqt3M1+Qo2q3czX5CjardzNfkKNqt3
+ M1+Qo2q3czX5CjardzNfkKNqt3M1+Qo2q3czX5CjardzNfkKNqt3M1+Qo2q3czX5CjardzNfkKNqt3M1
+ +Qo2q3czX5CjardzNfkKNqt3M1+Qo2q3czX5CjardzNfkKNqt3M1+Qo2q3czX5CjardzNfkKNqt3M1+Q
+ o2q3czX5CjardzNfkKNqt3M1+Qo2q3czX5CjardzNfkKNqt3M1+Qo2q3czX5CjardzNfkKNqt3M1+Qo2
+ q3czX5CjardzNfkKNqt3M1+Qo2q3czX5CjardzNfkKNqt3M1+Qo2q3czX5CjardzNfkKNqt3M1+Qo2q3
+ czX5CjardzNfkKNqt3M1+Qo2q3czX5CjardzNfkKNqt3M1+Qo2q3czX5CjardzNfkKNqt3M1+Qo2q3cz
+ X5CjardzNfkKNqt3M1+Qo2q3czX5CjardzNfkKNqt3M1+Qo2q3czX5CjardzNfkKNqt3M1+Qo2q3czX5
+ CjardzNfkKNqt3M1+Qo2q3czX5CjardzNfkKabQ02EIGhI4B+5yAeGlssrQUqaSQekCpWG7K+PpYiCT0
+ pTS8D4YXstMBHuI//VKy8wmrhtrfuI//AFQy+wkjgt7fuIpGC8NsaNrhN+4io9ot8YgtRkJI/wBIoJSO
+ BI7P/wC//wD/APgmL//EABQRAQAAAAAAAAAAAAAAAAAAAOD/2gAIAQIBAT8AfSH/xAAUEQEAAAAAAAAA
+ AAAAAAAAAADg/9oACAEDAQE/AH0h/9k=
+
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucStatus.Designer.cs b/LFP_Manager/Controls/ucStatus.Designer.cs
new file mode 100644
index 0000000..df7f47b
--- /dev/null
+++ b/LFP_Manager/Controls/ucStatus.Designer.cs
@@ -0,0 +1,188 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucStatus
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.pcStatus = new DevExpress.XtraEditors.PanelControl();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lcStatus = new DevExpress.XtraEditors.LabelControl();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pcStatus)).BeginInit();
+ this.pcStatus.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit();
+ this.layoutControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(236)))), ((int)(((byte)(239)))));
+ this.layoutControl1.Controls.Add(this.pcStatus);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(717, 178, 250, 350);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(147, 27);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1});
+ this.layoutControlGroup1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(147, 27);
+ this.layoutControlGroup1.Text = "Root";
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // pcStatus
+ //
+ this.pcStatus.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Style3D;
+ this.pcStatus.Controls.Add(this.layoutControl2);
+ this.pcStatus.Location = new System.Drawing.Point(1, 1);
+ this.pcStatus.Margin = new System.Windows.Forms.Padding(0);
+ this.pcStatus.Name = "pcStatus";
+ this.pcStatus.Size = new System.Drawing.Size(145, 25);
+ this.pcStatus.TabIndex = 4;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.pcStatus;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlItem1.Size = new System.Drawing.Size(147, 27);
+ this.layoutControlItem1.Text = "layoutControlItem1";
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextToControlDistance = 0;
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // layoutControl2
+ //
+ this.layoutControl2.Controls.Add(this.lcStatus);
+ this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl2.Location = new System.Drawing.Point(2, 2);
+ this.layoutControl2.Name = "layoutControl2";
+ this.layoutControl2.Padding = new System.Windows.Forms.Padding(1);
+ this.layoutControl2.Root = this.layoutControlGroup2;
+ this.layoutControl2.Size = new System.Drawing.Size(141, 21);
+ this.layoutControl2.TabIndex = 0;
+ this.layoutControl2.Text = "layoutControl2";
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2";
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem2});
+ this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup2.Name = "layoutControlGroup2";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(141, 21);
+ this.layoutControlGroup2.Text = "layoutControlGroup2";
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // lcStatus
+ //
+ this.lcStatus.Appearance.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lcStatus.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lcStatus.Location = new System.Drawing.Point(2, 2);
+ this.lcStatus.Name = "lcStatus";
+ this.lcStatus.Size = new System.Drawing.Size(137, 17);
+ this.lcStatus.StyleController = this.layoutControl2;
+ this.lcStatus.TabIndex = 4;
+ this.lcStatus.Text = "labelControl1";
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.lcStatus;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlItem2.Size = new System.Drawing.Size(139, 19);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.Text = "layoutControlItem2";
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextToControlDistance = 0;
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // ucStatus
+ //
+ this.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(236)))), ((int)(((byte)(239)))));
+ this.Appearance.Options.UseBackColor = true;
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.MinimumSize = new System.Drawing.Size(0, 27);
+ this.Name = "ucStatus";
+ this.Size = new System.Drawing.Size(147, 27);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pcStatus)).EndInit();
+ this.pcStatus.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit();
+ this.layoutControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.PanelControl pcStatus;
+ private DevExpress.XtraLayout.LayoutControl layoutControl2;
+ private DevExpress.XtraEditors.LabelControl lcStatus;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ }
+}
diff --git a/LFP_Manager/Controls/ucStatus.cs b/LFP_Manager/Controls/ucStatus.cs
new file mode 100644
index 0000000..8febe9c
--- /dev/null
+++ b/LFP_Manager/Controls/ucStatus.cs
@@ -0,0 +1,49 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+namespace LFP_Manager.Controls
+{
+ public partial class ucStatus : DevExpress.XtraEditors.XtraUserControl
+ {
+ public ucStatus()
+ {
+ InitializeComponent();
+ }
+
+ public void SetName(string name)
+ {
+ lcStatus.Text = " " + name + " ";
+ }
+
+ public void SetTextWidth(int width)
+ {
+ lcStatus.Size = new System.Drawing.Size(width, 14);
+ }
+
+ public void SetValue(int nValue)
+ {
+ switch (nValue)
+ {
+ case 0:
+ pcStatus.BackColor = System.Drawing.Color.Green;
+ lcStatus.ForeColor = System.Drawing.Color.White;
+ break;
+ case 1:
+ pcStatus.BackColor = System.Drawing.Color.Orange;
+ lcStatus.ForeColor = System.Drawing.Color.Black;
+ break;
+ case 2:
+ pcStatus.BackColor = System.Drawing.Color.Red;
+ lcStatus.ForeColor = System.Drawing.Color.White;
+ break;
+ }
+ }
+ }
+}
diff --git a/LFP_Manager/Controls/ucStatus.resx b/LFP_Manager/Controls/ucStatus.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/ucStatus.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucTargetControl.Designer.cs b/LFP_Manager/Controls/ucTargetControl.Designer.cs
new file mode 100644
index 0000000..3fd6f85
--- /dev/null
+++ b/LFP_Manager/Controls/ucTargetControl.Designer.cs
@@ -0,0 +1,298 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucTargetControl
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.gcTargetConfig = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
+ this.lbStatus = new DevExpress.XtraEditors.LabelControl();
+ this.lbTargetInfo = new DevExpress.XtraEditors.LabelControl();
+ this.btnConfig = new DevExpress.XtraEditors.SimpleButton();
+ this.btnStart = new DevExpress.XtraEditors.SimpleButton();
+ this.lbTarget = new DevExpress.XtraEditors.LabelControl();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.gcTargetConfig)).BeginInit();
+ this.gcTargetConfig.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit();
+ this.layoutControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.AllowCustomization = false;
+ this.layoutControl1.Controls.Add(this.gcTargetConfig);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(803, 61);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // gcTargetConfig
+ //
+ this.gcTargetConfig.Controls.Add(this.layoutControl2);
+ this.gcTargetConfig.Location = new System.Drawing.Point(3, 3);
+ this.gcTargetConfig.Name = "gcTargetConfig";
+ this.gcTargetConfig.Size = new System.Drawing.Size(797, 55);
+ this.gcTargetConfig.TabIndex = 6;
+ this.gcTargetConfig.Text = "Target Config";
+ //
+ // layoutControl2
+ //
+ this.layoutControl2.AllowCustomization = false;
+ this.layoutControl2.Controls.Add(this.lbStatus);
+ this.layoutControl2.Controls.Add(this.lbTargetInfo);
+ this.layoutControl2.Controls.Add(this.btnConfig);
+ this.layoutControl2.Controls.Add(this.btnStart);
+ this.layoutControl2.Controls.Add(this.lbTarget);
+ this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl2.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl2.Name = "layoutControl2";
+ this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(932, 307, 250, 350);
+ this.layoutControl2.Root = this.layoutControlGroup2;
+ this.layoutControl2.Size = new System.Drawing.Size(793, 30);
+ this.layoutControl2.TabIndex = 0;
+ this.layoutControl2.Text = "layoutControl2";
+ //
+ // lbStatus
+ //
+ this.lbStatus.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbStatus.Appearance.Options.UseFont = true;
+ this.lbStatus.Appearance.Options.UseTextOptions = true;
+ this.lbStatus.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbStatus.Location = new System.Drawing.Point(526, 4);
+ this.lbStatus.Name = "lbStatus";
+ this.lbStatus.Size = new System.Drawing.Size(77, 22);
+ this.lbStatus.StyleController = this.layoutControl2;
+ this.lbStatus.TabIndex = 9;
+ this.lbStatus.Text = "STOP";
+ //
+ // lbTargetInfo
+ //
+ this.lbTargetInfo.Appearance.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbTargetInfo.Appearance.Options.UseFont = true;
+ this.lbTargetInfo.Location = new System.Drawing.Point(78, 4);
+ this.lbTargetInfo.Name = "lbTargetInfo";
+ this.lbTargetInfo.Size = new System.Drawing.Size(444, 22);
+ this.lbTargetInfo.StyleController = this.layoutControl2;
+ this.lbTargetInfo.TabIndex = 8;
+ //
+ // btnConfig
+ //
+ this.btnConfig.Location = new System.Drawing.Point(607, 4);
+ this.btnConfig.Name = "btnConfig";
+ this.btnConfig.Size = new System.Drawing.Size(89, 22);
+ this.btnConfig.StyleController = this.layoutControl2;
+ this.btnConfig.TabIndex = 7;
+ this.btnConfig.Text = "CONFIG";
+ this.btnConfig.Click += new System.EventHandler(this.btnConfig_Click);
+ //
+ // btnStart
+ //
+ this.btnStart.Location = new System.Drawing.Point(700, 4);
+ this.btnStart.Name = "btnStart";
+ this.btnStart.Size = new System.Drawing.Size(89, 22);
+ this.btnStart.StyleController = this.layoutControl2;
+ this.btnStart.TabIndex = 6;
+ this.btnStart.Text = "START";
+ this.btnStart.Click += new System.EventHandler(this.btnStart_Click);
+ //
+ // lbTarget
+ //
+ this.lbTarget.Appearance.Options.UseTextOptions = true;
+ this.lbTarget.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbTarget.Location = new System.Drawing.Point(4, 4);
+ this.lbTarget.Name = "lbTarget";
+ this.lbTarget.Size = new System.Drawing.Size(70, 22);
+ this.lbTarget.StyleController = this.layoutControl2;
+ this.lbTarget.TabIndex = 4;
+ this.lbTarget.Text = "Target";
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem2,
+ this.layoutControlItem4,
+ this.layoutControlItem3,
+ this.layoutControlItem5,
+ this.layoutControlItem6});
+ this.layoutControlGroup2.Name = "Root";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(793, 30);
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.lbTarget;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem2.MaxSize = new System.Drawing.Size(74, 0);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(74, 26);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.btnStart;
+ this.layoutControlItem4.CustomizationFormText = "layoutControlItem4";
+ this.layoutControlItem4.Location = new System.Drawing.Point(696, 0);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(53, 26);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(93, 26);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.btnConfig;
+ this.layoutControlItem3.CustomizationFormText = "layoutControlItem3";
+ this.layoutControlItem3.Location = new System.Drawing.Point(603, 0);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(57, 26);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(93, 26);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.lbTargetInfo;
+ this.layoutControlItem5.CustomizationFormText = "layoutControlItem5";
+ this.layoutControlItem5.Location = new System.Drawing.Point(74, 0);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(448, 26);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.lbStatus;
+ this.layoutControlItem6.CustomizationFormText = "layoutControlItem6";
+ this.layoutControlItem6.Location = new System.Drawing.Point(522, 0);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(81, 26);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1});
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(803, 61);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.gcTargetConfig;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(801, 59);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // ucTargetControl
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.Name = "ucTargetControl";
+ this.Size = new System.Drawing.Size(803, 61);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.gcTargetConfig)).EndInit();
+ this.gcTargetConfig.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit();
+ this.layoutControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.GroupControl gcTargetConfig;
+ private DevExpress.XtraLayout.LayoutControl layoutControl2;
+ private DevExpress.XtraEditors.LabelControl lbTargetInfo;
+ private DevExpress.XtraEditors.SimpleButton btnConfig;
+ private DevExpress.XtraEditors.SimpleButton btnStart;
+ private DevExpress.XtraEditors.LabelControl lbTarget;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraEditors.LabelControl lbStatus;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ }
+}
diff --git a/LFP_Manager/Controls/ucTargetControl.cs b/LFP_Manager/Controls/ucTargetControl.cs
new file mode 100644
index 0000000..1e9586f
--- /dev/null
+++ b/LFP_Manager/Controls/ucTargetControl.cs
@@ -0,0 +1,119 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+using LFP_Manager.Forms;
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+
+namespace LFP_Manager.Controls
+{
+ public partial class ucTargetControl : DevExpress.XtraEditors.XtraUserControl
+ {
+ public delegate void ButtonEvent(object sender, EventArgs e);
+
+ #region VARIABLES
+
+ public event ButtonEvent OnConfig = null;
+ public event ButtonEvent OnStart = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public ucTargetControl()
+ {
+ InitializeComponent();
+
+ lbStatus.Appearance.ForeColor = System.Drawing.Color.Red;
+ }
+
+ #endregion
+
+ #region UPDATE DATA
+
+ public void UpdateConfig(ref CommConfig Config)
+ {
+ string info = "";
+
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ if (Config.UartModelIndex >= csConstData.UART_MODEL.Length)
+ {
+ Config.UartModelIndex = 0;
+ }
+ info = String.Format("INTERFACE: RS-232 - {0}, MODEL: {1}" //, M-QTY: {2}, PROTOCOL: {2}"
+ , Config.UartPort
+ , csConstData.UART_MODEL[Config.UartModelIndex]
+ );
+ break;
+ case csConstData.CommType.COMM_RS485:
+ if (Config.UartModelIndex >= csConstData.UART_MODEL.Length)
+ {
+ Config.UartModelIndex = 0;
+ }
+ info = String.Format("INTERFACE: RS-485 - {0}, MODEL: {1}" //, M-QTY: {2}, PROTOCOL: {2}"
+ , Config.UartPort
+ , csConstData.UART_MODEL[Config.UartModelIndex]
+ );
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ if (Config.SnmpModelIndex >= csConstData.UART_MODEL.Length)
+ {
+ Config.SnmpModelIndex = 0;
+ }
+ info = String.Format("INTERFACE: SNMP - {0}, MODEL: {1}" //, M-QTY: {2}, PROTOCOL: {2}"
+ , Config.SnmpIP
+ , csConstData.UART_MODEL[Config.SnmpModelIndex]
+ );
+ break;
+ default:
+ break;
+ }
+
+ lbTargetInfo.Text = info;
+ }
+
+ public void UpdateStatus(bool flag)
+ {
+ if (flag)
+ {
+ btnConfig.Enabled = false;
+ btnStart.Text = "STOP";
+
+ lbStatus.Text = "RUN";
+ lbStatus.Appearance.ForeColor = System.Drawing.Color.Blue;
+ }
+ else
+ {
+ btnConfig.Enabled = true;
+ btnStart.Text = "START";
+
+ lbStatus.Text = "STOP";
+ lbStatus.Appearance.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+ #endregion
+
+ #region BUTTON EVENT
+
+ private void btnConfig_Click(object sender, EventArgs e)
+ {
+ OnConfig?.Invoke(sender, e);
+ }
+
+ private void btnStart_Click(object sender, EventArgs e)
+ {
+ OnStart?.Invoke(sender, e);
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucTargetControl.resx b/LFP_Manager/Controls/ucTargetControl.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/ucTargetControl.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucTftpClientcs.Designer.cs b/LFP_Manager/Controls/ucTftpClientcs.Designer.cs
new file mode 100644
index 0000000..a829d32
--- /dev/null
+++ b/LFP_Manager/Controls/ucTftpClientcs.Designer.cs
@@ -0,0 +1,386 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucTftpClientcs
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.groupFwUpdate = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnSystemReset = new DevExpress.XtraEditors.SimpleButton();
+ this.btnReset = new DevExpress.XtraEditors.SimpleButton();
+ this.btnDownload = new DevExpress.XtraEditors.SimpleButton();
+ this.lbDownloadStatus = new DevExpress.XtraEditors.LabelControl();
+ this.btnFindFile = new DevExpress.XtraEditors.SimpleButton();
+ this.teFilename = new DevExpress.XtraEditors.TextEdit();
+ this.progressDownload = new DevExpress.XtraEditors.ProgressBarControl();
+ this.lbFilename = new DevExpress.XtraEditors.LabelControl();
+ this.lbDeviceInfo = new DevExpress.XtraEditors.LabelControl();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.groupFwUpdate)).BeginInit();
+ this.groupFwUpdate.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.teFilename.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.progressDownload.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ this.SuspendLayout();
+ //
+ // groupFwUpdate
+ //
+ this.groupFwUpdate.Controls.Add(this.layoutControl1);
+ this.groupFwUpdate.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.groupFwUpdate.Location = new System.Drawing.Point(0, 0);
+ this.groupFwUpdate.Name = "groupFwUpdate";
+ this.groupFwUpdate.Size = new System.Drawing.Size(462, 242);
+ this.groupFwUpdate.TabIndex = 0;
+ this.groupFwUpdate.Text = "Firmware Update";
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.btnSystemReset);
+ this.layoutControl1.Controls.Add(this.btnReset);
+ this.layoutControl1.Controls.Add(this.btnDownload);
+ this.layoutControl1.Controls.Add(this.lbDownloadStatus);
+ this.layoutControl1.Controls.Add(this.btnFindFile);
+ this.layoutControl1.Controls.Add(this.teFilename);
+ this.layoutControl1.Controls.Add(this.progressDownload);
+ this.layoutControl1.Controls.Add(this.lbFilename);
+ this.layoutControl1.Controls.Add(this.lbDeviceInfo);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(756, 30, 250, 350);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(458, 217);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // btnSystemReset
+ //
+ this.btnSystemReset.Location = new System.Drawing.Point(3, 185);
+ this.btnSystemReset.Name = "btnSystemReset";
+ this.btnSystemReset.Size = new System.Drawing.Size(140, 29);
+ this.btnSystemReset.StyleController = this.layoutControl1;
+ this.btnSystemReset.TabIndex = 14;
+ this.btnSystemReset.Text = "System Reset";
+ this.btnSystemReset.Click += new System.EventHandler(this.btnLcdHistoryDelete_Click);
+ //
+ // btnReset
+ //
+ this.btnReset.Location = new System.Drawing.Point(354, 185);
+ this.btnReset.Name = "btnReset";
+ this.btnReset.Size = new System.Drawing.Size(101, 29);
+ this.btnReset.StyleController = this.layoutControl1;
+ this.btnReset.TabIndex = 13;
+ this.btnReset.Text = "RBMS Reset";
+ this.btnReset.Click += new System.EventHandler(this.btnReset_Click);
+ //
+ // btnDownload
+ //
+ this.btnDownload.Enabled = false;
+ this.btnDownload.Location = new System.Drawing.Point(366, 35);
+ this.btnDownload.Name = "btnDownload";
+ this.btnDownload.Size = new System.Drawing.Size(89, 22);
+ this.btnDownload.StyleController = this.layoutControl1;
+ this.btnDownload.TabIndex = 12;
+ this.btnDownload.Text = "Update";
+ this.btnDownload.Click += new System.EventHandler(this.btnDownload_Click);
+ //
+ // lbDownloadStatus
+ //
+ this.lbDownloadStatus.Appearance.Options.UseTextOptions = true;
+ this.lbDownloadStatus.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.lbDownloadStatus.AutoSizeMode = DevExpress.XtraEditors.LabelAutoSizeMode.None;
+ this.lbDownloadStatus.Location = new System.Drawing.Point(3, 102);
+ this.lbDownloadStatus.Name = "lbDownloadStatus";
+ this.lbDownloadStatus.Size = new System.Drawing.Size(452, 79);
+ this.lbDownloadStatus.StyleController = this.layoutControl1;
+ this.lbDownloadStatus.TabIndex = 9;
+ this.lbDownloadStatus.Text = "None";
+ //
+ // btnFindFile
+ //
+ this.btnFindFile.Location = new System.Drawing.Point(273, 35);
+ this.btnFindFile.Name = "btnFindFile";
+ this.btnFindFile.Size = new System.Drawing.Size(89, 22);
+ this.btnFindFile.StyleController = this.layoutControl1;
+ this.btnFindFile.TabIndex = 8;
+ this.btnFindFile.Text = "Find...";
+ this.btnFindFile.Click += new System.EventHandler(this.btnFindFile_Click);
+ //
+ // teFilename
+ //
+ this.teFilename.Location = new System.Drawing.Point(105, 35);
+ this.teFilename.Name = "teFilename";
+ this.teFilename.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.teFilename.Properties.Appearance.Options.UseFont = true;
+ this.teFilename.Size = new System.Drawing.Size(164, 22);
+ this.teFilename.StyleController = this.layoutControl1;
+ this.teFilename.TabIndex = 7;
+ //
+ // progressDownload
+ //
+ this.progressDownload.Location = new System.Drawing.Point(3, 61);
+ this.progressDownload.Name = "progressDownload";
+ this.progressDownload.Size = new System.Drawing.Size(452, 37);
+ this.progressDownload.StyleController = this.layoutControl1;
+ this.progressDownload.TabIndex = 6;
+ //
+ // lbFilename
+ //
+ this.lbFilename.Location = new System.Drawing.Point(3, 35);
+ this.lbFilename.Name = "lbFilename";
+ this.lbFilename.Size = new System.Drawing.Size(98, 22);
+ this.lbFilename.StyleController = this.layoutControl1;
+ this.lbFilename.TabIndex = 5;
+ this.lbFilename.Text = " Filename";
+ //
+ // lbDeviceInfo
+ //
+ this.lbDeviceInfo.Location = new System.Drawing.Point(3, 3);
+ this.lbDeviceInfo.Name = "lbDeviceInfo";
+ this.lbDeviceInfo.Size = new System.Drawing.Size(452, 28);
+ this.lbDeviceInfo.StyleController = this.layoutControl1;
+ this.lbDeviceInfo.TabIndex = 4;
+ this.lbDeviceInfo.Text = " Device Information";
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1,
+ this.layoutControlItem2,
+ this.layoutControlItem3,
+ this.emptySpaceItem1,
+ this.layoutControlItem4,
+ this.layoutControlItem5,
+ this.layoutControlItem6,
+ this.layoutControlItem9,
+ this.layoutControlItem7,
+ this.layoutControlItem8});
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(458, 217);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.lbDeviceInfo;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(456, 32);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.lbFilename;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 32);
+ this.layoutControlItem2.MaxSize = new System.Drawing.Size(102, 0);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(102, 18);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(102, 26);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.progressDownload;
+ this.layoutControlItem3.CustomizationFormText = "layoutControlItem3";
+ this.layoutControlItem3.Location = new System.Drawing.Point(0, 58);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(54, 16);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(456, 41);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1";
+ this.emptySpaceItem1.Location = new System.Drawing.Point(144, 182);
+ this.emptySpaceItem1.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(207, 33);
+ this.emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.teFilename;
+ this.layoutControlItem4.CustomizationFormText = "layoutControlItem4";
+ this.layoutControlItem4.Location = new System.Drawing.Point(102, 32);
+ this.layoutControlItem4.MaxSize = new System.Drawing.Size(0, 26);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(54, 26);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(168, 26);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.btnFindFile;
+ this.layoutControlItem5.CustomizationFormText = "layoutControlItem5";
+ this.layoutControlItem5.Location = new System.Drawing.Point(270, 32);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(93, 26);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.lbDownloadStatus;
+ this.layoutControlItem6.CustomizationFormText = "layoutControlItem6";
+ this.layoutControlItem6.Location = new System.Drawing.Point(0, 99);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(456, 83);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // layoutControlItem9
+ //
+ this.layoutControlItem9.Control = this.btnDownload;
+ this.layoutControlItem9.CustomizationFormText = "layoutControlItem9";
+ this.layoutControlItem9.Location = new System.Drawing.Point(363, 32);
+ this.layoutControlItem9.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem9.Name = "layoutControlItem9";
+ this.layoutControlItem9.Size = new System.Drawing.Size(93, 26);
+ this.layoutControlItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem9.TextVisible = false;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.btnReset;
+ this.layoutControlItem7.CustomizationFormText = "layoutControlItem7";
+ this.layoutControlItem7.Location = new System.Drawing.Point(351, 182);
+ this.layoutControlItem7.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(105, 33);
+ this.layoutControlItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.btnSystemReset;
+ this.layoutControlItem8.CustomizationFormText = "layoutControlItem8";
+ this.layoutControlItem8.Location = new System.Drawing.Point(0, 182);
+ this.layoutControlItem8.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(144, 33);
+ this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem8.TextVisible = false;
+ //
+ // ucTftpClientcs
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.groupFwUpdate);
+ this.Name = "ucTftpClientcs";
+ this.Size = new System.Drawing.Size(462, 242);
+ ((System.ComponentModel.ISupportInitialize)(this.groupFwUpdate)).EndInit();
+ this.groupFwUpdate.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.teFilename.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.progressDownload.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraEditors.GroupControl groupFwUpdate;
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.SimpleButton btnFindFile;
+ private DevExpress.XtraEditors.TextEdit teFilename;
+ private DevExpress.XtraEditors.ProgressBarControl progressDownload;
+ private DevExpress.XtraEditors.LabelControl lbFilename;
+ private DevExpress.XtraEditors.LabelControl lbDeviceInfo;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraEditors.LabelControl lbDownloadStatus;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraEditors.SimpleButton btnDownload;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
+ private DevExpress.XtraEditors.SimpleButton btnReset;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private DevExpress.XtraEditors.SimpleButton btnSystemReset;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ }
+}
diff --git a/LFP_Manager/Controls/ucTftpClientcs.cs b/LFP_Manager/Controls/ucTftpClientcs.cs
new file mode 100644
index 0000000..a5c1c19
--- /dev/null
+++ b/LFP_Manager/Controls/ucTftpClientcs.cs
@@ -0,0 +1,256 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+using System.Threading;
+using System.Net;
+using System.IO;
+using Tftp.Net;
+
+using LFP_Manager.Utils;
+using LFP_Manager.DataStructure;
+
+namespace LFP_Manager.Controls
+{
+ public delegate void ResetEvent(object sender, int mode, UInt32 value);
+
+ public partial class ucTftpClientcs : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region CONST
+
+ const string BMCB_FILE_NAME = "App.bin";
+ const string mBMS_FILE_NAME = "mBMS_APP_DL.bin";
+
+ #endregion
+
+ #region VARIABLES
+
+ int ID = 0;
+ string hostIP = "";
+ byte[] RbmsVersion;
+ string TarGetFileName = "";
+
+ int transferedBytes = 0;
+
+ public event ResetEvent OnReset = null;
+
+ #endregion
+
+ #region CONSTRUCTOR
+
+ public ucTftpClientcs()
+ {
+ InitializeComponent();
+
+ TarGetFileName = "APP.BIN";
+ }
+
+ #endregion
+
+ #region RESET EVENT
+
+ private void OnResetEvent(object sender, int mode, UInt16 value)
+ {
+ if (OnReset != null)
+ {
+ OnReset(sender, mode, value);
+ }
+ }
+
+ #endregion
+
+ #region INFORMATION UPDATE
+
+ public void UpdateInfor(int sid, string IpAddr, byte[] fwVersion)
+ {
+ ID = sid;
+ hostIP = IpAddr;
+ RbmsVersion = fwVersion;
+
+ lbDeviceInfo.Text = String.Format(" RBMS ID: {0} IP: {1}"
+ , sid + 1
+ , hostIP
+ );
+ }
+
+ #endregion
+
+ #region TFTP FUNCTION
+
+ public void FwDownload(string host, string filename)
+ {
+ //Setup a TftpClient instance
+ TftpClient client = new TftpClient(host);
+ ITftpTransfer transfer = client.Upload(TarGetFileName);
+
+ transfer.RetryTimeout = TimeSpan.FromMilliseconds(500);
+ transfer.RetryCount = 3;
+ transfer.TransferMode = TftpTransferMode.octet;
+
+ //Capture the events that may happen during the transfer
+ transfer.OnProgress += new TftpProgressHandler(transfer_OnProgress);
+ transfer.OnFinished += new TftpEventHandler(transfer_OnFinshed);
+ transfer.OnError += new TftpErrorHandler(transfer_OnError);
+
+ //Start the transfer and write the data that we're downloading into a memory stream
+ FileStream upLoadFile = new FileStream(teFilename.Text, FileMode.Open);
+ progressDownload.Properties.Maximum = (int)(upLoadFile.Length / 1024);
+ transfer.Start(upLoadFile);
+ }
+
+ void transfer_OnProgress(ITftpTransfer transfer, TftpTransferProgress progress)
+ {
+ string msg = String.Format("Transfer running. Progress: " + progress);
+ transferedBytes = progress.TransferredBytes / 1024;
+
+ TftpMsgProcess(msg, 0);
+ }
+
+ void transfer_OnError(ITftpTransfer transfer, TftpTransferError error)
+ {
+ string msg = String.Format("Transfer failed: " + error);
+
+ TftpMsgProcess(msg, 2);
+ }
+
+ void transfer_OnFinshed(ITftpTransfer transfer)
+ {
+ string msg = String.Format("Transfer succeeded.");
+
+ TftpMsgProcess(msg, 1);
+ }
+
+ private void TftpMsgProcess(string msg, int msgType)
+ {
+ if (this.InvokeRequired)
+ {
+ this.Invoke(new MethodInvoker(delegate()
+ {
+ lbDownloadStatus.Text = msg;
+ if (msgType == 0)
+ {
+ // transfer progress
+ progressDownload.Position = transferedBytes;
+ }
+ else if (msgType == 1)
+ {
+ progressDownload.Position = transferedBytes;
+ MessageBox.Show(msg, "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else if (msgType == 2)
+ {
+ MessageBox.Show(msg, "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }));
+ }
+ else
+ {
+ lbDownloadStatus.Text = msg;
+ if (msgType == 0)
+ {
+ // transfer progress
+ progressDownload.Position = transferedBytes;
+ }
+ else if (msgType == 1)
+ {
+ progressDownload.Position = transferedBytes;
+ MessageBox.Show(msg, "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else if (msgType == 2)
+ {
+ MessageBox.Show(msg, "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+
+ private void btnFindFile_Click(object sender, EventArgs e)
+ {
+ OpenFileDialog fwOpenFile;
+
+ fwOpenFile = new OpenFileDialog();
+
+ if (fwOpenFile.ShowDialog() == DialogResult.OK)
+ {
+ teFilename.Text = fwOpenFile.FileName;
+
+ byte[] bName = csUtils.StringToByte(Path.GetFileName(teFilename.Text));
+ if ((bName[0] == (byte)'B')
+ && (bName[1] == (byte)'M')
+ && (bName[2] == (byte)'C')
+ && (bName[3] == (byte)'B')
+ )
+ {
+ TarGetFileName = BMCB_FILE_NAME;
+ }
+ else if ((bName[0] == (byte)'m')
+ && (bName[1] == (byte)'B')
+ && (bName[2] == (byte)'M')
+ && (bName[3] == (byte)'S')
+ )
+ {
+ TarGetFileName = mBMS_FILE_NAME;
+ }
+
+ if (TarGetFileName != "")
+ lbDownloadStatus.Text = TarGetFileName;
+
+ btnDownload.Enabled = true;
+ }
+ }
+
+ private void btnDownload_Click(object sender, EventArgs e)
+ {
+ if ((hostIP != "")&&(teFilename.Text != ""))
+ {
+ FwDownload(hostIP, teFilename.Text);
+ }
+ }
+
+ #endregion
+
+ #region RBMS RESET EVENT
+
+ private void btnReset_Click(object sender, EventArgs e)
+ {
+ OnResetEvent(this, 1, csConstData.ResetCommandFlag.SystemReset);
+ }
+
+ private void btnLcdHistoryDelete_Click(object sender, EventArgs e)
+ {
+ OnResetEvent(this, 1, csConstData.ResetCommandFlag.SystemResetAll);
+ }
+
+ public void Reset_Result(string result, bool error)
+ {
+ if (this.InvokeRequired)
+ {
+ this.Invoke(new MethodInvoker(delegate()
+ {
+ if (error)
+ MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ else
+ MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }));
+ }
+ else
+ {
+ if (error)
+ MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ else
+ MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucTftpClientcs.resx b/LFP_Manager/Controls/ucTftpClientcs.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/ucTftpClientcs.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/DB Schema/DB_SCHEMA_TABLE.sql b/LFP_Manager/DB Schema/DB_SCHEMA_TABLE.sql
new file mode 100644
index 0000000..f845b66
--- /dev/null
+++ b/LFP_Manager/DB Schema/DB_SCHEMA_TABLE.sql
@@ -0,0 +1,49 @@
+/*
+ * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ * Table Name : TInventoryData
+ * Description : BMS Inventory Data
+ * createAt : 2020.12.02
+ * createBy : JK.Woo
+ * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ */
+drop table if exists TInventoryData;
+--drop sequence if exists inventory_data_seq;
+
+--create sequence inventory_data_seq start 1;
+
+create table TInventoryData
+(
+ manufacture_date integer not null ,
+ pcb_sn varchar(20) not null ,
+ module_sn varchar(32) null ,
+ create_date timestamp not null ,
+ modify_date timestamp not null ,
+
+ primary key (pcb_sn)
+);
+create index inventory_data_idx1 on TInventoryData (pcb_sn);
+create index inventory_data_idx2 on TInventoryData (module_sn);
+
+/*
+ * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ * Table Name : TErrorLogTable
+ * Description : Error Message Log Table
+ * createAt : 2019.11.04
+ * createBy : JK.Woo
+ * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ */
+drop table if exists TErrorLogTable;
+--drop sequence if exists module_group_seq;
+
+--create sequence module_group_seq start 1;
+
+create table TErrorLogTable
+(
+ create_date timestamp not null ,
+ pcb_sn varchar(20) not null ,
+ module_sn varchar(32) null ,
+ PROCESS varchar(20) not null ,
+ ERROR_TYPE varchar(100) not null ,
+ ERROR_MSG varchar(200) not null
+);
+
diff --git a/LFP_Manager/DB Schema/LOG_DB_SCHEMA_TABLE.sql b/LFP_Manager/DB Schema/LOG_DB_SCHEMA_TABLE.sql
new file mode 100644
index 0000000..5056b4d
--- /dev/null
+++ b/LFP_Manager/DB Schema/LOG_DB_SCHEMA_TABLE.sql
@@ -0,0 +1,58 @@
+/********************************** BATTERY VALUE TABLE **************************************************/
+
+/*
+ * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ * Table Name : TModuleValue
+ * Description : Battery Module Value and Status Table
+ * createAt : 2021.03.04
+ * createBy : JK.Woo
+ * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ */
+drop table if exists TModuleValue;
+
+create table TModuleValue
+(
+ create_date timestamp not null ,
+ module_no smallint not null ,
+ model_name varchar(32) null ,
+ module_sn varchar(32) null ,
+ fw_ver varchar(10) null , -- "V2.4.1.4"
+ comm_fail BOOLEAN null ,
+ op_status smallint null ,
+ alarm_status smallint null ,
+ warning smallint null ,
+ fault smallint null ,
+ module_voltage NUMERIC null ,
+ module_current NUMERIC null ,
+ module_soc NUMERIC null ,
+ module_soh NUMERIC null ,
+ module_cyclecount NUMERIC null ,
+ cv_diff NUMERIC null ,
+ cell_voltage_01 NUMERIC null ,
+ cell_voltage_02 NUMERIC null ,
+ cell_voltage_03 NUMERIC null ,
+ cell_voltage_04 NUMERIC null ,
+ cell_voltage_05 NUMERIC null ,
+ cell_voltage_06 NUMERIC null ,
+ cell_voltage_07 NUMERIC null ,
+ cell_voltage_08 NUMERIC null ,
+ cell_voltage_09 NUMERIC null ,
+ cell_voltage_10 NUMERIC null ,
+ cell_voltage_11 NUMERIC null ,
+ cell_voltage_12 NUMERIC null ,
+ cell_voltage_13 NUMERIC null ,
+ cell_voltage_14 NUMERIC null ,
+ cell_voltage_15 NUMERIC null ,
+ tp_diff NUMERIC null ,
+ temperature_01 NUMERIC null ,
+ temperature_02 NUMERIC null ,
+ temperature_03 NUMERIC null ,
+ temperature_04 NUMERIC null ,
+ ext1_temp NUMERIC null ,
+ ext2_temp NUMERIC null ,
+ chg_option smallint null ,
+
+ primary key (create_date, module_no)
+);
+
+create index ModuleValue_data_idx1 on TModuleValue (create_date);
diff --git a/LFP_Manager/DataStructure/CsDeviceAlarmDefine.cs b/LFP_Manager/DataStructure/CsDeviceAlarmDefine.cs
new file mode 100644
index 0000000..c482b0c
--- /dev/null
+++ b/LFP_Manager/DataStructure/CsDeviceAlarmDefine.cs
@@ -0,0 +1,175 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace LFP_Manager.DataStructure
+{
+ internal class CsAlarmDefine
+ {
+ //0x0001:Pack OV
+ //0x0002:Cell OV
+ //0x0004:Pack UV
+ //0x0008:Cell UV
+ //0x0010:Charge OC
+ //0x0020:Discharge OC
+ //0x0040: 环境温度异常
+ //0x0080: MOS温度高
+ //0x0100:Charge OT
+ //0x0200:Discharge OT
+ //0x0400:Charge UT
+ //0x0800:Discharge UT
+ //0x1000:Low capacity
+ //0x2000: 浮充停止/Float Stoped
+ //0x4000:
+
+ public enum eGuiWarningBit
+ {
+ PACK_OV = 0,
+ CELL_OV = 1,
+ PACK_UV = 2,
+ CELL_UV = 3,
+ CHG_OC = 4,
+ DCH_OC = 5,
+ AMB_OT = 6,
+ MOS_OT = 7,
+ CHG_OT = 8,
+ DCH_OT = 9,
+ CHG_UT = 10,
+ DCH_UT = 11,
+ LOW_SOC = 12,
+ DIFF_VOLT = 13,
+ CB_OFF = 14,
+ }
+ public enum eGuiProtectBit
+ {
+ PACK_OV = 0,
+ CELL_OV = 1,
+ PACK_UV = 2,
+ CELL_UV = 3,
+ CHG_OC = 4,
+ DCH_OC = 5,
+ AMB_OT = 6,
+ MOS_OT = 7,
+ CHG_OT = 8,
+ DCH_OT = 9,
+ CHG_UT = 10,
+ DCH_UT = 11,
+ LOW_SOC = 12,
+ SC = 13,
+ }
+ public enum eDevWarningBit
+ {
+ CELL_OV = 0,
+ CELL_UV = 1,
+ PACK_OV = 2,
+ PACK_UV = 3,
+ CHG_OC = 4,
+ DCH_OC = 5,
+ AMB_OT = 6,
+ AMB_UT = 7,
+ CHG_OT = 8,
+ CHG_UT = 9,
+ DCH_OT = 10,
+ DCH_UT = 11,
+ LOW_SOC = 12,
+ DIFF_VOLT = 13,
+ CB_OFF = 14,
+ }
+ public enum eDevProtectBit
+ {
+ CELL_OV = 0,
+ PACK_OV = 1,
+ CELL_UV = 2,
+ PACK_UV = 3,
+ CHG_OC1 = 4,
+ CHG_OC2 = 5,
+ DCH_OC1 = 6,
+ DCH_OC2 = 7,
+ SC_CB = 8,
+ CHG_OT = 9,
+ CHG_UT = 10,
+ DCH_OT = 11,
+ DCH_UT = 12,
+ }
+
+ private static bool HasBit(int value, int bitIndex) => (value & (1 << bitIndex)) != 0;
+ private static void SetBit(ref int value, int bitIndex) => value |= (1 << bitIndex);
+ private static void SetIf(int src, int srcBit, ref int dst, int dstBit)
+ {
+ if (HasBit(src, srcBit)) SetBit(ref dst, dstBit);
+ }
+ private static void SetIfAny(int src, int[] srcBits, ref int dst, int dstBit)
+ {
+ foreach (var b in srcBits)
+ {
+ if (HasBit(src, b)) { SetBit(ref dst, dstBit); break; }
+ }
+ }
+
+ ///
+ /// Device 경고 비트(eDevWarningBit) -> GUI 경고 비트(eGuiWarningBit)
+ /// AMB_UT는 GUI 경고에 대응 비트가 없어 미표시.
+ /// 새로 추가된 DIFF_VOLT, CB_OFF 매핑 포함.
+ ///
+ public static int DevWarningToGui(int devWarning)
+ {
+ int gui = 0;
+
+ SetIf(devWarning, (int)eDevWarningBit.PACK_OV, ref gui, (int)eGuiWarningBit.PACK_OV);
+ SetIf(devWarning, (int)eDevWarningBit.CELL_OV, ref gui, (int)eGuiWarningBit.CELL_OV);
+ SetIf(devWarning, (int)eDevWarningBit.PACK_UV, ref gui, (int)eGuiWarningBit.PACK_UV);
+ SetIf(devWarning, (int)eDevWarningBit.CELL_UV, ref gui, (int)eGuiWarningBit.CELL_UV);
+
+ SetIf(devWarning, (int)eDevWarningBit.CHG_OC, ref gui, (int)eGuiWarningBit.CHG_OC);
+ SetIf(devWarning, (int)eDevWarningBit.DCH_OC, ref gui, (int)eGuiWarningBit.DCH_OC);
+
+ SetIf(devWarning, (int)eDevWarningBit.AMB_OT, ref gui, (int)eGuiWarningBit.AMB_OT);
+ //SetIf(devWarning, (int)eDevWarningBit.MOS_OT, ref gui, (int)eGuiWarningBit.MOS_OT);
+
+ SetIf(devWarning, (int)eDevWarningBit.CHG_OT, ref gui, (int)eGuiWarningBit.CHG_OT);
+ SetIf(devWarning, (int)eDevWarningBit.DCH_OT, ref gui, (int)eGuiWarningBit.DCH_OT);
+ SetIf(devWarning, (int)eDevWarningBit.CHG_UT, ref gui, (int)eGuiWarningBit.CHG_UT);
+ SetIf(devWarning, (int)eDevWarningBit.DCH_UT, ref gui, (int)eGuiWarningBit.DCH_UT);
+
+ SetIf(devWarning, (int)eDevWarningBit.LOW_SOC, ref gui, (int)eGuiWarningBit.LOW_SOC);
+ SetIf(devWarning, (int)eDevWarningBit.DIFF_VOLT, ref gui, (int)eGuiWarningBit.DIFF_VOLT);
+ SetIf(devWarning, (int)eDevWarningBit.CB_OFF, ref gui, (int)eGuiWarningBit.CB_OFF);
+
+ // AMB_UT는 GUI에 해당 없음 → 미표시
+ return gui;
+ }
+
+ ///
+ /// Device 보호 비트(eDevProtectBit) -> GUI 보호 비트(eGuiProtectBit)
+ /// CHG_OC1/2 → CHG_OC 집계, DCH_OC1/2 → DCH_OC 집계
+ /// SC_CB(단락/차단기 트립) → SC(신규 GUI 비트) 매핑.
+ ///
+ public static int DevProtectToGui(int devProtect)
+ {
+ int gui = 0;
+
+ SetIf(devProtect, (int)eDevProtectBit.PACK_OV, ref gui, (int)eGuiProtectBit.PACK_OV);
+ SetIf(devProtect, (int)eDevProtectBit.CELL_OV, ref gui, (int)eGuiProtectBit.CELL_OV);
+ SetIf(devProtect, (int)eDevProtectBit.PACK_UV, ref gui, (int)eGuiProtectBit.PACK_UV);
+ SetIf(devProtect, (int)eDevProtectBit.CELL_UV, ref gui, (int)eGuiProtectBit.CELL_UV);
+
+ SetIfAny(devProtect, new[] { (int)eDevProtectBit.CHG_OC1, (int)eDevProtectBit.CHG_OC2 },
+ ref gui, (int)eGuiProtectBit.CHG_OC);
+ SetIfAny(devProtect, new[] { (int)eDevProtectBit.DCH_OC1, (int)eDevProtectBit.DCH_OC2 },
+ ref gui, (int)eGuiProtectBit.DCH_OC);
+
+ // 단락/차단기 트립 → SC
+ SetIf(devProtect, (int)eDevProtectBit.SC_CB, ref gui, (int)eGuiProtectBit.SC);
+
+ SetIf(devProtect, (int)eDevProtectBit.CHG_OT, ref gui, (int)eGuiProtectBit.CHG_OT);
+ SetIf(devProtect, (int)eDevProtectBit.CHG_UT, ref gui, (int)eGuiProtectBit.CHG_UT);
+ SetIf(devProtect, (int)eDevProtectBit.DCH_OT, ref gui, (int)eGuiProtectBit.DCH_OT);
+ SetIf(devProtect, (int)eDevProtectBit.DCH_UT, ref gui, (int)eGuiProtectBit.DCH_UT);
+
+ // AMB_OT, MOS_OT, LOW_SOC 보호 카테고리는 DevProtectBit에 정의되지 않아 미표시
+ return gui;
+ }
+ }
+}
diff --git a/LFP_Manager/DataStructure/CsDeviceData.cs b/LFP_Manager/DataStructure/CsDeviceData.cs
new file mode 100644
index 0000000..fd3577c
--- /dev/null
+++ b/LFP_Manager/DataStructure/CsDeviceData.cs
@@ -0,0 +1,1240 @@
+using System;
+
+namespace LFP_Manager.DataStructure
+{
+ public class CsDeviceData : IResettable, IDeepCopy
+ {
+ public DeviceSystemTotalData TotalData;
+ public DeviceModuleData[] ModuleData;
+
+ public CsDeviceData()
+ {
+ TotalData = new DeviceSystemTotalData();
+ ModuleData = new DeviceModuleData[csConstData.SystemInfo.MAX_MODULE_SIZE];
+ for (int i = 0; i < ModuleData.Length; i++)
+ {
+ ModuleData[i] = new DeviceModuleData();
+ }
+ }
+ public void Reset()
+ {
+ TotalData.Reset();
+ for (int i = 0; i < ModuleData.Length; i++)
+ {
+ ResetCopyHelpers.ResetOrRecreate(ref ModuleData[i]);
+ }
+ }
+ public CsDeviceData DeepCopy()
+ {
+ var copy = (CsDeviceData)MemberwiseClone(); // 스칼라 복사
+ copy.TotalData = ResetCopyHelpers.DeepCopyOrNew(TotalData);
+ for (int i = 0; i < ModuleData.Length; i++)
+ {
+ ModuleData[i] = ResetCopyHelpers.DeepCopyOrNew(ModuleData[i]);
+ }
+ return copy;
+ }
+
+ #region TOTAL DATA
+ public class DeviceSystemTotalData : IResettable, IDeepCopy
+ {
+ public bool CommFail;
+
+ public DeviceSystemIdent IdentData;
+ public DeviceValueTotalData ValueData;
+ public DeviceStatusTotalData StatusData;
+
+ public DeviceSystemTotalData()
+ {
+ IdentData = new DeviceSystemIdent();
+ ValueData = new DeviceValueTotalData();
+ StatusData = new DeviceStatusTotalData();
+ }
+ public void Reset()
+ {
+ CommFail = false;
+ IdentData.Reset();
+ ValueData.Reset();
+ StatusData.Reset();
+ }
+ public DeviceSystemTotalData DeepCopy()
+ {
+ var copy = (DeviceSystemTotalData)MemberwiseClone(); // 스칼라 복사
+ copy.IdentData = IdentData.DeepCopy();
+ copy.ValueData = ValueData.DeepCopy();
+ copy.StatusData = StatusData.DeepCopy();
+ return copy;
+ }
+
+ public class DeviceSystemIdent : IResettable, IDeepCopy
+ {
+ public byte[] fw_ver;
+ public string FwVerStr;
+
+ public string Manufacturer;
+ public string DeviceModel;
+ public int AlarmOutputMode;
+
+ public UInt32 ManufactureDate;
+ public string SerialNumber;
+
+ public DeviceSystemIdent()
+ {
+ fw_ver = new byte[4];
+ FwVerStr = "";
+
+ Manufacturer = "";
+ DeviceModel = "";
+
+ AlarmOutputMode = 0;
+ ManufactureDate = 0;
+ SerialNumber = "";
+ }
+ public void Reset()
+ {
+ Manufacturer = "";
+ DeviceModel = "";
+
+ Array.Clear(fw_ver, 0, fw_ver.Length);
+ FwVerStr = "";
+
+ AlarmOutputMode = 0;
+ ManufactureDate = 0;
+ SerialNumber = "";
+ }
+ public DeviceSystemIdent DeepCopy()
+ {
+ var copy = (DeviceSystemIdent)MemberwiseClone(); // 스칼라 복사
+ copy.fw_ver = (byte[])fw_ver.Clone();
+ return copy;
+ }
+ }
+
+ public class DeviceValueTotalData : IResettable, IDeepCopy
+ {
+ public short TotalVoltage;
+ public short TotalCurrent;
+ public short TotalSOC;
+ public short TotalSOH;
+ public short TotalTemp;
+
+ public DeviceValueTotalData()
+ {
+ TotalVoltage = 0;
+ TotalCurrent = 0;
+ TotalSOC = 0;
+ TotalSOH = 0;
+ TotalTemp = 0;
+ }
+
+ public void Reset()
+ {
+ TotalVoltage = 0;
+ TotalCurrent = 0;
+ TotalSOC = 0;
+ TotalSOH = 0;
+ TotalTemp = 0;
+ }
+ public DeviceValueTotalData DeepCopy()
+ {
+ return (DeviceValueTotalData)MemberwiseClone();
+ }
+ }
+
+ public class DeviceStatusTotalData : IResettable, IDeepCopy
+ {
+ public ushort batteryStatus;
+ public ushort warning;
+ public ushort protection;
+ public ushort status;
+
+ public DeviceStatusTotalData()
+ {
+ batteryStatus = 0;
+ warning = 0;
+ protection = 0;
+ status = 0;
+ }
+ public void Reset()
+ {
+ batteryStatus = 0;
+ warning = 0;
+ protection = 0;
+ status = 0;
+ }
+ public DeviceStatusTotalData DeepCopy()
+ {
+ return (DeviceStatusTotalData)MemberwiseClone();
+ }
+ }
+
+ }
+
+ #endregion
+
+ #region MODULE DATA
+ public class DeviceModuleData : IResettable, IDeepCopy
+ {
+ public bool active;
+
+ public int mNo;
+ public int cellQty;
+ public int tempQty;
+ public int ntcQty;
+ public int ChargeVoltage;
+ public int DOD;
+ public int MaxChaCurrent;
+ public int MaxDchCurrent;
+
+ public int FloatVoltage;
+ public int BoostVoltage;
+
+ public int MinChargeTemp;
+ public int MaxChargeTemp;
+
+ public UInt32 heatbeat;
+ public bool CommFail;
+ public bool ShelfCommFail;
+ public DateTime LastRxTime;
+ public Int32 BmsDateTimeInt;
+ public ushort BmsDateTimeShort1;
+ public ushort BmsDateTimeShort2;
+
+ public DateTimeStruct BmsDateTime;
+
+ public DeviceValueData ValueData;
+ public DeviceAvgData AvgData;
+ public DeviceStatusData StatusData;
+ public DeviceParamData ParamData;
+ public DeviceCalibration CalibrationData;
+ public DeviceInforation Information;
+ public DeviceEtcStatus EtcStatus;
+
+ public DeviceMaxValue MaxValue;
+ public DeviceGyroValue GyroValue;
+
+ public DeviceModuleData()
+ {
+ active = false;
+
+ mNo = 0;
+ cellQty = 15;
+ tempQty = 4;
+ ChargeVoltage = 0;
+ DOD = 0;
+ MaxChaCurrent = 0;
+ MaxDchCurrent = 0;
+
+ heatbeat = 0;
+ CommFail = false;
+ ShelfCommFail = false;
+ LastRxTime = DateTime.MinValue;
+ BmsDateTimeInt = 0;
+ BmsDateTimeShort1 = 0;
+ BmsDateTimeShort2 = 0;
+
+ BmsDateTime = new DateTimeStruct();
+
+ ValueData = new DeviceValueData();
+ AvgData = new DeviceAvgData();
+ StatusData = new DeviceStatusData();
+ ParamData = new DeviceParamData();
+ CalibrationData = new DeviceCalibration();
+ Information = new DeviceInforation();
+ EtcStatus = new DeviceEtcStatus();
+
+ MaxValue = new DeviceMaxValue();
+ GyroValue = new DeviceGyroValue();
+ }
+ public void Reset()
+ {
+ active = false;
+
+ mNo = 0;
+ cellQty = 15;
+ tempQty = 4;
+ ChargeVoltage = 0;
+ DOD = 0;
+ MaxChaCurrent = 0;
+ MaxDchCurrent = 0;
+
+ heatbeat = 0;
+ CommFail = false;
+ ShelfCommFail = false;
+ LastRxTime = DateTime.MinValue;
+ BmsDateTimeInt = 0;
+ BmsDateTimeShort1 = 0;
+ BmsDateTimeShort2 = 0;
+
+ ResetCopyHelpers.ResetOrRecreate(ref BmsDateTime);
+ ResetCopyHelpers.ResetOrRecreate(ref ValueData);
+ ResetCopyHelpers.ResetOrRecreate(ref AvgData);
+ ResetCopyHelpers.ResetOrRecreate(ref ParamData);
+ ResetCopyHelpers.ResetOrRecreate(ref CalibrationData);
+ ResetCopyHelpers.ResetOrRecreate(ref Information);
+ ResetCopyHelpers.ResetOrRecreate(ref EtcStatus);
+ ResetCopyHelpers.ResetOrRecreate(ref MaxValue);
+ ResetCopyHelpers.ResetOrRecreate(ref GyroValue);
+ }
+ public DeviceModuleData DeepCopy()
+ {
+ var copy = (DeviceModuleData)MemberwiseClone(); // 스칼라 복사
+ BmsDateTime = ResetCopyHelpers.DeepCopyOrNew(BmsDateTime);
+ ValueData = ResetCopyHelpers.DeepCopyOrNew(ValueData);
+ AvgData = ResetCopyHelpers.DeepCopyOrNew(AvgData);
+ StatusData = ResetCopyHelpers.DeepCopyOrNew(StatusData);
+ ParamData = ResetCopyHelpers.DeepCopyOrNew(ParamData);
+ CalibrationData = ResetCopyHelpers.DeepCopyOrNew(CalibrationData);
+ EtcStatus = ResetCopyHelpers.DeepCopyOrNew(EtcStatus);
+ MaxValue = ResetCopyHelpers.DeepCopyOrNew(MaxValue);
+ GyroValue = ResetCopyHelpers.DeepCopyOrNew(GyroValue);
+ return copy;
+ }
+
+ public class DateTimeStruct : IResettable, IDeepCopy
+ {
+ public int year;
+ public int month;
+ public int day;
+ public int hour;
+ public int minute;
+ public int second;
+
+ public string DateTimeStr;
+
+ public DateTimeStruct()
+ {
+ DateTimeStr = "-";
+
+ }
+
+ public void SetDateTimeStr()
+ {
+ DateTimeStr = String.Format("{0:D4}-{1:D2}-{2:D2} {3:D2}:{4:D2}:{5:D2}", year, month, day, hour, minute, second);
+ }
+
+ public DateTime ToDateTime()
+ {
+ return new DateTime(year, month, day, hour, minute, second);
+ }
+
+ public void FromDateTime(DateTime dt)
+ {
+ year = dt.Year;
+ month = dt.Month;
+ day = dt.Day;
+ hour = dt.Hour;
+ minute = dt.Minute;
+ second = dt.Second;
+
+ SetDateTimeStr();
+ }
+
+ public void Reset()
+ {
+ year = 0;
+ month = 0;
+ day = 0;
+ hour = 0;
+ minute = 0;
+ second = 0;
+
+ DateTimeStr = "-";
+ }
+
+ public DateTimeStruct DeepCopy()
+ {
+ return (DateTimeStruct)MemberwiseClone();
+ }
+ }
+
+ public class DeviceValueData : IResettable, IDeepCopy
+ {
+ public byte[] fw_ver;
+ public ushort[] CellVoltage;
+ public short[] CellTemperature;
+
+ public short voltage;
+ public short current;
+ public short cha_current;
+ public short dch_current;
+ public short averageCurrent;
+ public short SOC;
+ public short SOH;
+
+ public short NumOfCells;
+ public short NumOfTemps;
+
+ public ushort MaxCellVoltage; // mV
+ public ushort MinCellVoltage; // mV
+ public ushort DiffCellVoltage; // mV
+
+ public short MosTemperature;
+ public short AmbTemperature;
+ public short MaxTemperature; // 1C
+ public short MinTemperature; // 0.1C
+
+ public int RecMaxBattChgCurrLmt;
+
+ public short remainingCapacity;
+ public UInt32 cycleCount;
+ public UInt32 cycleCount_MSB;
+ public UInt32 cycleCount_LSB;
+ public UInt32 fullChgCapacity_mAs;
+ public UInt32 fullChgCapacity_mAs_MSB;
+ public UInt32 fullChgCapacity_mAs_LSB;
+ public UInt32 fullChgCapacity_Ah;
+ public UInt32 TotalBatCapacity_Ah;
+ public int designedCapacity;
+
+ public UInt32 EstBackupTime; // Minute - Back-up time based on %SoC level and load at
+ // site(In case of Charging Default load at 0.2C)
+
+ public UInt32 MdCumulativeChgTime; // Hours - Cumulative charge duration
+ public UInt32 MdCumulativeChgTimeMSB;
+ public UInt32 MdCumulativeChgTimeLSB;
+ public UInt32 MdCumulativeDchTime; // Hours - Cumulative discharge duration
+ public UInt32 MdCumulativeDchTimeMSB;
+ public UInt32 MdCumulativeDchTimeLSB;
+
+ public ushort ChgCrate;
+ public ushort DchCrate;
+ public ushort MdACIR;
+
+ public ushort RemainEnergyLife; // Remaining capacity in battery pack in life cycle
+ // (13440 - actual cumulative discharge KWH)
+ public ushort RemainCycles; // Remaining cycle in battery pack in life time
+ // (3500 - actual cycle consumed)
+
+ public ushort ChgCutOffVolt;
+ public ushort DchCutOffVolt;
+
+ public ushort BatPowerOnDateYear; // YY
+ public ushort BatPowerOnDateMonth; // MM
+
+ public int TimeLeft;
+
+ public UInt32 Ah_Charged;
+ public UInt32 Ah_ChargedMSB;
+ public UInt32 Ah_ChargedLSB;
+ public UInt32 Ah_Discharged;
+ public UInt32 Ah_DischargedMSB;
+ public UInt32 Ah_DischargedLSB;
+
+ public UInt32 Wh_Charged;
+ public UInt32 Wh_ChargedMSB;
+ public UInt32 Wh_ChargedLSB;
+ public UInt32 Wh_Discharged;
+ public UInt32 Wh_DischargedMSB;
+ public UInt32 Wh_DischargedLSB;
+
+ public int NoOfDischargeCycles;
+ public int NoOfChargeCycles;
+
+ public int ModuleAlarms;
+ public int ModuleWarnings;
+ public int ModuleStatus;
+ public int ModuleVoltage_int;
+ public int ModBusDocVersion;
+
+ public int ParametersChanged;
+ public int MaxBattChgCurr;
+ public int MaxBattDchCurr;
+ public int ShortCircuitCurrent;
+ public int ProtectChgCurr;
+ public int ProtectDchCurr;
+
+ public int BatteryProdDateYear;
+ public int BatteryProdDateMonth;
+ public int BatteryProdDateDay;
+
+ public int BatteryModelDescription;
+ public int BatteryType;
+
+ public DeviceValueData()
+ {
+ fw_ver = new byte[6];
+
+ CellVoltage = new ushort[csConstData.SystemInfo.MAX_MODULE_CELL_SIZE + 1];
+ CellTemperature = new short[csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE];
+ }
+
+ ///
+ /// 현재 보유한 버퍼 크기를 유지하면서 모든 값을 0으로 초기화
+ ///
+ public void Reset()
+ {
+ // 배열/버퍼는 전부 0으로
+ fw_ver.AsSpan().Clear();
+ CellVoltage.AsSpan().Clear();
+ CellTemperature.AsSpan().Clear();
+
+ // 스칼라 필드 전부 0/기본값
+ voltage = 0;
+ current = cha_current = dch_current = averageCurrent = 0;
+ SOC = SOH = 0;
+
+ NumOfCells = 0;
+ NumOfTemps = 0;
+
+ MaxCellVoltage = MinCellVoltage = DiffCellVoltage = 0;
+
+ MosTemperature = AmbTemperature = 0;
+ MaxTemperature = MinTemperature = 0;
+
+ RecMaxBattChgCurrLmt = 0;
+
+ remainingCapacity = 0;
+ cycleCount = cycleCount_MSB = cycleCount_LSB = 0;
+ fullChgCapacity_mAs = fullChgCapacity_mAs_MSB = fullChgCapacity_mAs_LSB = 0;
+ fullChgCapacity_Ah = TotalBatCapacity_Ah = 0;
+ designedCapacity = 0;
+
+ EstBackupTime = 0;
+
+ MdCumulativeChgTime = MdCumulativeChgTimeMSB = MdCumulativeChgTimeLSB = 0;
+ MdCumulativeDchTime = MdCumulativeDchTimeMSB = MdCumulativeDchTimeLSB = 0;
+
+ ChgCrate = DchCrate = MdACIR = 0;
+
+ RemainEnergyLife = RemainCycles = 0;
+
+ ChgCutOffVolt = DchCutOffVolt = 0;
+
+ BatPowerOnDateYear = BatPowerOnDateMonth = 0;
+
+ TimeLeft = 0;
+
+ Ah_Charged = Ah_ChargedMSB = Ah_ChargedLSB = 0;
+ Ah_Discharged = Ah_DischargedMSB = Ah_DischargedLSB = 0;
+
+ Wh_Charged = Wh_ChargedMSB = Wh_ChargedLSB = 0;
+ Wh_Discharged = Wh_DischargedMSB = Wh_DischargedLSB = 0;
+
+ NoOfDischargeCycles = NoOfChargeCycles = 0;
+
+ ModuleAlarms = ModuleWarnings = ModuleStatus = 0;
+ ModuleVoltage_int = ModBusDocVersion = 0;
+
+ ParametersChanged = 0;
+ MaxBattChgCurr = MaxBattDchCurr = ShortCircuitCurrent = 0;
+ ProtectChgCurr = ProtectDchCurr = 0;
+
+ BatteryProdDateYear = BatteryProdDateMonth = BatteryProdDateDay = 0;
+
+ BatteryModelDescription = 0;
+ BatteryType = 0;
+ }
+ public DeviceValueData DeepCopy()
+ {
+ var copy = (DeviceValueData)MemberwiseClone(); // 스칼라 복사
+ copy.fw_ver = (byte[])fw_ver.Clone();
+ copy.CellVoltage = (ushort[])CellVoltage.Clone();
+ copy.CellTemperature = (short[])CellTemperature.Clone();
+ return copy;
+ }
+ }
+
+ public class DeviceAvgData : IResettable, IDeepCopy
+ {
+ public short maxCellVoltage;
+ public short minCellVoltage;
+ public short avgCellVoltage;
+ public short diffCellVoltage;
+ public short maxCellNum;
+ public short minCellNum;
+ public short maxTemp;
+ public short minTemp;
+ public short avgTemp;
+ public short diffTemp;
+ public short maxTempNum;
+ public short minTempNum;
+
+ public DeviceAvgData()
+ {
+
+ }
+
+ public void Reset()
+ {
+ maxCellVoltage = 0;
+ minCellVoltage = 0;
+ avgCellVoltage = 0;
+ diffCellVoltage = 0;
+ maxCellNum = 0;
+ minCellNum = 0;
+
+ maxTemp = 0;
+ minTemp = 0;
+ avgTemp = 0;
+ diffTemp = 0;
+ maxTempNum = 0;
+ minTempNum = 0;
+ }
+ public DeviceAvgData DeepCopy()
+ {
+ return (DeviceAvgData)MemberwiseClone();
+ }
+ }
+
+ public class DeviceStatusData : IResettable, IDeepCopy
+ {
+ public ushort batteryStatus;
+ public ushort batteryStatus1;
+ public ushort warning;
+ public ushort protect;
+ public ushort protection1;
+ public ushort status;
+ public ushort faultAndStatus;
+ public ushort relayStatus;
+ public ushort errorCode;
+ public ushort specialAlarm; // 1: Commfail, 2. Gyro, 3, Breaker
+
+ public ushort faultstatus; // Only for RS-485
+
+ public ushort cellBallanceStatus;
+ public ushort cellBalanceValue;
+ public ushort cellBalanceFlag;
+
+ public DeviceStatusData()
+ {
+
+ }
+ public void Reset()
+ {
+ batteryStatus = 0;
+ batteryStatus1 = 0;
+ warning = 0;
+ protect = 0;
+ protection1 = 0;
+ status = 0;
+ faultAndStatus = 0;
+ relayStatus = 0;
+ errorCode = 0;
+ specialAlarm = 0;
+
+ faultstatus = 0;
+
+ cellBallanceStatus = 0;
+ cellBalanceValue = 0;
+ cellBalanceFlag = 0;
+ }
+ public DeviceStatusData DeepCopy()
+ {
+ return (DeviceStatusData)MemberwiseClone();
+ }
+ }
+
+ public class DeviceParamData : IResettable, IDeepCopy
+ {
+ public short CellOverVoltageTrip;
+ public short CellOverVoltageWarning;
+ public short CellOverVoltageRelease;
+ public short CellUnderVoltageTrip;
+ public short CellUnderVoltageWarning;
+ public short CellUnderVoltageRelease;
+
+ public short SysOverVoltageTrip;
+ public short SysOverVoltageWarning;
+ public short SysOverVoltageRelease;
+ public short SysUnderVoltageTrip;
+ public short SysUnderVoltageWarning;
+ public short SysUnderVoltageRelease;
+
+ public short ChaHighTempTrip;
+ public short ChaHighTempWarning;
+ public short ChaHighTempRelease;
+ public short ChaLowTempTrip;
+ public short ChaLowTempWarning;
+ public short ChaLowTempRelease;
+ public short DchHighTempTrip;
+ public short DchHighTempWarning;
+ public short DchHighTempRelease;
+ public short DchLowTempTrip;
+ public short DchLowTempWarning;
+ public short DchLowTempRelease;
+
+ public short ChaOverCurrentTrip1;
+ public short ChaOverCurrentTrip2;
+ public short ChaOverCurrentWarning;
+ public short ChaOverCurrentReleaseTime;
+ public short ChaOverCurrentTimes;
+ public short ChaOverCurrentDelay1;
+ public short ChaOverCurrentDelay2;
+
+ public short DchOverCurrentTrip1;
+ public short DchOverCurrentTrip2;
+ public short DchOverCurrentWarning;
+ public short DchOverCurrentReleaseTime;
+ public short DchOverCurrentTimes;
+ public short DchOverCurrentDelay1;
+ public short DchOverCurrentDelay2;
+
+ public short MosHighTempTrip;
+ public short MosHighTempWarning;
+ public short MosHighTempRelease;
+
+ public short PcbHighTempTrip;
+ public short PcbHighTempWarning;
+ public short PcbHighTempRelease;
+
+ public short EnvHighTempTrip;
+ public short EnvHighTempWarning;
+ public short EnvHighTempRelease;
+
+ public short EnvLowTempTrip;
+ public short EnvLowTempWarning;
+ public short EnvLowTempRelease;
+
+ public short ShortCircuit;
+
+ public short LowSocTrip;
+ public short LowSocWarning;
+ public short LowSocRelease;
+
+ public short CellVoltageDifferenceTrip;
+ public short CellVoltageDifferenceWarning;
+ public short CellVoltageDifferenceRelease;
+ public short CellVoltageDifferenceTime;
+
+ public short DefalutParamOption;
+ public short DefalutParamAll;
+ public ushort ReadParamAll;
+
+ ///
+ /// 모든 필드를 0(또는 기본값)으로 초기화합니다.
+ ///
+ public void Reset()
+ {
+ CellOverVoltageTrip = CellOverVoltageWarning = CellOverVoltageRelease = 0;
+ CellUnderVoltageTrip = CellUnderVoltageWarning = CellUnderVoltageRelease = 0;
+
+ SysOverVoltageTrip = SysOverVoltageWarning = SysOverVoltageRelease = 0;
+ SysUnderVoltageTrip = SysUnderVoltageWarning = SysUnderVoltageRelease = 0;
+
+ ChaHighTempTrip = ChaHighTempWarning = ChaHighTempRelease = 0;
+ ChaLowTempTrip = ChaLowTempWarning = ChaLowTempRelease = 0;
+ DchHighTempTrip = DchHighTempWarning = DchHighTempRelease = 0;
+ DchLowTempTrip = DchLowTempWarning = DchLowTempRelease = 0;
+
+ ChaOverCurrentTrip1 = ChaOverCurrentTrip2 = ChaOverCurrentWarning = 0;
+ ChaOverCurrentReleaseTime = 0;
+ ChaOverCurrentTimes = 0;
+ ChaOverCurrentDelay1 = ChaOverCurrentDelay2 = 0;
+
+ DchOverCurrentTrip1 = DchOverCurrentTrip2 = DchOverCurrentWarning = 0;
+ DchOverCurrentReleaseTime = 0;
+ DchOverCurrentTimes = 0;
+ DchOverCurrentDelay1 = DchOverCurrentDelay2 = 0;
+
+ MosHighTempTrip = MosHighTempWarning = MosHighTempRelease = 0;
+ PcbHighTempTrip = PcbHighTempWarning = PcbHighTempRelease = 0;
+
+ ShortCircuit = 0;
+
+ LowSocTrip = LowSocWarning = LowSocRelease = 0;
+
+ CellVoltageDifferenceTrip = CellVoltageDifferenceWarning = 0;
+ CellVoltageDifferenceRelease = CellVoltageDifferenceTime = 0;
+
+ DefalutParamOption = 0;
+ DefalutParamAll = 0;
+ ReadParamAll = 0;
+ }
+
+ public DeviceParamData DeepCopy()
+ {
+ return (DeviceParamData)MemberwiseClone();
+ }
+ }
+
+ public class DeviceCalibration : IResettable, IDeepCopy
+ {
+ public BatteryParameter Battery;
+ public CurrentCalib Current;
+ public CapCalibration CapCalib;
+ public FetCalibration FetCalib;
+ public ChargeMode ChaMode;
+ public TAntiTheft AntiTheft;
+ public TBmsDateTime BmsDateTime;
+
+ public TAntiTheftComm AntiTheftComm;
+ public TAntiTheftGyro AntiTheftGyro;
+
+ public DeviceCalibration()
+ {
+ Battery = new BatteryParameter();
+ Current = new CurrentCalib();
+ CapCalib = new CapCalibration();
+ FetCalib = new FetCalibration();
+ ChaMode = new ChargeMode();
+ AntiTheft = new TAntiTheft();
+ BmsDateTime = new TBmsDateTime();
+
+ AntiTheftComm = new TAntiTheftComm();
+ AntiTheftGyro = new TAntiTheftGyro();
+ }
+
+ ///
+ /// 모든 하위 객체를 기본값으로 리셋합니다.
+ /// - 하위 타입이 IResettable이면 Reset() 호출
+ /// - 아니면 새 인스턴스로 교체(참조 재바인딩 허용 시)
+ ///
+ public void Reset()
+ {
+ ResetCopyHelpers.ResetOrRecreate(ref Battery);
+ ResetCopyHelpers.ResetOrRecreate(ref Current);
+ ResetCopyHelpers.ResetOrRecreate(ref CapCalib);
+ ResetCopyHelpers.ResetOrRecreate(ref FetCalib);
+ ResetCopyHelpers.ResetOrRecreate(ref ChaMode);
+ ResetCopyHelpers.ResetOrRecreate(ref AntiTheft);
+ ResetCopyHelpers.ResetOrRecreate(ref BmsDateTime);
+ ResetCopyHelpers.ResetOrRecreate(ref AntiTheftComm);
+ ResetCopyHelpers.ResetOrRecreate(ref AntiTheftGyro);
+ }
+ ///
+ /// 깊은 복사. 가능한 경우 하위 객체의 DeepCopy() 사용, 없으면 새 인스턴스 생성(얕은 복사 회피).
+ ///
+ public DeviceCalibration DeepCopy()
+ {
+ return new DeviceCalibration
+ {
+ Battery = ResetCopyHelpers.DeepCopyOrNew(Battery),
+ Current = ResetCopyHelpers.DeepCopyOrNew(Current),
+
+ // 기존 코드에선 CapCalib/AntiTheft/ChaMode만 깊은 복사를 하고
+ // 나머지는 얕은 복사를 했습니다. 전부 통일합니다.
+ CapCalib = ResetCopyHelpers.DeepCopyOrNew(CapCalib),
+ FetCalib = ResetCopyHelpers.DeepCopyOrNew(FetCalib),
+ ChaMode = ResetCopyHelpers.DeepCopyOrNew(ChaMode),
+ AntiTheft = ResetCopyHelpers.DeepCopyOrNew(AntiTheft),
+ BmsDateTime = ResetCopyHelpers.DeepCopyOrNew(BmsDateTime),
+
+ AntiTheftComm = ResetCopyHelpers.DeepCopyOrNew(AntiTheftComm),
+ AntiTheftGyro = ResetCopyHelpers.DeepCopyOrNew(AntiTheftGyro),
+ };
+ }
+
+ public class BatteryParameter
+ {
+ public short CellQty;
+ public short TempQty;
+ public UInt32 Capacity;
+
+ public BatteryParameter()
+ {
+ CellQty = 0;
+ TempQty = 0;
+ Capacity = 0;
+ }
+ }
+
+ public class CurrentCalib
+ {
+ public short ChargeOption;
+
+ public CurrentCalib()
+ {
+ ChargeOption = 0;
+ }
+ }
+
+ public class CapCalibration : IResettable, IDeepCopy
+ {
+ public int DesignCapacity;
+ public int SocValue;
+ public int CycleCount;
+
+ public CapCalibration()
+ {
+ DesignCapacity = 0;
+ SocValue = 0;
+ CycleCount = 0;
+ }
+ public void Reset()
+ {
+ DesignCapacity = 0;
+ SocValue = 0;
+ CycleCount = 0;
+ }
+ public CapCalibration DeepCopy()
+ {
+ return (CapCalibration)MemberwiseClone();
+ }
+ }
+
+ public class FetCalibration
+ {
+ public short FetStatus;
+ public short DchFetOff; // 6010
+ public short ChaFetOff; // 6011
+ public short LmtChaFetOff; // 6012
+ public short PreChaFetOn; // 6013
+ public short HeaterFetOn; // 6014
+ public short ChaFetOn; // 6015
+
+ public FetCalibration()
+ {
+ FetStatus = 0;
+ DchFetOff = 0;
+ ChaFetOff = 0;
+ LmtChaFetOff = 0;
+ PreChaFetOn = 0;
+ HeaterFetOn = 0;
+ ChaFetOn = 0;
+ }
+ }
+
+ public class ChargeMode : IResettable, IDeepCopy
+ {
+ public int Mode;
+ public int Value;
+
+ public ChargeMode()
+ {
+ Mode = 0;
+ Value = 0;
+ }
+ public void Reset()
+ {
+ Mode = 0;
+ Value = 0;
+ }
+ public ChargeMode DeepCopy()
+ {
+ return (ChargeMode)MemberwiseClone();
+ }
+ }
+
+ public class TAntiTheft : IResettable, IDeepCopy
+ {
+ public int Comm;
+ public int GyroScope;
+
+ public TAntiTheft()
+ {
+ Comm = 0;
+ GyroScope = 0;
+ }
+ public void Reset()
+ {
+ Comm = 0;
+ GyroScope = 0;
+ }
+ public TAntiTheft DeepCopy()
+ {
+ return (TAntiTheft)MemberwiseClone();
+ }
+ }
+
+ public class TBmsDateTime : IResettable, IDeepCopy
+ {
+ public string Str;
+ public int lValue;
+ public short[] sValue;
+
+ public TBmsDateTime()
+ {
+ Str = "";
+ lValue = 0;
+ sValue = new short[2];
+ }
+ public void Reset()
+ {
+ Str = "";
+ lValue = 0;
+ sValue[0] = 0;
+ sValue[1] = 0;
+ }
+ public TBmsDateTime DeepCopy()
+ {
+ var copy = (TBmsDateTime)MemberwiseClone();
+ copy.sValue = (short[])sValue.Clone();
+ return copy;
+ }
+ }
+
+ public class TAntiTheftComm : IResettable, IDeepCopy
+ {
+ public int TimeOut;
+ public int FuncSwitch;
+ public int Unlock;
+
+ public TAntiTheftComm()
+ {
+ TimeOut = 0;
+ FuncSwitch = 0;
+ Unlock = 0;
+ }
+ public void Reset()
+ {
+ TimeOut = 0;
+ FuncSwitch = 0;
+ Unlock = 0;
+ }
+ public TAntiTheftComm DeepCopy()
+ {
+ return (TAntiTheftComm)MemberwiseClone();
+ }
+ }
+
+ public class TAntiTheftGyro : IResettable, IDeepCopy
+ {
+ public int XAxis;
+ public int YAxis;
+ public int ZAxis;
+ public int GyroPolicySel;
+ public int GyroFuncSwitch;
+ public int GyroState;
+ public int Unlock;
+
+ public TAntiTheftGyro()
+ {
+ XAxis = 0;
+ YAxis = 0;
+ ZAxis = 0;
+ GyroPolicySel = 0;
+ GyroFuncSwitch = 0;
+ GyroState = 0;
+ Unlock = 0;
+ }
+ public void Reset()
+ {
+ XAxis = 0;
+ YAxis = 0;
+ ZAxis = 0;
+ GyroPolicySel = 0;
+ GyroFuncSwitch = 0;
+ GyroState = 0;
+ Unlock = 0;
+ }
+ public TAntiTheftGyro DeepCopy()
+ {
+ return (TAntiTheftGyro)MemberwiseClone();
+ }
+ }
+ }
+
+ public class DeviceInforation : IResettable, IDeepCopy
+ {
+ public UInt32 ManufactureDate;
+ public byte[] Model_Byte;
+ public byte[] FwVer_Byte;
+ public string Model_Str;
+ public string FwVer_Str;
+ public byte[] BMS_SN;
+ public string BMS_SN_Str;
+ public byte[] Module_SN;
+
+ public byte[] ManufactureName;
+ public string ManufactureName_Str;
+
+ public byte[] ManuDate_Byte;
+
+ public string VendorName;
+ public string ProductCode;
+ public string MajorMinorRev;
+ public string ModelName;
+ public string HwSerialNumber;
+ public string HwProductRev;
+ public string ManufacturingDate;
+ public string SwProductRev;
+
+ public DeviceInforation()
+ {
+ Model_Byte = new byte[24];
+ FwVer_Byte = new byte[6];
+ Model_Str = " ";
+ FwVer_Str = " ";
+ BMS_SN = new byte[32];
+ BMS_SN_Str = " ";
+ Module_SN = new byte[32];
+
+ ManufactureName_Str = " ";
+ ManufactureName = new byte[10];
+
+ ManuDate_Byte = new byte[16];
+
+ VendorName = "-";
+ ProductCode = "-";
+ MajorMinorRev = "-";
+ ModelName = "-";
+ HwSerialNumber = "-";
+ HwProductRev = "-";
+ ManufacturingDate = "-";
+ SwProductRev = "-";
+ }
+ public void Reset()
+ {
+ ManufactureDate = 0;
+
+ Array.Clear(Model_Byte, 0, Model_Byte.Length);
+ Array.Clear(FwVer_Byte, 0, FwVer_Byte.Length);
+ Model_Str = " ";
+ FwVer_Str = " ";
+
+ Array.Clear(BMS_SN, 0, BMS_SN.Length);
+ BMS_SN_Str = " ";
+ Array.Clear(Module_SN, 0, Module_SN.Length);
+
+ Array.Clear(ManufactureName, 0, ManufactureName.Length);
+ ManufactureName_Str = " ";
+
+ Array.Clear(ManuDate_Byte, 0, ManuDate_Byte.Length);
+
+ VendorName = "-";
+ ProductCode = "-";
+ MajorMinorRev = "-";
+ ModelName = "-";
+ HwSerialNumber = "-";
+ HwProductRev = "-";
+ ManufacturingDate = "-";
+ SwProductRev = "-";
+ }
+ public DeviceInforation DeepCopy()
+ {
+ var copy = (DeviceInforation)MemberwiseClone();
+ copy.Model_Byte = (byte[])Model_Byte.Clone();
+ copy.Model_Byte = (byte[])FwVer_Byte.Clone();
+ copy.Model_Byte = (byte[])BMS_SN.Clone();
+ copy.Model_Byte = (byte[])Module_SN.Clone();
+ copy.Model_Byte = (byte[])ManufactureName.Clone();
+ copy.Model_Byte = (byte[])ManuDate_Byte.Clone();
+ return copy;
+ }
+ }
+
+ public class DeviceEtcStatus : IResettable
+ {
+ public short SwitchHW;
+ public short SwitchWarning;
+ public short SwitchProtect;
+ public ushort LogDurationIdle; // min
+ public ushort LogDurationActive; // min
+ public UInt32 DataAndTime;
+ public ushort ChgOCPModel; /* 充电限流
+ 0:不限流保护
+ 1:始终限流充电
+ 2:预充保护
+ 4:充电过流后限流
+ 8:预充+充电过流后限流 */
+ public short ChgLmtVoltage; // mv
+ public short SOC_StopFloat; // % 暂停浮充Soc
+ public short SOC_RecvFloat; // % 恢复浮充电压
+ public short DurationFloat; // sec
+ public short DurationIdle; // sec
+ public short VoltageStopFloat; // 0.1V
+ public short VoltageRecvFloat; // 0.1V
+ public short FloatMode; /* 0000: 持续浮充
+ 0001:检测电压
+ 0002:定时浮充
+ 0003:检测SOC */
+ public short BalanceVoltage; // mV 均衡启动电压
+ public short BalanceDeltaV; // mV 均衡启动压差
+ public short WarnLowCapacity; // 低容量告警
+ public short HistroyDelete; // 删除数据记录
+
+ public DeviceEtcStatus()
+ {
+
+ }
+ public void Reset()
+ {
+ SwitchHW = 0;
+ SwitchWarning = 0;
+ SwitchProtect = 0;
+ LogDurationIdle = 0;
+ LogDurationActive = 0;
+ DataAndTime = 0;
+ ChgOCPModel = 0;
+ ChgLmtVoltage = 0;
+ SOC_StopFloat = 0;
+ SOC_RecvFloat = 0;
+ DurationFloat = 0;
+ DurationIdle = 0;
+ VoltageStopFloat = 0;
+ VoltageRecvFloat = 0;
+ FloatMode = 0;
+ BalanceVoltage = 0;
+ BalanceDeltaV = 0;
+ WarnLowCapacity = 0;
+ HistroyDelete = 0;
+ }
+ }
+
+ public class DeviceMaxValue : IResettable
+ {
+ public short MaxChgCurrent;
+ public short MaxChgTemperature;
+ public short MinChgTemperature;
+ public short FloatChgVolt;
+ public short BoostChgVolt;
+
+ public DeviceMaxValue()
+ {
+ }
+
+ public void Reset()
+ {
+ MaxChgCurrent = 0;
+ MaxChgTemperature = 0;
+ MinChgTemperature = 0;
+ FloatChgVolt = 0;
+ BoostChgVolt = 0;
+ }
+ }
+
+ public class DeviceGyroValue : IResettable
+ {
+ public short X_axis;
+ public short Y_axis;
+ public short Z_axis;
+ public short Gyro_policy_sel;
+ public short Gyro_func_sw;
+ public short Gyro_state;
+
+ public DeviceGyroValue()
+ {
+
+ }
+ public void Reset()
+ {
+ X_axis = 0;
+ Y_axis = 0;
+ Z_axis = 0;
+ Gyro_policy_sel = 0;
+ Gyro_func_sw = 0;
+ Gyro_state = 0;
+ }
+ }
+ }
+ #endregion
+ }
+ public interface IResettable
+ {
+ void Reset();
+ }
+ public interface IDeepCopy
+ {
+ T DeepCopy();
+ }
+
+ public static class ResetCopyHelpers
+ {
+ // IResettable이면 Reset 호출, 아니면 new()
+ public static void ResetOrRecreate(ref T obj) where T : class, new()
+ {
+ if (obj is IResettable r) r.Reset();
+ else obj = new T();
+ }
+
+ // IDeepCopy 우선, ICloneable 차선, 없으면 new()
+ public static T DeepCopyOrNew(T obj) where T : class, new()
+ {
+ if (obj is IDeepCopy dc) return dc.DeepCopy();
+ if (obj is ICloneable cl) return (T)cl.Clone();
+ return new T();
+ }
+ }
+
+}
diff --git a/LFP_Manager/DataStructure/CsSnmpConstData.cs b/LFP_Manager/DataStructure/CsSnmpConstData.cs
new file mode 100644
index 0000000..753d9f0
--- /dev/null
+++ b/LFP_Manager/DataStructure/CsSnmpConstData.cs
@@ -0,0 +1,79 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace LFP_Manager.DataStructure
+{
+ internal class CsSnmpConstData
+ {
+ public static readonly string[] SnmpOidInfo =
+ {
+ ".1.3.6.1.2.1.15.1.0", // 0 Voltage - 10mV
+ ".1.3.6.1.2.1.15.2.0", // 1 Current - 10mA
+ ".1.3.6.1.2.1.15.3.0", // 2 #01 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.4.0", // 3 #02 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.5.0", // 4 #03 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.6.0", // 5 #04 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.7.0", // 6 #05 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.8.0", // 7 #06 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.9.0", // 8 #07 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.10.0", // 9 #08 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.11.0", // 10 #09 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.12.0", // 11 #10 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.13.0", // 12 #11 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.14.0", // 13 #12 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.15.0", // 14 #13 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.16.0", // 15 #14 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.17.0", // 16 #15 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.18.0", // 17 #16 Cell Voltage - mV
+
+ ".1.3.6.1.2.1.15.19.0", // 18 Temp of PCB - C
+ ".1.3.6.1.2.1.15.20.0", // 19 Temp of Ambient - C
+ ".1.3.6.1.2.1.15.21.0", // 20 Temp Max. - C
+ ".1.3.6.1.2.1.15.22.0", // 21 Remaining Capacity - 0.1AH
+
+ ".1.3.6.1.2.1.15.24.0", // 23 SOH - 0.00%
+ ".1.3.6.1.2.1.15.25.0", // 24 SOC - 0.00%
+ ".1.3.6.1.2.1.15.26.0", // 25 Status
+ ".1.3.6.1.2.1.15.27.0", // 26 Warning
+ ".1.3.6.1.2.1.15.28.0", // 27 Protection
+ ".1.3.6.1.2.1.15.29.0", // 28 FailAndStatus
+ ".1.3.6.1.2.1.15.30.0", // 29 Cycle Count
+
+ ".1.3.6.1.2.1.15.31.0", // 30 #01 Temp - C
+ ".1.3.6.1.2.1.15.32.0", // 31 #02 Temp - C
+ ".1.3.6.1.2.1.15.33.0", // 32 #03 Temp - C
+ ".1.3.6.1.2.1.15.34.0", // 33 #04 Temp - C
+
+ ".1.3.6.1.2.1.15.37.0", // 34 Cell Number
+ ".1.3.6.1.2.1.15.38.0", // 35 Designed Capacity - 0.1AH
+ ".1.3.6.1.2.1.15.39.0", // 36 Average Temp - C
+ ".1.3.6.1.2.1.15.40.0", // 37 Max Charge Current - A
+ ".1.3.6.1.2.1.15.41.0", // 38 Temp Number
+
+ ".1.3.6.1.2.1.15.42.0", // 39 DateTime - Year
+ ".1.3.6.1.2.1.15.43.0", // 40 DateTime - Month
+ ".1.3.6.1.2.1.15.44.0", // 41 DateTime - Date
+ ".1.3.6.1.2.1.15.45.0", // 42 DateTime - Hour
+ ".1.3.6.1.2.1.15.46.0", // 43 DateTime - Minute
+ ".1.3.6.1.2.1.15.47.0", // 44 DateTime - Second
+
+ ".1.3.6.1.2.1.15.48.0", // 45 Flaot Voltage - 0.00V
+ ".1.3.6.1.2.1.15.49.0", // 46 Boost Voltage - 0.00V
+
+ ".1.3.6.1.2.1.15.50.0", // 47 Min. Charge Temp - C
+ ".1.3.6.1.2.1.15.51.0", // 48 Max. Charge Temp - C
+
+ ".1.3.6.1.2.1.15.60.0", // 49 Model - String
+ ".1.3.6.1.2.1.15.61.0", // 50 BMS Firmware - String
+ ".1.3.6.1.2.1.15.62.0", // 51 Pack Serial Number - String
+ ".1.3.6.1.2.1.15.63.0", // 52 Vendor Name - String
+ ".1.3.6.1.2.1.15.64.0", // 53 Product Code - String
+ ".1.3.6.1.2.1.15.65.0", // 54 MajorMinorRev - String
+ ".1.3.6.1.2.1.15.66.0", // 55 HwProductRev - String
+ ".1.3.6.1.2.1.15.67.0", // 56 Manufacture Date - String
+ };
+ }
+}
diff --git a/LFP_Manager/DataStructure/csCanConstData.cs b/LFP_Manager/DataStructure/csCanConstData.cs
new file mode 100644
index 0000000..db8a0bf
--- /dev/null
+++ b/LFP_Manager/DataStructure/csCanConstData.cs
@@ -0,0 +1,192 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace LFP_Manager.DataStructure
+{
+ class csCanConstData
+ {
+ public class CanDeviceInfo
+ {
+ public const int VCI_PCI5121 = 1;
+ public const int VCI_PCI9810 = 2;
+ public const int VCI_USBCAN1 = 3;
+ public const int VCI_USBCAN2 = 4;
+ public const int VCI_USBCAN2A = 4;
+ public const int VCI_PCI9820 = 5;
+ public const int VCI_CAN232 = 6;
+ public const int VCI_PCI5110 = 7;
+ public const int VCI_CANLITE = 8;
+ public const int VCI_ISA9620 = 9;
+ public const int VCI_ISA5420 = 10;
+ public const int VCI_PC104CAN = 11;
+ public const int VCI_CANETUDP = 12;
+ public const int VCI_CANETE = 12;
+ public const int VCI_DNP9810 = 13;
+ public const int VCI_PCI9840 = 14;
+ public const int VCI_PC104CAN2 = 15;
+ public const int VCI_PCI9820I = 16;
+ public const int VCI_CANETTCP = 17;
+ public const int VCI_PEC9920 = 18;
+ public const int VCI_PCI5010U = 19;
+ public const int VCI_USBCAN_E_U = 20;
+ public const int VCI_USBCAN_2E_U = 21;
+ public const int VCI_PCI5020U = 22;
+ public const int VCI_EG20T_CAN = 23;
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ }
+
+ public static readonly string[] DEVICE_NAME =
+ {
+ "PCI5121",
+ "PCI9810",
+ "USBCAN1",
+ "USBCAN2",
+ "USBCAN2A",
+ "PCI9820",
+ "CAN232",
+ "PCI5110",
+ "CANLITE",
+ "ISA9620",
+ "ISA5420",
+ "PC104CAN",
+ "CANETUDP",
+ "CANETE",
+ "DNP9810",
+ "PCI9840",
+ "PC104CAN2",
+ "PCI9820I",
+ "CANETTCP",
+ "PEC9920",
+ "PCI5010U",
+ "USBCAN_E_U",
+ "USBCAN_2E_U",
+ "PCI5020U",
+ "EG20T_CAN",
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ };
+
+ public static readonly int[] DEVICE_ID =
+ {
+ 1,
+ 2,
+ 3,
+ 4,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ };
+
+ //0x060003--1000Kbps
+ //0x060004--800Kbps
+ //0x060007--500Kbps
+ //0x1C0008--250Kbps
+ //0x1C0011--125Kbps
+ //0x160023--100Kbps
+ //0x1C002C--50Kbps
+ //0x1600B3--20Kbps
+ //0x1C00E0--10Kbps
+ //0x1C01C1--5Kbps
+
+ public static readonly int[] CAN_BAUDRATE =
+ {
+ 0x060003,
+ 0x060004,
+ 0x060007,
+ 0x1C0008,
+ 0x1C0011,
+ 0x160023,
+ 0x1C002C,
+ 0x1600B3,
+ 0x1C00E0,
+ 0x1C01C1
+ };
+
+ //USBCAN II Baudrate
+ public static readonly int[] CAN_BAUDRATE_OTHER = // Timer 0 + Timer 1
+ {
+ 0x0014, // 1000Kbps
+ 0x0016, // 800Kbps
+ 0x001C, // 500Kbps
+ 0x011C, // 250Kbps
+ 0x031C, // 125Kbps
+ 0x041C, // 100Kbps
+ 0x091C, // 50Kbps
+ 0x181C, // 20Kbps
+ 0x311C, // 10Kbps
+ 0xBFFF // 5Kbps
+ };
+
+ public static readonly string[] CAN_BAUDRATE_STR =
+ {
+ "1000Kbps",
+ "800Kbps",
+ "500Kbps",
+ "250Kbps",
+ "125Kbps",
+ "100Kbps",
+ "50Kbps",
+ "20Kbps",
+ "10Kbps",
+ "5Kbps"
+ };
+
+ public class SendType
+ {
+ public const int Normal = 0;
+ public const int Single_Normal = 1;
+ public const int Loop_Back = 2;
+ public const int Single_Loop_Back = 3;
+ }
+
+ public class FrameType
+ {
+ public const int Standard = 0;
+ public const int Extended = 1;
+ }
+
+ public class FrameFormat
+ {
+ public const int Data_Frame = 0;
+ public const int Remote_Frame = 1;
+ }
+ }
+}
diff --git a/LFP_Manager/DataStructure/csConstData.cs b/LFP_Manager/DataStructure/csConstData.cs
new file mode 100644
index 0000000..03bfc18
--- /dev/null
+++ b/LFP_Manager/DataStructure/csConstData.cs
@@ -0,0 +1,272 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace LFP_Manager.DataStructure
+{
+ class csConstData
+ {
+ public class SystemInfo
+ {
+ public const int BASE_CAN_TARGET_ADDR = 200;
+ public const int MAX_MODULE_SIZE = 16;
+
+ public const int MAX_MODULE_CELL_SIZE = 15;
+ public const int MAX_MODULE_TEMP_SIZE = 8; //Byul 21.08.09 Initial : 8
+
+ public static readonly int FLOATING_VOLTAGE = (int)(3.55 * MAX_MODULE_CELL_SIZE * 10);
+
+ public static readonly string[] CHG_MODE =
+ {
+ "NO CURR LMT",
+ "ALWAYS CURR LMT",
+ "PRE-CHG PROTECT",
+ "CHG LMT AFTER OC",
+ "PRE-CHG + LMT",
+ };
+ }
+
+ public class CommType
+ {
+ public const int COMM_UART = 0;
+ public const int COMM_RS485 = 1;
+ public const int COMM_SNMP = 2;
+ public const int COMM_UART_MULTI = 9;
+ }
+
+ public class UART_MODEL_INDEX
+ {
+ public const int LFPM_48100D = 0;
+ public const int LFPM_48150D = 1;
+ public const int LFPM_48200D = 2;
+ public const int LFPM_48250D = 3;
+ public const int LFPM_48300D = 4;
+ public const int LFPM_124050D = 5;
+ }
+
+ public static readonly string[] UART_MODEL =
+ {
+ "LFPM-48100SB", // 0
+ "LFPM-48150SB", // 1
+ "LFPM-48200SB", // 2
+ "LFPM-48250SB", // 3
+ "LFPM-48300SB", // 4
+ };
+
+ public static readonly string[] UART_PROTOCOL =
+ {
+ "AMG",
+ };
+
+ public class UART_PARAM_LIST
+ {
+ public const int DEFAULT_PARAM = 0;
+ public const int CELL_UNDER_VOLTAGE = 61; //67
+ public const int PACK_UNDER_VOLTAGE = 64; //64
+ public const int CELL_OVER_VOLTAGE = 67; //
+ public const int PACK_OVER_VOLTAGE = 70; //61
+ public const int CHG_OVER_CURRENT2 = 83;
+ public const int DCH_OVER_CURRENT2 = 84;
+ public const int CHG_OVER_CURRENT = 78;
+ public const int DCH_OVER_CURRENT = 79;
+
+ public const int ENV_LOW_TEMPERATURE = 0x82; // 130, 131, 132 0x82, 0x83, 0x84 - Warning, Trip, Release
+ public const int ENV_HIGH_TEMPERATURE = 0x85; // 133, 134, 135 0x85, 0x86, 0x87 - Warning, Trip, Release
+
+ public const int CHG_LOW_TEMPERATURE = 90;
+ public const int CHG_HIGH_TEMPERATURE = 93; //93
+ public const int DCH_LOW_TEMPERATURE = 96;
+ public const int DCH_HIGH_TEMPERATURE = 99; //99
+ public const int PCB_HIGH_TEMPERATURE = 102;
+
+ public const int LOW_CAPACITY = 58;
+
+ public const int DESIGN_CAPACITY = 37;
+ public const int SOC_VALUE = 24;
+ public const int CYCLE_COUNT = 29;
+ }
+
+ public class UART_CALIB_ADDR_LIST
+ {
+ public const int LIMIT_CHARGE = 0x502E; //
+ public const int BMS_DATETIME = 0x002D;
+ public const int CHAGE_MODE = 0x002F; //
+ public const int ANTI_THEFT_COMM = 0x0088;
+ public const int ANTI_THEFT_GYRO = 0x0089;
+
+ public const int BAL_VOLT = 0x38;
+ public const int BAL_DIFF = 0x39;
+ }
+
+ public class UART_PARAM_DEFAULT
+ {
+ public const int Warn_Cell_UV = 2800;
+ public const int Protect_Cell_UV = 2500;
+ public const int Release_Cell_UV = 3000;
+ public const int Warn_Pack_UV = 4300;
+ public const int Protect_Pack_UV = 4200;
+ public const int Release_Pack_UV = 4500;
+
+ public const int Warn_Cell_OV = 3750;
+ public const int Protect_Cell_OV = 3850;
+ public const int Release_Cell_OV = 3580;
+ public const int Warn_Pack_OV = 5600;
+ public const int Protect_Pack_OV = 5700;
+ public const int Release_Pack_OV = 5400;
+
+ public const int Protect_Charge_OC1 = 11000;
+ public const int Protect_Discharge_OC1 = 11000;
+ public const int Protect_Charge_OC2 = 12000;
+ public const int Protect_Discharge_OC2 = 12000;
+ public const int ReleaseTime_Charge_OC = 60;
+ public const int ReleaseTime_Discharge_OC = 60;
+ public const int Delay_Charge_OC1 = 5;
+ public const int Delay_Discharge_OC1 = 5;
+ public const int Delay_Charge_OC2 = 1;
+ public const int Delay_Discharge_OC2 = 1;
+ public const int Times_Charge_OC = 5;
+ public const int Times_Discharge_OC = 5;
+
+ public const int Warn_Charge_UT = -5;
+ public const int Protect_Charge_UT = -10;
+ public const int Release_Charge_UT = -3;
+ public const int Warn_Charge_OT = 60;
+ public const int Protect_Charge_OT = 65;
+ public const int Release_Charge_OT = 55;
+
+ public const int Warn_Discharge_UT = -20;
+ public const int Protect_Discharge_UT = -25;
+ public const int Release_Discharge_UT = -15;
+ public const int Warn_Discharge_OT = 65;
+ public const int Protect_Discharge_OT = 70;
+ public const int Release_Discharge_OT = 60;
+
+ public const int Warn_Low_Capacity = 5;
+ }
+
+ public class UART_124050_PARAM_DEFAULT
+ {
+ public const int Warn_Cell_UV = 2800;
+ public const int Protect_Cell_UV = 2500;
+ public const int Release_Cell_UV = 3000;
+ public const int Warn_Pack_UV = 10900;
+ public const int Protect_Pack_UV = 9795;
+ public const int Release_Pack_UV = 11700;
+
+ public const int Warn_Cell_OV = 3750;
+ public const int Protect_Cell_OV = 3850;
+ public const int Release_Cell_OV = 3580;
+ public const int Warn_Pack_OV = 14600;
+ public const int Protect_Pack_OV = 15000;
+ public const int Release_Pack_OV = 14000;
+
+ public const int Protect_Charge_OC1 = 11000;
+ public const int Protect_Discharge_OC1 = 11000;
+ public const int Protect_Charge_OC2 = 12000;
+ public const int Protect_Discharge_OC2 = 12000;
+ public const int ReleaseTime_Charge_OC = 60;
+ public const int ReleaseTime_Discharge_OC = 60;
+ public const int Delay_Charge_OC1 = 5;
+ public const int Delay_Discharge_OC1 = 5;
+ public const int Delay_Charge_OC2 = 1;
+ public const int Delay_Discharge_OC2 = 1;
+ public const int Times_Charge_OC = 5;
+ public const int Times_Discharge_OC = 5;
+
+ public const int Warn_Charge_UT = -5;
+ public const int Protect_Charge_UT = -10;
+ public const int Release_Charge_UT = -3;
+ public const int Warn_Charge_OT = 60;
+ public const int Protect_Charge_OT = 65;
+ public const int Release_Charge_OT = 55;
+
+ public const int Warn_Discharge_UT = -20;
+ public const int Protect_Discharge_UT = -25;
+ public const int Release_Discharge_UT = -15;
+ public const int Warn_Discharge_OT = 65;
+ public const int Protect_Discharge_OT = 70;
+ public const int Release_Discharge_OT = 60;
+
+ public const int Warn_Low_Capacity = 5;
+
+ public const int Warn_Env_UT = -20;
+ public const int Protect_Env_UT = -25;
+ public const int Release_Env_UT = -15;
+ public const int Warn_Env_OT = 65;
+ public const int Protect_Env_OT = 70;
+ public const int Release_Env_OT = 60;
+ }
+
+ public class ResetCommandFlag
+ {
+ public static readonly ushort SystemReset = 0x0001;
+ public static readonly ushort LcdHistoryDelete = 0x0002;
+ public static readonly ushort SystemResetAll = 0x0003;
+ }
+
+ public class Eltek_Data
+ {
+ public static readonly ushort MD_BASE_REG = 4000;
+ public static readonly ushort MD_OFFSET = 400;
+
+ public static readonly ushort OpDataRegAddr = 0;
+ public static readonly ushort OpDataRegSize = 15;
+ public static readonly ushort ParaDataRegAddr = 200;
+ public static readonly ushort ParaDataRegSize = 71;
+
+ public static ushort GetOpDataRegAddr(int mID)
+ {
+ return (ushort)(MD_BASE_REG + (MD_OFFSET * mID) + OpDataRegAddr);
+ }
+ public static ushort GetParamDataRegAddr(int mID)
+ {
+ return (ushort)(MD_BASE_REG + (MD_OFFSET * mID) + ParaDataRegAddr);
+ }
+ }
+ public class CRC_Data
+ {
+ public static readonly byte[] auchCRCHi =
+ {
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
+ 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
+ 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
+ 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,
+ 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
+ 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
+ 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
+ 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
+ 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
+ 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
+ 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
+ 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
+ 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40
+ };
+
+ public static readonly byte[] auchCRCLo =
+ {
+ 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4,
+ 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,
+ 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD,
+ 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,
+ 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7,
+ 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A,
+ 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE,
+ 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,
+ 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2,
+ 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,
+ 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB,
+ 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,
+ 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91,
+ 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,
+ 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88,
+ 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
+ 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,0x40
+ };
+ }
+ }
+}
diff --git a/LFP_Manager/DataStructure/csDataStructure.cs b/LFP_Manager/DataStructure/csDataStructure.cs
new file mode 100644
index 0000000..b166057
--- /dev/null
+++ b/LFP_Manager/DataStructure/csDataStructure.cs
@@ -0,0 +1,1016 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Runtime.InteropServices;
+using System.Windows.Forms;
+using static DevExpress.Utils.MVVM.Internal.ILReader;
+using LFP_Manager.Function;
+
+namespace LFP_Manager.DataStructure
+{
+ public class CommConfig
+ {
+ public int CommType;
+
+ public string SnmpIP;
+ public int SnmpModelIndex;
+ public int ModuleQty;
+ public int RecvWaitTime;
+
+ public string UartPort;
+ public int UartBaudrate;
+ public int UartModelIndex;
+ public int UartProtocol;
+
+ public int CommFailTime;
+
+ public int DbLogPeriod;
+
+ public int GyroSensitive;
+
+ public int ControlLevel;
+
+ public string MasterPw;
+ public string EngineerPw;
+ public string TechnicianPw;
+
+ public CommConfig()
+ {
+ CommType = 0;
+
+ SnmpIP = "192.168.0.200";
+ SnmpModelIndex = 0;
+ ModuleQty = 1;
+
+ UartPort = "";
+ UartBaudrate = 9600;
+ UartModelIndex = 0;
+ UartProtocol = 0;
+
+ RecvWaitTime = 1500; // 1500ms
+ CommFailTime = 5000; // 5000ms
+
+ DbLogPeriod = 5;
+
+ GyroSensitive = 120;
+
+ ControlLevel = 0;
+
+ MasterPw = "8003";
+ EngineerPw = "7003";
+ TechnicianPw = "6003";
+ }
+ }
+
+ public class TMinMax
+ {
+ public short value;
+ public short num;
+
+ public TMinMax()
+ {
+ value = 0;
+ num = 0;
+ }
+ }
+
+ public class DeviceSystemTotalData
+ {
+ public bool CommFail;
+
+ public DeviceSystemIdent IdentData;
+ public DeviceValueTotalData ValueData;
+ public DeviceStatusTotalData StatusData;
+
+ public DeviceSystemTotalData()
+ {
+ IdentData = new DeviceSystemIdent();
+ ValueData = new DeviceValueTotalData();
+ StatusData = new DeviceStatusTotalData();
+ }
+ }
+
+ public class DeviceSystemIdent
+ {
+ public string Manufacturer;
+ public string DeviceModel;
+ //public int ModuleQuantity;
+
+ public byte[] fw_ver;
+ public string FwVerStr;
+
+ public int AlarmOutputMode;
+
+ public UInt32 ManufactureDate;
+ public string SerialNumber;
+
+ public DeviceSystemIdent()
+ {
+ Manufacturer = "";
+ DeviceModel = "";
+ //ModuleQuantity = 1;
+
+ fw_ver = new byte[4];
+ FwVerStr = "";
+
+ AlarmOutputMode = 0;
+ ManufactureDate = 0;
+ SerialNumber = "";
+ }
+ }
+
+ public class DateTimeStruct
+ {
+ public int year;
+ public int month;
+ public int day;
+ public int hour;
+ public int minute;
+ public int second;
+
+ public string DateTimeStr;
+
+ public DateTimeStruct()
+ {
+ DateTimeStr = "-";
+ }
+ }
+
+ public class DeviceSystemData
+ {
+ public bool active;
+
+ public int mNo;
+ public int cellQty;
+ public int recv_cellQty;
+ public int tempQty;
+ public int ntcQty;
+ public int ChargeVoltage;
+ public int DOD;
+ public int MaxChaCurrent;
+ public int MaxDchCurrent;
+
+ public int FloatVoltage;
+ public int BoostVoltage;
+
+ public int MinChargeTemp;
+ public int MaxChargeTemp;
+
+ public UInt32 heatbeat;
+ public bool CommFail;
+ public bool ShelfCommFail;
+ public DateTime LastRxTime;
+ public Int32 BmsDateTimeInt;
+ public ushort BmsDateTimeShort1;
+ public ushort BmsDateTimeShort2;
+
+ public DateTimeStruct BmsDateTime;
+
+ public DeviceValueData ValueData;
+ public DeviceAvgData AvgData;
+ public DeviceStatusData StatusData;
+ public DeviceParamData ParamData;
+ public DeviceCalibration CalibrationData;
+ public DeviceInforation Information;
+ public DeviceEtcStatus EtcStatus;
+
+ public DeviceMaxValue MaxValue;
+ public DeviceGyroValue GyroValue;
+
+ public DeviceSystemData()
+ {
+ active = false;
+
+ mNo = 0;
+ cellQty = csConstData.SystemInfo.MAX_MODULE_CELL_SIZE;
+ tempQty = csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE;
+ ChargeVoltage = 0;
+ DOD = 0;
+ MaxChaCurrent = 0;
+ MaxDchCurrent = 0;
+
+ heatbeat = 0;
+ CommFail = false;
+ ShelfCommFail = false;
+ LastRxTime = DateTime.MinValue;
+ BmsDateTimeInt = 0;
+
+ BmsDateTime = new DateTimeStruct();
+
+ ValueData = new DeviceValueData();
+ AvgData = new DeviceAvgData();
+ StatusData = new DeviceStatusData();
+ ParamData = new DeviceParamData();
+ CalibrationData = new DeviceCalibration();
+ Information = new DeviceInforation();
+ EtcStatus = new DeviceEtcStatus();
+
+ MaxValue = new DeviceMaxValue();
+ GyroValue = new DeviceGyroValue();
+ }
+
+ public void Reset()
+ {
+ active = false;
+
+ mNo = 0;
+ cellQty = 15;
+ tempQty = 4;
+ ChargeVoltage = 0;
+ DOD = 0;
+ MaxChaCurrent = 0;
+ MaxDchCurrent = 0;
+
+ heatbeat = 0;
+ CommFail = false;
+ ShelfCommFail = false;
+ LastRxTime = DateTime.MinValue;
+ BmsDateTimeInt = 0;
+ BmsDateTimeShort1 = 0;
+ BmsDateTimeShort2 = 0;
+
+ ResetCopyHelpers.ResetOrRecreate(ref BmsDateTime);
+ ResetCopyHelpers.ResetOrRecreate(ref ValueData);
+ ResetCopyHelpers.ResetOrRecreate(ref AvgData);
+ ResetCopyHelpers.ResetOrRecreate(ref ParamData);
+ ResetCopyHelpers.ResetOrRecreate(ref CalibrationData);
+ ResetCopyHelpers.ResetOrRecreate(ref Information);
+ ResetCopyHelpers.ResetOrRecreate(ref EtcStatus);
+ ResetCopyHelpers.ResetOrRecreate(ref MaxValue);
+ ResetCopyHelpers.ResetOrRecreate(ref GyroValue);
+ }
+
+ }
+
+ public class DeviceValueTotalData
+ {
+ public short TotalVoltage;
+ public short TotalCurrent;
+ public short TotalSOC;
+ public short TotalSOH;
+ public short TotalTemp;
+
+ public DeviceValueTotalData()
+ {
+ TotalVoltage = 0;
+ TotalCurrent = 0;
+ TotalSOC = 0;
+ TotalSOH = 0;
+ TotalTemp = 0;
+ }
+ }
+
+ public class DeviceValueData
+ {
+ public byte[] fw_ver;
+
+ public short voltageOfPack;
+ public short current;
+ public short cha_current;
+ public short dch_current;
+ public short averageCurrent;
+ public short rSOC;
+
+ public short NumOfCells;
+ public short NumOfTemps;
+
+ public ushort[] CellVoltage;
+ public short[] CellTemperature;
+
+ public short Ext1Temperature;
+ public short Ext2Temperature;
+
+ public short remainingCapacity;
+ public short stateOfHealth;
+ public int cycleCount;
+ public int fullChargeCapacity;
+ public int designedCapacity;
+
+ public int TimeLeft;
+
+ public int Ah_Charged;
+ public int Ah_Discharged;
+ public int NoOfDischargeCycles;
+ public int NoOfChargeCycles;
+
+ public int ModuleAlarms;
+ public int ModuleWarnings;
+ public int ModuleStatus;
+ public int ModuleVoltage_int;
+ public int ModBusDocVersion;
+
+ public int ParametersChanged;
+ public int MaxBattChargeCurr;
+ public int MaxBattDischargeCurr;
+
+ public int BatteryProdDateYear;
+ public int BatteryProdDateMonth;
+ public int BatteryProdDateDay;
+
+ public int BatteryModelDescription;
+ public int BatteryType;
+
+ public DeviceValueData()
+ {
+ fw_ver = new byte[6];
+
+ CellVoltage = new ushort[csConstData.SystemInfo.MAX_MODULE_CELL_SIZE];
+ CellTemperature = new short[csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE];
+ }
+ }
+
+ public class DeviceAvgData
+ {
+ public int maxCellVoltage;
+ public int minCellVoltage;
+ public int avgCellVoltage;
+ public int diffCellVoltage;
+ public int maxCellNum;
+ public int minCellNum;
+ public int maxTemp;
+ public int minTemp;
+ public int avgTemp;
+ public int diffTemp;
+ public int maxTempNum;
+ public int minTempNum;
+
+ public DeviceAvgData()
+ {
+
+ }
+ }
+
+ public class DeviceStatusTotalData
+ {
+ public short batteryStatus;
+ public short warning;
+ public short protection;
+ public short status;
+ }
+
+ public class DeviceStatusData
+ {
+ public short batteryStatus;
+ public short batteryStatus1;
+ public short warning;
+ public short protection;
+ public short protection1;
+ public short status;
+ public short faultAndStatus;
+ public short relayStatus;
+ public short errorCode;
+ public short specialAlarm; // 1: Commfail, 2. Gyro, 3, Breaker
+
+ public short faultstatus; // Only for RS-485
+
+ public short cellBallanceStatus;
+ public short cellBalanceValue;
+ public short cellBalanceFlag;
+ }
+
+ public class DeviceCommStatus
+ {
+ public DateTime LastRxTime;
+ public bool CommFail;
+ }
+
+ public class DeviceParamData
+ {
+ public short CellOverVoltageTrip;
+ public short CellOverVoltageWarning;
+ public short CellOverVoltageRelease;
+ public short CellUnderVoltageTrip;
+ public short CellUnderVoltageWarning;
+ public short CellUnderVoltageRelease;
+
+ public short SysOverVoltageTrip;
+ public short SysOverVoltageWarning;
+ public short SysOverVoltageRelease;
+ public short SysUnderVoltageTrip;
+ public short SysUnderVoltageWarning;
+ public short SysUnderVoltageRelease;
+
+ public short ChaHighTempTrip;
+ public short ChaHighTempWarning;
+ public short ChaHighTempRelease;
+ public short ChaLowTempTrip;
+ public short ChaLowTempWarning;
+ public short ChaLowTempRelease;
+ public short DchHighTempTrip;
+ public short DchHighTempWarning;
+ public short DchHighTempRelease;
+ public short DchLowTempTrip;
+ public short DchLowTempWarning;
+ public short DchLowTempRelease;
+
+ public short ChaOverCurrentTrip1;
+ public short ChaOverCurrentTrip2;
+ public short ChaOverCurrentWarning;
+ public short ChaOverCurrentReleaseTime;
+ public short ChaOverCurrentTimes;
+ public short ChaOverCurrentDelay1;
+ public short ChaOverCurrentDelay2;
+
+ public short DchOverCurrentTrip1;
+ public short DchOverCurrentTrip2;
+ public short DchOverCurrentWarning;
+ public short DchOverCurrentReleaseTime;
+ public short DchOverCurrentTimes;
+ public short DchOverCurrentDelay1;
+ public short DchOverCurrentDelay2;
+
+ public short PcbHighTempTrip;
+ public short PcbHighTempWarning;
+ public short PcbHighTempRelease;
+
+ public short EnvLowTempWarning;
+ public short EnvLowTempTrip;
+ public short EnvLowTempRelease;
+ public short EnvHighTempWarning;
+ public short EnvHighTempTrip;
+ public short EnvHighTempRelease;
+
+ public short ShortCircuit;
+
+ public short LowSocTrip;
+ public short LowSocWarning;
+ public short LowSocRelease;
+
+ public short CellVoltageDifferenceTrip;
+ public short CellVoltageDifferenceWarning;
+ public short CellVoltageDifferenceRelease;
+ public short CellVoltageDifferenceTime;
+
+ public short DefalutParamOption;
+ public short DefalutParamAll;
+ public ushort ReadParamAll;
+
+ public DeviceParamData DeepCopy()
+ {
+ DeviceParamData newCopy = new DeviceParamData
+ {
+ CellOverVoltageTrip = CellOverVoltageTrip,
+ CellOverVoltageWarning = CellOverVoltageWarning,
+ CellOverVoltageRelease = CellOverVoltageRelease,
+ CellUnderVoltageTrip = CellUnderVoltageTrip,
+ CellUnderVoltageWarning = CellUnderVoltageWarning,
+ CellUnderVoltageRelease = CellUnderVoltageRelease,
+
+ SysOverVoltageTrip = SysOverVoltageTrip,
+ SysOverVoltageWarning = SysOverVoltageWarning,
+ SysOverVoltageRelease = SysOverVoltageRelease,
+ SysUnderVoltageTrip = SysUnderVoltageTrip,
+ SysUnderVoltageWarning = SysUnderVoltageWarning,
+ SysUnderVoltageRelease = SysUnderVoltageRelease,
+
+ ChaHighTempTrip = ChaHighTempTrip,
+ ChaHighTempWarning = ChaHighTempWarning,
+ ChaHighTempRelease = ChaHighTempRelease,
+ ChaLowTempTrip = ChaLowTempTrip,
+ ChaLowTempWarning = ChaLowTempWarning,
+ ChaLowTempRelease = ChaLowTempRelease,
+ DchHighTempTrip = DchHighTempTrip,
+ DchHighTempWarning = DchHighTempWarning,
+ DchHighTempRelease = DchHighTempRelease,
+ DchLowTempTrip = DchLowTempTrip,
+ DchLowTempWarning = DchLowTempWarning,
+ DchLowTempRelease = DchLowTempRelease,
+
+ ChaOverCurrentTrip1 = ChaOverCurrentTrip1,
+ ChaOverCurrentTrip2 = ChaOverCurrentTrip2,
+ ChaOverCurrentWarning = ChaOverCurrentWarning,
+ ChaOverCurrentReleaseTime = ChaOverCurrentReleaseTime,
+ ChaOverCurrentTimes = ChaOverCurrentTimes,
+ ChaOverCurrentDelay1 = ChaOverCurrentDelay1,
+ ChaOverCurrentDelay2 = ChaOverCurrentDelay2,
+
+ DchOverCurrentTrip1 = DchOverCurrentTrip1,
+ DchOverCurrentTrip2 = DchOverCurrentTrip2,
+ DchOverCurrentWarning = DchOverCurrentWarning,
+ DchOverCurrentReleaseTime = DchOverCurrentReleaseTime,
+ DchOverCurrentTimes = DchOverCurrentTimes,
+ DchOverCurrentDelay1 = DchOverCurrentDelay1,
+ DchOverCurrentDelay2 = DchOverCurrentDelay2,
+
+ PcbHighTempTrip = PcbHighTempTrip,
+ PcbHighTempWarning = PcbHighTempWarning,
+ PcbHighTempRelease = PcbHighTempRelease,
+
+ EnvLowTempWarning = EnvLowTempWarning,
+ EnvLowTempTrip = EnvLowTempTrip,
+ EnvLowTempRelease = EnvLowTempRelease,
+ EnvHighTempWarning = EnvHighTempWarning,
+ EnvHighTempTrip = EnvHighTempTrip,
+ EnvHighTempRelease = EnvHighTempRelease,
+
+ ShortCircuit = ShortCircuit,
+
+ LowSocTrip = LowSocTrip,
+ LowSocWarning = LowSocWarning,
+ LowSocRelease = LowSocRelease,
+
+ CellVoltageDifferenceTrip = CellVoltageDifferenceTrip,
+ CellVoltageDifferenceWarning = CellVoltageDifferenceWarning,
+ CellVoltageDifferenceRelease = CellVoltageDifferenceRelease,
+ CellVoltageDifferenceTime = CellVoltageDifferenceTime,
+
+ DefalutParamOption = DefalutParamOption,
+ DefalutParamAll = DefalutParamAll,
+ ReadParamAll = ReadParamAll,
+ };
+ return newCopy;
+ }
+ }
+
+ public class DeviceCalibration
+ {
+ public CellVoltageCalib CellVoltge;
+ public SystemVoltageCalib SystemVoltage;
+ public ForcedBalControl ForcedBalancing;
+ public BatteryParameter Battery;
+ public CurrentCalib Current;
+ public SystemInfor SystemInfo;
+ public CapCalibration CapCalib;
+ public FetCalibration FetCalib;
+ public ChargeMode ChaMode;
+ public TAntiTheft AntiTheft;
+ public TBmsDateTime BmsDateTime;
+
+ public TBalCalib BalCalib;
+
+ public DeviceInforation InvData;
+
+ public TAntiTheftComm AntiTheftComm;
+ public TAntiTheftGyro AntiTheftGyro;
+
+ public DeviceCalibration()
+ {
+ CellVoltge = new CellVoltageCalib();
+ SystemVoltage = new SystemVoltageCalib();
+ ForcedBalancing = new ForcedBalControl();
+ Battery = new BatteryParameter();
+ Current = new CurrentCalib();
+ SystemInfo = new SystemInfor();
+ CapCalib = new CapCalibration();
+ FetCalib = new FetCalibration();
+ ChaMode = new ChargeMode();
+ AntiTheft = new TAntiTheft();
+ BmsDateTime = new TBmsDateTime();
+
+ BalCalib = new TBalCalib();
+
+ InvData = new DeviceInforation();
+
+ AntiTheftComm = new TAntiTheftComm();
+ AntiTheftGyro = new TAntiTheftGyro();
+ }
+ public DeviceCalibration DeepCopy()
+ {
+ DeviceCalibration newCopy = new DeviceCalibration
+ {
+ CellVoltge = CellVoltge,
+ SystemVoltage = SystemVoltage,
+ ForcedBalancing = ForcedBalancing,
+ Battery = Battery,
+ Current = Current,
+ SystemInfo = SystemInfo,
+
+ CapCalib = CapCalib.DeepCopy(),
+ AntiTheft = AntiTheft.DeepCopy(),
+ BalCalib = BalCalib.DeepCopy(),
+
+ FetCalib = FetCalib,
+ ChaMode = ChaMode.DeepCopy(),
+ };
+ return newCopy;
+ }
+ }
+
+ public class TAntiTheftComm
+ {
+ public int TimeOut;
+ public int FuncSwitch;
+ public int Unlock;
+
+ public TAntiTheftComm()
+ {
+ TimeOut = 0;
+ FuncSwitch = 0;
+ Unlock = 0;
+ }
+ public TAntiTheftComm DeepCopy()
+ {
+ TAntiTheftComm newCopy = new TAntiTheftComm
+ {
+ TimeOut = TimeOut,
+ FuncSwitch = FuncSwitch,
+ Unlock = Unlock
+ };
+ return newCopy;
+ }
+ }
+ public class TAntiTheftGyro
+ {
+ public int XAxis;
+ public int YAxis;
+ public int ZAxis;
+ public int GyroPolicySel;
+ public int GyroFuncSwitch;
+ public int GyroState;
+ public int Unlock;
+
+ public TAntiTheftGyro()
+ {
+ XAxis = 0;
+ YAxis = 0;
+ ZAxis = 0;
+ GyroPolicySel = 0;
+ GyroFuncSwitch = 0;
+ GyroState = 0;
+ Unlock = 0;
+ }
+ public TAntiTheftGyro DeepCopy()
+ {
+ TAntiTheftGyro newCopy = new TAntiTheftGyro
+ {
+ XAxis = XAxis,
+ YAxis = YAxis,
+ ZAxis = ZAxis,
+ GyroPolicySel = GyroPolicySel,
+ GyroFuncSwitch = GyroFuncSwitch,
+ GyroState = GyroState,
+ Unlock = Unlock,
+ };
+ return newCopy;
+ }
+ }
+
+ public class CellVoltageCalib
+ {
+ public short CurrentCellNo; // 0: ODD, 1: EVEN
+ public short OddCellVoltageCalibration_K;
+ public short OddCellVoltageCalibration_B;
+ public short EvenCellVoltageCalibration_K;
+ public short EvenCellVoltageCalibration_B;
+ }
+
+ public class SystemVoltageCalib
+ {
+ [MarshalAs(UnmanagedType.I2, SizeConst = 2)]
+ public short Calibration_K;
+ public short Calibration_B;
+ }
+
+ public class ForcedBalControl
+ {
+ public short Control;
+ public short CellNo;
+ public bool AutoB;
+ }
+
+ public class BatteryParameter
+ {
+ public short CellQty;
+ public short TempQty;
+ public UInt32 Capacity;
+ }
+
+ public class CurrentCalib
+ {
+ public short SelectSubItem;
+ public short ShuntRange;
+ public short CurrentZero;
+ public short VoltageZero;
+ public Int32 ChgCalibration_K;
+ public Int32 DchCalibration_K;
+ public short ChaAndDchSelect;
+ public short ChargeOption;
+ }
+
+ public class SystemInfor
+ {
+ //public short Id;
+ public DateTime devTime;
+ public ushort LastRebootCause;
+ }
+
+ public class CapCalibration
+ {
+ public int DesignCapacity;
+ public int SocValue;
+ public int CycleCount;
+
+ public CapCalibration()
+ {
+ DesignCapacity = 0;
+ SocValue = 0;
+ CycleCount = 0;
+ }
+ public CapCalibration DeepCopy()
+ {
+ CapCalibration newCopy = new CapCalibration
+ {
+ DesignCapacity = DesignCapacity,
+ SocValue = SocValue,
+ CycleCount = CycleCount,
+ };
+ return newCopy;
+ }
+ }
+
+ public class ChargeMode
+ {
+ public int Mode;
+ public int Value;
+
+ public ChargeMode()
+ {
+ Mode = 0;
+ Value = 0;
+ }
+ public ChargeMode DeepCopy()
+ {
+ ChargeMode newCopy = new ChargeMode
+ {
+ Mode = Mode,
+ Value = Value,
+ };
+ return newCopy;
+ }
+ }
+ public class TAntiTheft
+ {
+ public int Comm;
+ public int GyroScope;
+
+ public TAntiTheft()
+ {
+ Comm = 0;
+ GyroScope = 0;
+ }
+ public TAntiTheft DeepCopy()
+ {
+ TAntiTheft newCopy = new TAntiTheft
+ {
+ Comm = Comm,
+ GyroScope = GyroScope,
+ };
+ return newCopy;
+ }
+ }
+ public class TBmsDateTime
+ {
+ public string Str;
+ public int lValue;
+ public short[] sValue;
+
+ public TBmsDateTime()
+ {
+ Str = "";
+ lValue = 0;
+ sValue = new short[2];
+ }
+ public TBmsDateTime DeepCopy()
+ {
+ TBmsDateTime newCopy = new TBmsDateTime
+ {
+ Str = Str,
+ lValue = lValue,
+ };
+ for (int i = 0; i < 2; i++)
+ {
+ newCopy.sValue[i] = sValue[i];
+ }
+ return newCopy;
+ }
+ }
+ public class TBalCalib
+ {
+ public int Volt;
+ public int Diff;
+
+ public TBalCalib()
+ {
+ Volt = 0;
+ Diff = 0;
+ }
+ public TBalCalib DeepCopy()
+ {
+ TBalCalib newCopy = new TBalCalib
+ {
+ Volt = Volt,
+ Diff = Diff,
+ };
+ return newCopy;
+ }
+ }
+
+
+ public class FetCalibration
+ {
+ public short FetStatus;
+ public short DchFetOff; // 6010
+ public short ChaFetOff; // 6011
+ public short LmtChaFetOff; // 6012
+ public short PreChaFetOn; // 6013
+ public short HeaterFetOn; // 6014
+ public short ChaFetOn; // 6015
+ }
+
+ public class DeviceInforation
+ {
+ //public string ManuDate_Str;
+ public byte[] ManuDate_Byte;
+
+ public byte[] Model_Byte;
+ public byte[] FwVer_Byte;
+ //public string Model_Str;
+ //public string FwVer_Str;
+ public byte[] BMS_SN;
+ //public string BMS_SN_Str;
+ public byte[] Module_SN;
+
+ public string VendorName;
+ public string ProductCode;
+ public string MajorMinorRev;
+ public string ModelName;
+ public string HwSerialNumber;
+ public string HwProductRev;
+ public string ManufacturingDate;
+ public string SwProductRev;
+
+ public DeviceInforation()
+ {
+ ManuDate_Byte = new byte[10];
+
+ Model_Byte = new byte[24];
+ FwVer_Byte = new byte[6];
+ //Model_Str = " ";
+ //FwVer_Str = " ";
+ BMS_SN = new byte[32];
+ //BMS_SN_Str = " ";
+ Module_SN = new byte[32];
+
+ VendorName = "-";
+ ProductCode = "-";
+ MajorMinorRev = "-";
+ ModelName = "-";
+ HwSerialNumber = "-";
+ HwProductRev = "-";
+ ManufacturingDate = "-";
+ SwProductRev = "-";
+ }
+ }
+
+ public class DeviceEtcStatus
+ {
+ public short SwitchHW;
+ public short SwitchWarning;
+ public short SwitchProtect;
+ public ushort LogDurationIdle; // min
+ public ushort LogDurationActive; // min
+ public UInt32 DataAndTime;
+ public ushort ChgOCPModel; /* 充电限流
+ 0:不限流保护
+ 1:始终限流充电
+ 2:预充保护
+ 4:充电过流后限流
+ 8:预充+充电过流后限流 */
+ public short ChgLmtVoltage; // mv
+ public short SOC_StopFloat; // % 暂停浮充Soc
+ public short SOC_RecvFloat; // % 恢复浮充电压
+ public short DurationFloat; // sec
+ public short DurationIdle; // sec
+ public short VoltageStopFloat; // 0.1V
+ public short VoltageRecvFloat; // 0.1V
+ public short FloatMode; /* 0000: 持续浮充
+ 0001:检测电压
+ 0002:定时浮充
+ 0003:检测SOC */
+ public short BalanceVoltage; // mV 均衡启动电压
+ public short BalanceDeltaV; // mV 均衡启动压差
+ public short WarnLowCapacity; // 低容量告警
+ public short HistroyDelete; // 删除数据记录
+ }
+
+ public class DeviceMaxValue
+ {
+ public short MaxChgCurrent;
+ public short MaxChgTemperature;
+ public short MinChgTemperature;
+ public short FloatChgVolt;
+ public short BoostChgVolt;
+
+ public DeviceMaxValue()
+ {
+
+ }
+ }
+ public class DeviceGyroValue
+ {
+ public short X_axis;
+ public short Y_axis;
+ public short Z_axis;
+ public short Gyro_policy_sel;
+ public short Gyro_func_sw;
+ public short Gyro_state;
+
+ public DeviceGyroValue()
+ {
+
+ }
+ }
+
+ public class TUartTRxData
+ {
+ public int type;
+ public int length;
+ public byte[] data;
+
+ public TUartTRxData()
+ {
+ type = 0;
+ length = 0;
+ data = new byte[256];
+ }
+ public TUartTRxData DeepCopy()
+ {
+ TUartTRxData newCopy = new TUartTRxData
+ {
+ type = type,
+ length = length,
+ data = data
+ };
+ for (int i = 0; i < data.Length; i++)
+ {
+ newCopy.data[i] = data[i];
+ }
+
+ return newCopy;
+ }
+ }
+
+ public class TUartTxBuff
+ {
+ public int InPos;
+ public int OutPos;
+ public TUartTRxData[] Buf;
+ public TUartTxBuff()
+ {
+ InPos = 0;
+ OutPos = 0;
+ Buf = new TUartTRxData[50];
+ for (int i = 0; i < 50; i++)
+ {
+ Buf[i] = new TUartTRxData();
+ }
+ }
+
+ public bool CheckBuff()
+ {
+ if (InPos != OutPos) { return true; }
+ else { return false; }
+ }
+ public void PutBuff(TUartTRxData UartTxData)
+ {
+ if (UartTxData != null)
+ {
+ Buf[InPos++] = UartTxData.DeepCopy();
+ InPos %= 50;
+ }
+ }
+ public TUartTRxData GetBuff()
+ {
+ TUartTRxData result = null;
+
+ if (InPos != OutPos)
+ {
+ result = Buf[OutPos++].DeepCopy();
+ OutPos %= 50;
+ }
+ return result;
+ }
+ }
+
+ public class THistoryAlarmData
+ {
+ public int mNo;
+ public bool newFdata;
+ public bool oldFdata;
+ public bool newWdata;
+ public bool oldWdata;
+ public bool newEdata;
+ public bool oldEdata;
+ public THistoryAlarmData()
+ {
+ mNo = 0;
+ newFdata = false;
+ oldFdata = false;
+ newWdata = false;
+ oldWdata = false;
+ newEdata = false;
+ oldEdata = false;
+ }
+ }
+}
diff --git a/LFP_Manager/DataStructure/csDbConstData.cs b/LFP_Manager/DataStructure/csDbConstData.cs
new file mode 100644
index 0000000..1309122
--- /dev/null
+++ b/LFP_Manager/DataStructure/csDbConstData.cs
@@ -0,0 +1,165 @@
+using System;
+
+namespace LFP_Manager.DataStructure
+{
+ internal static class DbConstData
+ {
+ // ============================== //
+ // DB 정의 (SQLite)
+ // ============================== //
+ public static class Database
+ {
+ // 오타 수정: AlamrHistory → AlarmHistory
+ public const string FileName = @"\db\AlarmHistory.db";
+ public const string TableName = "TAlarmHistory";
+
+ // NOTE:
+ // - SQLite 권장 타입(TEXT/INTEGER/REAL) 사용
+ // - 마지막 콤마 제거
+ // - IF NOT EXISTS 추가
+ // - 자동 증가 PK(Id) 추가
+ public static readonly string CreateTable = $@"
+CREATE TABLE IF NOT EXISTS {TableName} (
+ Id INTEGER PRIMARY KEY AUTOINCREMENT,
+ create_date TEXT NOT NULL,
+ alarm_code INTEGER,
+ alarm_status INTEGER,
+ alarm_cname TEXT,
+ alarm_sname TEXT,
+ module_no INTEGER,
+ ct_no INTEGER,
+ alarm_param_1 REAL,
+ alarm_param_2 REAL,
+ alarm_param_3 REAL
+);";
+
+ public static readonly string CreateIndexes = $@"
+CREATE INDEX IF NOT EXISTS IX_{TableName}_create_date ON {TableName}(create_date);
+CREATE INDEX IF NOT EXISTS IX_{TableName}_create_date_alarm_code ON {TableName}(create_date, alarm_code);
+CREATE INDEX IF NOT EXISTS IX_{TableName}_create_date_module_no ON {TableName}(create_date, module_no);
+-- 선택: 코드/상태/모듈 단독 인덱스(필요할 때만)
+-- CREATE INDEX IF NOT EXISTS IX_{TableName}_alarm_code ON {TableName}(alarm_code);
+-- CREATE INDEX IF NOT EXISTS IX_{TableName}_alarm_status ON {TableName}(alarm_status);
+-- CREATE INDEX IF NOT EXISTS IX_{TableName}_module_no ON {TableName}(module_no);
+";
+ }
+
+ // ============================== //
+ // Alarm 코드 정의 (enum)
+ // - 추가하신 15~18 포함
+ // - 기존 숫자값 유지 (호환성)
+ // ============================== //
+ public enum Alarm
+ {
+ CELL_UNDER_VOLTAGE = 0,
+ CELL_OVER_VOLTAGE = 1,
+ UNDER_VOLTAGE = 2,
+ OVER_VOLTAGE = 3, // 오타 수정: VOLTAGAE → VOLTAGE
+ CHARGE_OVER_TEMPERATURE = 4,
+ DISCHARGE_OVER_TEMPERATURE = 5,
+ CHARGE_LOW_TEMPERATURE = 6,
+ DISCHARGE_LOW_TEMPERATURE = 7,
+ CHARGE_OVER_CURRENT = 8,
+ DISCHARGE_OVER_CURRENT = 9,
+ LOW_SOC = 10,
+ LOW_SOH = 11,
+ CELL_VOLTAGE_DIFF = 12,
+ SHORT_CIRCUIT = 13,
+ COMM_FAIL = 14,
+ MOSFET_OVER_TERMPERATURE = 15,
+
+ CB_OFF = 16,
+
+ VOLTAGE_MEASUREMENT_ERROR = 17, // 신규
+ TEMPERATURE_MEASUREMENT_ERROR = 18, // 신규
+ BATTERY_CELL_UNBALANCE = 19, // 신규
+ EMERGENCY_ALARM = 20, // 신규
+
+ STS_STAND_BY = 21,
+ STS_CHARGING = 22, // 오타 수정: CHARING → CHARGING
+ STS_DISCHARGING = 23,
+ STS_PROTECTED = 24,
+ STS_PRE_CHARGING = 25,
+ STS_UNKNOWN = 30,
+ START = 31,
+ STOP = 32,
+ }
+
+ // index = 코드
+ private static readonly string[] AlarmNames =
+ {
+ /* 0 */ "CELL UNDER VOLTAGE",
+ /* 1 */ "CELL OVER VOLTAGE",
+ /* 2 */ "UNDER VOLTAGE",
+ /* 3 */ "OVER VOLTAGE",
+ /* 4 */ "CHARGE OVER TEMPERATURE",
+ /* 5 */ "DISCHARGE OVER TEMPERATURE",
+ /* 6 */ "CHARGE LOW TEMPERATURE",
+ /* 7 */ "DISCHARGE LOW TEMPERATURE",
+ /* 8 */ "CHARGE OVER CURRENT",
+ /* 9 */ "DISCHARGE OVER CURRENT",
+ /* 10 */ "LOW SOC",
+ /* 11 */ "LOW SOH",
+ /* 12 */ "CELL VOLTAGE DIFFERENCE",
+ /* 13 */ "SHORT CIRCUIT",
+ /* 14 */ "COMM FAIL",
+ /* 15 */ "MOSFET OVER TEMPERATURE",
+ /* 16 */ "CIRCUIT BREAKER OFF",
+ /* 17 */ "VOLTAGE MEASUREMENT ERROR",
+ /* 18 */ "TEMPERATURE MEASUREMENT ERROR",
+ /* 19 */ "BATTERY CELL UNBALANCE",
+ /* 20 */ "EMERGENCY ALARM",
+ /* 21 */ "STAND BY",
+ /* 22 */ "CHARGING",
+ /* 23 */ "DISCHARGING",
+ /* 24 */ "PROTECTED",
+ /* 25 */ "PRE-CHARGING",
+ /* 26 */ "RESERVED",
+ /* 27 */ "RESERVED",
+ /* 28 */ "RESERVED",
+ /* 29 */ "RESERVED",
+ /* 30 */ "UNKNOWN",
+ /* 31 */ "START",
+ /* 32 */ "STOP",
+ };
+
+ // 기존 상수 ALARM_NAME_SIZE는 실제 길이와 어긋나므로 제거 권장.
+ // 필요하시면 아래 프로퍼티로 대체하세요.
+ public static int AlarmNameCount => AlarmNames.Length;
+
+ public static string GetAlarmName(int code)
+ => (code >= 0 && code < AlarmNames.Length) ? AlarmNames[code] : $"UNKNOWN({code})";
+
+ public static string GetAlarmName(Alarm code) => GetAlarmName((int)code);
+
+ // ============================== //
+ // Flag 정의 (enum)
+ // ============================== //
+ public enum Flag
+ {
+ RELEASE = 0,
+ WARNING = 1,
+ PROTECT = 2,
+ ERROR = 3,
+ STS_CHANGED = 4,
+ INFORMATION = 5,
+ }
+
+ private static readonly string[] FlagNames =
+ {
+ "RELEASE",
+ "WARNING",
+ "PROTECT",
+ "ERROR",
+ "STATUS CHANGED",
+ "INFORMATION",
+ };
+
+ public static int FlagNameCount => FlagNames.Length;
+
+ public static string GetFlagName(int code)
+ => (code >= 0 && code < FlagNames.Length) ? FlagNames[code] : $"UNKNOWN({code})";
+
+ public static string GetFlagName(Flag code) => GetFlagName((int)code);
+ }
+}
diff --git a/LFP_Manager/Form1.Designer.cs b/LFP_Manager/Form1.Designer.cs
new file mode 100644
index 0000000..24932dc
--- /dev/null
+++ b/LFP_Manager/Form1.Designer.cs
@@ -0,0 +1,47 @@
+namespace snmp_sim
+{
+ partial class fmMain
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.SuspendLayout();
+ //
+ // fmMain
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(284, 262);
+ this.Name = "fmMain";
+ this.Text = "Form1";
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+ }
+}
+
diff --git a/LFP_Manager/Form1.cs b/LFP_Manager/Form1.cs
new file mode 100644
index 0000000..9a387a9
--- /dev/null
+++ b/LFP_Manager/Form1.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace snmp_sim
+{
+ public partial class fmMain : Form
+ {
+ public fmMain()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/LFP_Manager/Form1.resx b/LFP_Manager/Form1.resx
new file mode 100644
index 0000000..19dc0dd
--- /dev/null
+++ b/LFP_Manager/Form1.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxChangePw.Designer.cs b/LFP_Manager/Forms/FmxChangePw.Designer.cs
new file mode 100644
index 0000000..111805f
--- /dev/null
+++ b/LFP_Manager/Forms/FmxChangePw.Designer.cs
@@ -0,0 +1,374 @@
+namespace LFP_Manager.Forms
+{
+ partial class FmxChangePw
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.RbMaster = new System.Windows.Forms.RadioButton();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.RbEngineer = new System.Windows.Forms.RadioButton();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.RbTechnician = new System.Windows.Forms.RadioButton();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.LbCurrentLevel = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.TePW = new DevExpress.XtraEditors.TextEdit();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.BtnApply = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.BtnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.TmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.RbUser = new System.Windows.Forms.RadioButton();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.LbCurrentLevel)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TePW.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.RbUser);
+ this.layoutControl1.Controls.Add(this.BtnClose);
+ this.layoutControl1.Controls.Add(this.BtnApply);
+ this.layoutControl1.Controls.Add(this.TePW);
+ this.layoutControl1.Controls.Add(this.RbTechnician);
+ this.layoutControl1.Controls.Add(this.RbEngineer);
+ this.layoutControl1.Controls.Add(this.RbMaster);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(751, 0, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(500, 233);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.emptySpaceItem1,
+ this.layoutControlGroup1,
+ this.layoutControlGroup2,
+ this.layoutControlGroup3,
+ this.layoutControlItem5,
+ this.layoutControlItem6});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(500, 233);
+ this.Root.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 176);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(498, 16);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem2,
+ this.layoutControlItem1,
+ this.layoutControlItem3,
+ this.layoutControlItem7});
+ this.layoutControlGroup1.Location = new System.Drawing.Point(0, 61);
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(498, 58);
+ this.layoutControlGroup1.Text = "Control Level";
+ //
+ // RbMaster
+ //
+ this.RbMaster.Location = new System.Drawing.Point(7, 89);
+ this.RbMaster.Name = "RbMaster";
+ this.RbMaster.Size = new System.Drawing.Size(118, 25);
+ this.RbMaster.TabIndex = 8;
+ this.RbMaster.TabStop = true;
+ this.RbMaster.Text = "Master";
+ this.RbMaster.UseVisualStyleBackColor = true;
+ this.RbMaster.CheckedChanged += new System.EventHandler(this.RbMaster_CheckedChanged);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.RbMaster;
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem2.MaxSize = new System.Drawing.Size(0, 29);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(24, 29);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(122, 29);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // RbEngineer
+ //
+ this.RbEngineer.Location = new System.Drawing.Point(129, 89);
+ this.RbEngineer.Name = "RbEngineer";
+ this.RbEngineer.Size = new System.Drawing.Size(119, 25);
+ this.RbEngineer.TabIndex = 9;
+ this.RbEngineer.TabStop = true;
+ this.RbEngineer.Text = "Engineer";
+ this.RbEngineer.UseVisualStyleBackColor = true;
+ this.RbEngineer.CheckedChanged += new System.EventHandler(this.RbEngineer_CheckedChanged);
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.RbEngineer;
+ this.layoutControlItem1.Location = new System.Drawing.Point(122, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(24, 29);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(123, 29);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // RbTechnician
+ //
+ this.RbTechnician.Location = new System.Drawing.Point(252, 89);
+ this.RbTechnician.Name = "RbTechnician";
+ this.RbTechnician.Size = new System.Drawing.Size(118, 25);
+ this.RbTechnician.TabIndex = 10;
+ this.RbTechnician.TabStop = true;
+ this.RbTechnician.Text = "Technician";
+ this.RbTechnician.UseVisualStyleBackColor = true;
+ this.RbTechnician.CheckedChanged += new System.EventHandler(this.RbTechnician_CheckedChanged);
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.RbTechnician;
+ this.layoutControlItem3.Location = new System.Drawing.Point(245, 0);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(24, 29);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(122, 29);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // LbCurrentLevel
+ //
+ this.LbCurrentLevel.AllowHotTrack = false;
+ this.LbCurrentLevel.Location = new System.Drawing.Point(0, 0);
+ this.LbCurrentLevel.MaxSize = new System.Drawing.Size(0, 32);
+ this.LbCurrentLevel.MinSize = new System.Drawing.Size(126, 32);
+ this.LbCurrentLevel.Name = "LbCurrentLevel";
+ this.LbCurrentLevel.Size = new System.Drawing.Size(490, 32);
+ this.LbCurrentLevel.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.LbCurrentLevel.Text = " Current Level: ";
+ this.LbCurrentLevel.TextSize = new System.Drawing.Size(85, 14);
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.LbCurrentLevel});
+ this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup2.Name = "layoutControlGroup2";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(498, 61);
+ this.layoutControlGroup2.Text = "Control Level";
+ //
+ // TePW
+ //
+ this.TePW.Location = new System.Drawing.Point(7, 147);
+ this.TePW.Name = "TePW";
+ this.TePW.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11F);
+ this.TePW.Properties.Appearance.Options.UseFont = true;
+ this.TePW.Properties.Appearance.Options.UseTextOptions = true;
+ this.TePW.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.TePW.Properties.PasswordChar = '*';
+ this.TePW.Size = new System.Drawing.Size(486, 24);
+ this.TePW.StyleController = this.layoutControl1;
+ this.TePW.TabIndex = 11;
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.TePW;
+ this.layoutControlItem4.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem4.MaxSize = new System.Drawing.Size(0, 28);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(171, 28);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(490, 28);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // layoutControlGroup3
+ //
+ this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem4});
+ this.layoutControlGroup3.Location = new System.Drawing.Point(0, 119);
+ this.layoutControlGroup3.Name = "layoutControlGroup3";
+ this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup3.Size = new System.Drawing.Size(498, 57);
+ this.layoutControlGroup3.Text = "Password";
+ //
+ // BtnApply
+ //
+ this.BtnApply.Location = new System.Drawing.Point(3, 195);
+ this.BtnApply.Name = "BtnApply";
+ this.BtnApply.Size = new System.Drawing.Size(245, 35);
+ this.BtnApply.StyleController = this.layoutControl1;
+ this.BtnApply.TabIndex = 12;
+ this.BtnApply.Text = "Apply";
+ this.BtnApply.Click += new System.EventHandler(this.BtnApply_Click);
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.BtnApply;
+ this.layoutControlItem5.Location = new System.Drawing.Point(0, 192);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(249, 39);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // BtnClose
+ //
+ this.BtnClose.Location = new System.Drawing.Point(252, 195);
+ this.BtnClose.Name = "BtnClose";
+ this.BtnClose.Size = new System.Drawing.Size(245, 35);
+ this.BtnClose.StyleController = this.layoutControl1;
+ this.BtnClose.TabIndex = 13;
+ this.BtnClose.Text = "Close";
+ this.BtnClose.Click += new System.EventHandler(this.BtnClose_Click);
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.BtnClose;
+ this.layoutControlItem6.Location = new System.Drawing.Point(249, 192);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(249, 39);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // TmrDisplay
+ //
+ this.TmrDisplay.Interval = 500;
+ this.TmrDisplay.Tick += new System.EventHandler(this.TmrDisplay_Tick);
+ //
+ // RbUser
+ //
+ this.RbUser.Location = new System.Drawing.Point(374, 89);
+ this.RbUser.Name = "RbUser";
+ this.RbUser.Size = new System.Drawing.Size(119, 25);
+ this.RbUser.TabIndex = 14;
+ this.RbUser.TabStop = true;
+ this.RbUser.Text = "User";
+ this.RbUser.UseVisualStyleBackColor = true;
+ this.RbUser.CheckedChanged += new System.EventHandler(this.RbUser_CheckedChanged);
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.RbUser;
+ this.layoutControlItem7.Location = new System.Drawing.Point(367, 0);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(123, 29);
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // FmxLevelConfig
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(500, 233);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Image = global::LFP_Manager.Properties.Resources.AMO_LOGO1;
+ this.Name = "FmxLevelConfig";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Control Level Config";
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FmxLevelConfig_FormClosing);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.LbCurrentLevel)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TePW.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private System.Windows.Forms.RadioButton RbTechnician;
+ private System.Windows.Forms.RadioButton RbEngineer;
+ private System.Windows.Forms.RadioButton RbMaster;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.SimpleLabelItem LbCurrentLevel;
+ private DevExpress.XtraEditors.TextEdit TePW;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraEditors.SimpleButton BtnClose;
+ private DevExpress.XtraEditors.SimpleButton BtnApply;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private System.Windows.Forms.Timer TmrDisplay;
+ private System.Windows.Forms.RadioButton RbUser;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxChangePw.cs b/LFP_Manager/Forms/FmxChangePw.cs
new file mode 100644
index 0000000..685b299
--- /dev/null
+++ b/LFP_Manager/Forms/FmxChangePw.cs
@@ -0,0 +1,184 @@
+using DevExpress.XtraEditors;
+using DevExpress.XtraPrinting.Native.LayoutAdjustment;
+using LFP_Manager.DataStructure;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Forms
+{
+ public partial class FmxChangePw : DevExpress.XtraEditors.XtraForm
+ {
+ #region VARIABLES
+
+ CommConfig Config;
+
+ #endregion
+
+ #region CONSTRUCTORS
+ public FmxChangePw()
+ {
+ InitializeComponent();
+ }
+
+ public FmxChangePw(CommConfig aConfig)
+ {
+ InitializeComponent();
+
+ Config = aConfig;
+
+ switch (Config.ControlLevel)
+ {
+ case 0: // User Level
+ RbUser.Checked = true;
+ break;
+ case 1: // Technician Level
+ RbTechnician.Checked = true;
+ break;
+ case 2: // Engineer Level
+ RbEngineer.Checked = true;
+ break;
+ case 3: // Master Level
+ RbMaster.Checked = true;
+ break;
+ default: // User Level
+ RbUser.Checked = true;
+ break;
+ }
+ DisplayStatus();
+ TmrDisplay.Start();
+ }
+ #endregion
+
+ #region BUTTON EVENT
+ private void BtnClose_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+ private void BtnApply_Click(object sender, EventArgs e)
+ {
+ string cPW = TePW.Text;
+
+ if (RbMaster.Checked)
+ {
+ if (Config.MasterPw == cPW)
+ {
+ Config.ControlLevel = 3;
+ MessageBox.Show("Complete change to Mastar Level", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else
+ {
+ MessageBox.Show("Wrong password for Master Level", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ else if (RbEngineer.Checked)
+ {
+ if (Config.EngineerPw == cPW)
+ {
+ Config.ControlLevel = 2;
+ MessageBox.Show("Complete change to Engineer Level", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else
+ {
+ MessageBox.Show("Wrong password for Engineer Level", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ else if (RbTechnician.Checked)
+ {
+ if (Config.TechnicianPw == cPW)
+ {
+ Config.ControlLevel = 1;
+ MessageBox.Show("Complete change to Technician Level", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else
+ {
+ MessageBox.Show("Wrong password for Technician Level", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ else if (RbUser.Checked)
+ {
+ Config.ControlLevel = 0;
+ }
+ }
+ #endregion
+
+ #region DISPLAY FUNCTION
+ private void DisplayStatus()
+ {
+ switch (Config.ControlLevel)
+ {
+ case 0: // User Level
+ LbCurrentLevel.Text = " Current Level: User Level";
+ break;
+ case 1: // Technician Level
+ LbCurrentLevel.Text = " Current Level: Technician Level";
+ break;
+ case 2: // Engineer Level
+ LbCurrentLevel.Text = " Current Level: Engineer Level";
+ break;
+ case 3: // Master Level
+ LbCurrentLevel.Text = " Current Level: Master Level";
+ break;
+ }
+ }
+ #endregion
+
+ #region FORM EVENT
+ private void FmxLevelConfig_FormClosing(object sender, FormClosingEventArgs e)
+ {
+ TmrDisplay.Stop();
+ }
+ #endregion
+
+ #region COMPONENT EVENT
+ private void RbMaster_CheckedChanged(object sender, EventArgs e)
+ {
+ if (RbMaster.Checked)
+ {
+ TePW.Enabled = true;
+ }
+ TePW.Text = "";
+ }
+
+ private void RbEngineer_CheckedChanged(object sender, EventArgs e)
+ {
+ if (RbEngineer.Checked)
+ {
+ TePW.Enabled = true;
+ }
+ TePW.Text = "";
+ }
+
+ private void RbTechnician_CheckedChanged(object sender, EventArgs e)
+ {
+ if (RbTechnician.Checked)
+ {
+ TePW.Enabled = true;
+ }
+ TePW.Text = "";
+ }
+
+ private void RbUser_CheckedChanged(object sender, EventArgs e)
+ {
+ if (RbUser.Checked)
+ {
+ TePW.Enabled = false;
+ }
+ TePW.Text = "";
+ }
+ #endregion
+
+ #region TIMER EVENT
+ private void TmrDisplay_Tick(object sender, EventArgs e)
+ {
+ DisplayStatus();
+ }
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxChangePw.resx b/LFP_Manager/Forms/FmxChangePw.resx
new file mode 100644
index 0000000..c9162a8
--- /dev/null
+++ b/LFP_Manager/Forms/FmxChangePw.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxInformation.Designer.cs b/LFP_Manager/Forms/FmxInformation.Designer.cs
new file mode 100644
index 0000000..f6bdce1
--- /dev/null
+++ b/LFP_Manager/Forms/FmxInformation.Designer.cs
@@ -0,0 +1,195 @@
+namespace LFP_Manager.Forms
+{
+ partial class FmxInformation
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.LbDeviceId = new DevExpress.XtraEditors.LabelControl();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.BtnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.TmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.BtnClose);
+ this.layoutControl1.Controls.Add(this.LbDeviceId);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1018, 137, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(767, 398);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.emptySpaceItem1,
+ this.layoutControlItem2,
+ this.layoutControlGroup1});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(767, 398);
+ this.Root.TextVisible = false;
+ //
+ // LbDeviceId
+ //
+ this.LbDeviceId.Appearance.Font = new System.Drawing.Font("Tahoma", 20F);
+ this.LbDeviceId.Appearance.Options.UseFont = true;
+ this.LbDeviceId.Appearance.Options.UseTextOptions = true;
+ this.LbDeviceId.Appearance.TextOptions.VAlignment = DevExpress.Utils.VertAlignment.Top;
+ this.LbDeviceId.Location = new System.Drawing.Point(23, 28);
+ this.LbDeviceId.Name = "LbDeviceId";
+ this.LbDeviceId.Size = new System.Drawing.Size(737, 332);
+ this.LbDeviceId.StyleController = this.layoutControl1;
+ this.LbDeviceId.TabIndex = 4;
+ this.LbDeviceId.Text = "-";
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.LbDeviceId;
+ this.layoutControlItem1.Location = new System.Drawing.Point(16, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(741, 336);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 365);
+ this.emptySpaceItem1.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(648, 31);
+ this.emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // BtnClose
+ //
+ this.BtnClose.Location = new System.Drawing.Point(651, 368);
+ this.BtnClose.Name = "BtnClose";
+ this.BtnClose.Size = new System.Drawing.Size(113, 27);
+ this.BtnClose.StyleController = this.layoutControl1;
+ this.BtnClose.TabIndex = 5;
+ this.BtnClose.Text = "Close";
+ this.BtnClose.Click += new System.EventHandler(this.BtnClose_Click);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.BtnClose;
+ this.layoutControlItem2.Location = new System.Drawing.Point(648, 365);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(117, 31);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // emptySpaceItem2
+ //
+ this.emptySpaceItem2.AllowHotTrack = false;
+ this.emptySpaceItem2.Location = new System.Drawing.Point(0, 0);
+ this.emptySpaceItem2.MinSize = new System.Drawing.Size(10, 24);
+ this.emptySpaceItem2.Name = "emptySpaceItem2";
+ this.emptySpaceItem2.Size = new System.Drawing.Size(16, 336);
+ this.emptySpaceItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // TmrDisplay
+ //
+ this.TmrDisplay.Enabled = true;
+ this.TmrDisplay.Interval = 500;
+ this.TmrDisplay.Tick += new System.EventHandler(this.TmrDisplay_Tick);
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.emptySpaceItem2,
+ this.layoutControlItem1});
+ this.layoutControlGroup1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(765, 365);
+ this.layoutControlGroup1.Text = "Device ID";
+ //
+ // FmxInformation
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(767, 398);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Image = global::LFP_Manager.Properties.Resources.AMO_LOGO1;
+ this.Name = "FmxInformation";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Information";
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraEditors.SimpleButton BtnClose;
+ private DevExpress.XtraEditors.LabelControl LbDeviceId;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+ private System.Windows.Forms.Timer TmrDisplay;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxInformation.cs b/LFP_Manager/Forms/FmxInformation.cs
new file mode 100644
index 0000000..f5d99d4
--- /dev/null
+++ b/LFP_Manager/Forms/FmxInformation.cs
@@ -0,0 +1,66 @@
+using DevExpress.XtraEditors;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+using LFP_Manager.DataStructure;
+
+namespace LFP_Manager.Forms
+{
+ public partial class FmxInformation : DevExpress.XtraEditors.XtraForm
+ {
+ #region VARIABLES
+ private int sID;
+ private CommConfig Config;
+ private CsDeviceData.DeviceModuleData SystemData;
+ #endregion
+
+ #region CONSTRUCTORS
+ public FmxInformation(int SystemID, CommConfig aConfig, ref CsDeviceData.DeviceModuleData mData)
+ {
+ InitializeComponent();
+
+ sID = SystemID;
+ Config = aConfig;
+ SystemData = mData;
+ }
+ #endregion
+
+ #region TIMER EVENT
+ private void TmrDisplay_Tick(object sender, EventArgs e)
+ {
+ DisplayDeviceID();
+ }
+ #endregion
+
+ #region DISPLAY FUNCTION
+ private void DisplayDeviceID()
+ {
+ string tmp = "";
+ tmp += string.Format("Vendor Name : {0}\r\n", SystemData.Information.VendorName);
+ tmp += string.Format("Product Code : {0}\r\n", SystemData.Information.ProductCode);
+ tmp += string.Format("Major Minor Revision : {0}\r\n", SystemData.Information.MajorMinorRev);
+ tmp += string.Format("Model Name : {0}\r\n", SystemData.Information.ModelName);
+ tmp += string.Format("Hardware Serial Number : {0}\r\n", SystemData.Information.HwSerialNumber);
+ tmp += string.Format("Hardware Product Revision : {0}\r\n", SystemData.Information.HwProductRev);
+ tmp += string.Format("Manufacturing date : {0}\r\n", SystemData.Information.ManufacturingDate);
+ tmp += string.Format("SW Product Revision : {0}\r\n", SystemData.Information.SwProductRev);
+
+ LbDeviceId.Text = tmp;
+ }
+ #endregion
+
+ #region BUTTON EVENT
+ private void BtnClose_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxInformation.resx b/LFP_Manager/Forms/FmxInformation.resx
new file mode 100644
index 0000000..c9162a8
--- /dev/null
+++ b/LFP_Manager/Forms/FmxInformation.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxLevelConfig.Designer.cs b/LFP_Manager/Forms/FmxLevelConfig.Designer.cs
new file mode 100644
index 0000000..dac7b1a
--- /dev/null
+++ b/LFP_Manager/Forms/FmxLevelConfig.Designer.cs
@@ -0,0 +1,374 @@
+namespace LFP_Manager.Forms
+{
+ partial class FmxLevelConfig
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.RbMaster = new System.Windows.Forms.RadioButton();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.RbEngineer = new System.Windows.Forms.RadioButton();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.RbTechnician = new System.Windows.Forms.RadioButton();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.LbCurrentLevel = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.TePW = new DevExpress.XtraEditors.TextEdit();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.BtnApply = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.BtnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.TmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.RbUser = new System.Windows.Forms.RadioButton();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.LbCurrentLevel)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TePW.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.RbUser);
+ this.layoutControl1.Controls.Add(this.BtnClose);
+ this.layoutControl1.Controls.Add(this.BtnApply);
+ this.layoutControl1.Controls.Add(this.TePW);
+ this.layoutControl1.Controls.Add(this.RbTechnician);
+ this.layoutControl1.Controls.Add(this.RbEngineer);
+ this.layoutControl1.Controls.Add(this.RbMaster);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(751, 0, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(500, 233);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.emptySpaceItem1,
+ this.layoutControlGroup1,
+ this.layoutControlGroup2,
+ this.layoutControlGroup3,
+ this.layoutControlItem5,
+ this.layoutControlItem6});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(500, 233);
+ this.Root.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 176);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(498, 16);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem2,
+ this.layoutControlItem1,
+ this.layoutControlItem3,
+ this.layoutControlItem7});
+ this.layoutControlGroup1.Location = new System.Drawing.Point(0, 61);
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(498, 58);
+ this.layoutControlGroup1.Text = "Control Level";
+ //
+ // RbMaster
+ //
+ this.RbMaster.Location = new System.Drawing.Point(7, 89);
+ this.RbMaster.Name = "RbMaster";
+ this.RbMaster.Size = new System.Drawing.Size(118, 25);
+ this.RbMaster.TabIndex = 8;
+ this.RbMaster.TabStop = true;
+ this.RbMaster.Text = "Master";
+ this.RbMaster.UseVisualStyleBackColor = true;
+ this.RbMaster.CheckedChanged += new System.EventHandler(this.RbMaster_CheckedChanged);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.RbMaster;
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem2.MaxSize = new System.Drawing.Size(0, 29);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(24, 29);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(122, 29);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // RbEngineer
+ //
+ this.RbEngineer.Location = new System.Drawing.Point(129, 89);
+ this.RbEngineer.Name = "RbEngineer";
+ this.RbEngineer.Size = new System.Drawing.Size(119, 25);
+ this.RbEngineer.TabIndex = 9;
+ this.RbEngineer.TabStop = true;
+ this.RbEngineer.Text = "Engineer";
+ this.RbEngineer.UseVisualStyleBackColor = true;
+ this.RbEngineer.CheckedChanged += new System.EventHandler(this.RbEngineer_CheckedChanged);
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.RbEngineer;
+ this.layoutControlItem1.Location = new System.Drawing.Point(122, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(24, 29);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(123, 29);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // RbTechnician
+ //
+ this.RbTechnician.Location = new System.Drawing.Point(252, 89);
+ this.RbTechnician.Name = "RbTechnician";
+ this.RbTechnician.Size = new System.Drawing.Size(118, 25);
+ this.RbTechnician.TabIndex = 10;
+ this.RbTechnician.TabStop = true;
+ this.RbTechnician.Text = "Technician";
+ this.RbTechnician.UseVisualStyleBackColor = true;
+ this.RbTechnician.CheckedChanged += new System.EventHandler(this.RbTechnician_CheckedChanged);
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.RbTechnician;
+ this.layoutControlItem3.Location = new System.Drawing.Point(245, 0);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(24, 29);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(122, 29);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // LbCurrentLevel
+ //
+ this.LbCurrentLevel.AllowHotTrack = false;
+ this.LbCurrentLevel.Location = new System.Drawing.Point(0, 0);
+ this.LbCurrentLevel.MaxSize = new System.Drawing.Size(0, 32);
+ this.LbCurrentLevel.MinSize = new System.Drawing.Size(126, 32);
+ this.LbCurrentLevel.Name = "LbCurrentLevel";
+ this.LbCurrentLevel.Size = new System.Drawing.Size(490, 32);
+ this.LbCurrentLevel.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.LbCurrentLevel.Text = " Current Level: ";
+ this.LbCurrentLevel.TextSize = new System.Drawing.Size(85, 14);
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.LbCurrentLevel});
+ this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup2.Name = "layoutControlGroup2";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(498, 61);
+ this.layoutControlGroup2.Text = "Control Level";
+ //
+ // TePW
+ //
+ this.TePW.Location = new System.Drawing.Point(7, 147);
+ this.TePW.Name = "TePW";
+ this.TePW.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11F);
+ this.TePW.Properties.Appearance.Options.UseFont = true;
+ this.TePW.Properties.Appearance.Options.UseTextOptions = true;
+ this.TePW.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.TePW.Properties.PasswordChar = '*';
+ this.TePW.Size = new System.Drawing.Size(486, 24);
+ this.TePW.StyleController = this.layoutControl1;
+ this.TePW.TabIndex = 11;
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.TePW;
+ this.layoutControlItem4.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem4.MaxSize = new System.Drawing.Size(0, 28);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(171, 28);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(490, 28);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // layoutControlGroup3
+ //
+ this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem4});
+ this.layoutControlGroup3.Location = new System.Drawing.Point(0, 119);
+ this.layoutControlGroup3.Name = "layoutControlGroup3";
+ this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup3.Size = new System.Drawing.Size(498, 57);
+ this.layoutControlGroup3.Text = "Password";
+ //
+ // BtnApply
+ //
+ this.BtnApply.Location = new System.Drawing.Point(3, 195);
+ this.BtnApply.Name = "BtnApply";
+ this.BtnApply.Size = new System.Drawing.Size(245, 35);
+ this.BtnApply.StyleController = this.layoutControl1;
+ this.BtnApply.TabIndex = 12;
+ this.BtnApply.Text = "Apply";
+ this.BtnApply.Click += new System.EventHandler(this.BtnApply_Click);
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.BtnApply;
+ this.layoutControlItem5.Location = new System.Drawing.Point(0, 192);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(249, 39);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // BtnClose
+ //
+ this.BtnClose.Location = new System.Drawing.Point(252, 195);
+ this.BtnClose.Name = "BtnClose";
+ this.BtnClose.Size = new System.Drawing.Size(245, 35);
+ this.BtnClose.StyleController = this.layoutControl1;
+ this.BtnClose.TabIndex = 13;
+ this.BtnClose.Text = "Close";
+ this.BtnClose.Click += new System.EventHandler(this.BtnClose_Click);
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.BtnClose;
+ this.layoutControlItem6.Location = new System.Drawing.Point(249, 192);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(249, 39);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // TmrDisplay
+ //
+ this.TmrDisplay.Interval = 500;
+ this.TmrDisplay.Tick += new System.EventHandler(this.TmrDisplay_Tick);
+ //
+ // RbUser
+ //
+ this.RbUser.Location = new System.Drawing.Point(374, 89);
+ this.RbUser.Name = "RbUser";
+ this.RbUser.Size = new System.Drawing.Size(119, 25);
+ this.RbUser.TabIndex = 14;
+ this.RbUser.TabStop = true;
+ this.RbUser.Text = "User";
+ this.RbUser.UseVisualStyleBackColor = true;
+ this.RbUser.CheckedChanged += new System.EventHandler(this.RbUser_CheckedChanged);
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.RbUser;
+ this.layoutControlItem7.Location = new System.Drawing.Point(367, 0);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(123, 29);
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // FmxLevelConfig
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(500, 233);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Image = global::LFP_Manager.Properties.Resources.AMO_LOGO1;
+ this.Name = "FmxLevelConfig";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Control Level Config";
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FmxLevelConfig_FormClosing);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.LbCurrentLevel)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TePW.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private System.Windows.Forms.RadioButton RbTechnician;
+ private System.Windows.Forms.RadioButton RbEngineer;
+ private System.Windows.Forms.RadioButton RbMaster;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.SimpleLabelItem LbCurrentLevel;
+ private DevExpress.XtraEditors.TextEdit TePW;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraEditors.SimpleButton BtnClose;
+ private DevExpress.XtraEditors.SimpleButton BtnApply;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private System.Windows.Forms.Timer TmrDisplay;
+ private System.Windows.Forms.RadioButton RbUser;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxLevelConfig.cs b/LFP_Manager/Forms/FmxLevelConfig.cs
new file mode 100644
index 0000000..ba1bbe9
--- /dev/null
+++ b/LFP_Manager/Forms/FmxLevelConfig.cs
@@ -0,0 +1,184 @@
+using DevExpress.XtraEditors;
+using DevExpress.XtraPrinting.Native.LayoutAdjustment;
+using LFP_Manager.DataStructure;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Forms
+{
+ public partial class FmxLevelConfig : DevExpress.XtraEditors.XtraForm
+ {
+ #region VARIABLES
+
+ CommConfig Config;
+
+ #endregion
+
+ #region CONSTRUCTORS
+ public FmxLevelConfig()
+ {
+ InitializeComponent();
+ }
+
+ public FmxLevelConfig(CommConfig aConfig)
+ {
+ InitializeComponent();
+
+ Config = aConfig;
+
+ switch (Config.ControlLevel)
+ {
+ case 0: // User Level
+ RbUser.Checked = true;
+ break;
+ case 1: // Technician Level
+ RbTechnician.Checked = true;
+ break;
+ case 2: // Engineer Level
+ RbEngineer.Checked = true;
+ break;
+ case 3: // Master Level
+ RbMaster.Checked = true;
+ break;
+ default: // User Level
+ RbUser.Checked = true;
+ break;
+ }
+ DisplayStatus();
+ TmrDisplay.Start();
+ }
+ #endregion
+
+ #region BUTTON EVENT
+ private void BtnClose_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+ private void BtnApply_Click(object sender, EventArgs e)
+ {
+ string cPW = TePW.Text;
+
+ if (RbMaster.Checked)
+ {
+ if (Config.MasterPw == cPW)
+ {
+ Config.ControlLevel = 3;
+ MessageBox.Show("Complete change to Mastar Level", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else
+ {
+ MessageBox.Show("Wrong password for Master Level", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ else if (RbEngineer.Checked)
+ {
+ if (Config.EngineerPw == cPW)
+ {
+ Config.ControlLevel = 2;
+ MessageBox.Show("Complete change to Engineer Level", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else
+ {
+ MessageBox.Show("Wrong password for Engineer Level", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ else if (RbTechnician.Checked)
+ {
+ if (Config.TechnicianPw == cPW)
+ {
+ Config.ControlLevel = 1;
+ MessageBox.Show("Complete change to Technician Level", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else
+ {
+ MessageBox.Show("Wrong password for Technician Level", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ else if (RbUser.Checked)
+ {
+ Config.ControlLevel = 0;
+ }
+ }
+ #endregion
+
+ #region DISPLAY FUNCTION
+ private void DisplayStatus()
+ {
+ switch (Config.ControlLevel)
+ {
+ case 0: // User Level
+ LbCurrentLevel.Text = " Current Level: User Level";
+ break;
+ case 1: // Technician Level
+ LbCurrentLevel.Text = " Current Level: Technician Level";
+ break;
+ case 2: // Engineer Level
+ LbCurrentLevel.Text = " Current Level: Engineer Level";
+ break;
+ case 3: // Master Level
+ LbCurrentLevel.Text = " Current Level: Master Level";
+ break;
+ }
+ }
+ #endregion
+
+ #region FORM EVENT
+ private void FmxLevelConfig_FormClosing(object sender, FormClosingEventArgs e)
+ {
+ TmrDisplay.Stop();
+ }
+ #endregion
+
+ #region COMPONENT EVENT
+ private void RbMaster_CheckedChanged(object sender, EventArgs e)
+ {
+ if (RbMaster.Checked)
+ {
+ TePW.Enabled = true;
+ }
+ TePW.Text = "";
+ }
+
+ private void RbEngineer_CheckedChanged(object sender, EventArgs e)
+ {
+ if (RbEngineer.Checked)
+ {
+ TePW.Enabled = true;
+ }
+ TePW.Text = "";
+ }
+
+ private void RbTechnician_CheckedChanged(object sender, EventArgs e)
+ {
+ if (RbTechnician.Checked)
+ {
+ TePW.Enabled = true;
+ }
+ TePW.Text = "";
+ }
+
+ private void RbUser_CheckedChanged(object sender, EventArgs e)
+ {
+ if (RbUser.Checked)
+ {
+ TePW.Enabled = false;
+ }
+ TePW.Text = "";
+ }
+ #endregion
+
+ #region TIMER EVENT
+ private void TmrDisplay_Tick(object sender, EventArgs e)
+ {
+ DisplayStatus();
+ }
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxLevelConfig.resx b/LFP_Manager/Forms/FmxLevelConfig.resx
new file mode 100644
index 0000000..c9162a8
--- /dev/null
+++ b/LFP_Manager/Forms/FmxLevelConfig.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxPassword.Designer.cs b/LFP_Manager/Forms/FmxPassword.Designer.cs
new file mode 100644
index 0000000..a359b48
--- /dev/null
+++ b/LFP_Manager/Forms/FmxPassword.Designer.cs
@@ -0,0 +1,238 @@
+namespace LFP_Manager.Forms
+{
+ partial class FmxPassword
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.BtnCancel = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnOk = new DevExpress.XtraEditors.SimpleButton();
+ this.TeResetPW = new DevExpress.XtraEditors.TextEdit();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.emptySpaceItem3 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.emptySpaceItem4 = new DevExpress.XtraLayout.EmptySpaceItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.TeResetPW.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.BtnCancel);
+ this.layoutControl1.Controls.Add(this.BtnOk);
+ this.layoutControl1.Controls.Add(this.TeResetPW);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(804, 0, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(500, 206);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // BtnCancel
+ //
+ this.BtnCancel.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.BtnCancel.Appearance.Options.UseFont = true;
+ this.BtnCancel.Location = new System.Drawing.Point(246, 169);
+ this.BtnCancel.Name = "BtnCancel";
+ this.BtnCancel.Size = new System.Drawing.Size(251, 34);
+ this.BtnCancel.StyleController = this.layoutControl1;
+ this.BtnCancel.TabIndex = 6;
+ this.BtnCancel.Text = "CANCEL";
+ this.BtnCancel.Click += new System.EventHandler(this.BtnCancel_Click);
+ //
+ // BtnOk
+ //
+ this.BtnOk.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.BtnOk.Appearance.Options.UseFont = true;
+ this.BtnOk.Location = new System.Drawing.Point(3, 169);
+ this.BtnOk.Name = "BtnOk";
+ this.BtnOk.Size = new System.Drawing.Size(239, 34);
+ this.BtnOk.StyleController = this.layoutControl1;
+ this.BtnOk.TabIndex = 5;
+ this.BtnOk.Text = "OK";
+ this.BtnOk.Click += new System.EventHandler(this.BtnOk_Click);
+ //
+ // TeResetPW
+ //
+ this.TeResetPW.Location = new System.Drawing.Point(111, 71);
+ this.TeResetPW.Name = "TeResetPW";
+ this.TeResetPW.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 12F);
+ this.TeResetPW.Properties.Appearance.Options.UseFont = true;
+ this.TeResetPW.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeResetPW.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.TeResetPW.Properties.PasswordChar = '*';
+ this.TeResetPW.Size = new System.Drawing.Size(282, 26);
+ this.TeResetPW.StyleController = this.layoutControl1;
+ this.TeResetPW.TabIndex = 4;
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.emptySpaceItem1,
+ this.layoutControlItem2,
+ this.layoutControlItem3,
+ this.layoutControlItem1,
+ this.emptySpaceItem2,
+ this.emptySpaceItem3,
+ this.emptySpaceItem4});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(500, 206);
+ this.Root.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(394, 68);
+ this.emptySpaceItem1.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(104, 30);
+ this.emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.BtnOk;
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 166);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(42, 26);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(243, 38);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.BtnCancel;
+ this.layoutControlItem3.Location = new System.Drawing.Point(243, 166);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(56, 26);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(255, 38);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 12F);
+ this.layoutControlItem1.AppearanceItemCaption.Options.UseFont = true;
+ this.layoutControlItem1.Control = this.TeResetPW;
+ this.layoutControlItem1.Location = new System.Drawing.Point(108, 68);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(188, 30);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(286, 30);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.Text = "Password";
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // emptySpaceItem2
+ //
+ this.emptySpaceItem2.AllowHotTrack = false;
+ this.emptySpaceItem2.Location = new System.Drawing.Point(0, 0);
+ this.emptySpaceItem2.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem2.Name = "emptySpaceItem2";
+ this.emptySpaceItem2.Size = new System.Drawing.Size(498, 68);
+ this.emptySpaceItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // emptySpaceItem3
+ //
+ this.emptySpaceItem3.AllowHotTrack = false;
+ this.emptySpaceItem3.Location = new System.Drawing.Point(0, 98);
+ this.emptySpaceItem3.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem3.Name = "emptySpaceItem3";
+ this.emptySpaceItem3.Size = new System.Drawing.Size(498, 68);
+ this.emptySpaceItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem3.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // emptySpaceItem4
+ //
+ this.emptySpaceItem4.AllowHotTrack = false;
+ this.emptySpaceItem4.Location = new System.Drawing.Point(0, 68);
+ this.emptySpaceItem4.Name = "emptySpaceItem4";
+ this.emptySpaceItem4.Size = new System.Drawing.Size(108, 30);
+ this.emptySpaceItem4.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // FmxPassword
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(500, 206);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Image = global::LFP_Manager.Properties.Resources.AMO_LOGO1;
+ this.Name = "FmxPassword";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Reset Password";
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.TeResetPW.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraEditors.SimpleButton BtnOk;
+ private DevExpress.XtraEditors.TextEdit TeResetPW;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraEditors.SimpleButton BtnCancel;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem3;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem4;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxPassword.cs b/LFP_Manager/Forms/FmxPassword.cs
new file mode 100644
index 0000000..a637c6a
--- /dev/null
+++ b/LFP_Manager/Forms/FmxPassword.cs
@@ -0,0 +1,63 @@
+using DevExpress.Pdf.Native;
+using DevExpress.XtraEditors;
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Forms
+{
+ public partial class FmxPassword : DevExpress.XtraEditors.XtraForm
+ {
+ #region DELEGATE
+ public delegate void PasswordResut(int result);
+ #endregion
+
+ #region VARIABLES
+
+ private CommConfig Config;
+
+ public event PasswordResut OnResult = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+ public FmxPassword(CommConfig aConfig)
+ {
+ InitializeComponent();
+
+ Config = aConfig;
+ }
+ #endregion
+
+ #region BUTTON EVENT
+ private void BtnCancel_Click(object sender, EventArgs e)
+ {
+ this.DialogResult = DialogResult.Cancel;
+ Close();
+ }
+
+ private void BtnOk_Click(object sender, EventArgs e)
+ {
+ string resetPW = TeResetPW.Text;
+
+ if (resetPW == "Delta Electronics")
+ {
+ this.DialogResult = DialogResult.OK;
+ Close();
+ }
+ else
+ {
+ MessageBox.Show("Wrong Password - Try again", "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxPassword.resx b/LFP_Manager/Forms/FmxPassword.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Forms/FmxPassword.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxPasswordChange.Designer.cs b/LFP_Manager/Forms/FmxPasswordChange.Designer.cs
new file mode 100644
index 0000000..e772be8
--- /dev/null
+++ b/LFP_Manager/Forms/FmxPasswordChange.Designer.cs
@@ -0,0 +1,481 @@
+namespace LFP_Manager.Forms
+{
+ partial class FmxPasswordChange
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.BtnResetPW = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnCancel = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnOk = new DevExpress.XtraEditors.SimpleButton();
+ this.TeCurrentPW = new DevExpress.XtraEditors.TextEdit();
+ this.TeNewPW = new DevExpress.XtraEditors.TextEdit();
+ this.TeCornfirmPW = new DevExpress.XtraEditors.TextEdit();
+ this.RbMaster = new System.Windows.Forms.RadioButton();
+ this.RbEngineer = new System.Windows.Forms.RadioButton();
+ this.RbTechnician = new System.Windows.Forms.RadioButton();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.simpleLabelItem1 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.simpleLabelItem2 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.simpleLabelItem3 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.TeCurrentPW.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeNewPW.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeCornfirmPW.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.BtnResetPW);
+ this.layoutControl1.Controls.Add(this.BtnCancel);
+ this.layoutControl1.Controls.Add(this.BtnOk);
+ this.layoutControl1.Controls.Add(this.TeCurrentPW);
+ this.layoutControl1.Controls.Add(this.TeNewPW);
+ this.layoutControl1.Controls.Add(this.TeCornfirmPW);
+ this.layoutControl1.Controls.Add(this.RbMaster);
+ this.layoutControl1.Controls.Add(this.RbEngineer);
+ this.layoutControl1.Controls.Add(this.RbTechnician);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(804, 0, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(500, 265);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // BtnResetPW
+ //
+ this.BtnResetPW.Location = new System.Drawing.Point(412, 180);
+ this.BtnResetPW.Name = "BtnResetPW";
+ this.BtnResetPW.Size = new System.Drawing.Size(85, 39);
+ this.BtnResetPW.StyleController = this.layoutControl1;
+ this.BtnResetPW.TabIndex = 15;
+ this.BtnResetPW.Text = "Reset";
+ this.BtnResetPW.Click += new System.EventHandler(this.BtnResetPW_Click);
+ //
+ // BtnCancel
+ //
+ this.BtnCancel.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.BtnCancel.Appearance.Options.UseFont = true;
+ this.BtnCancel.Location = new System.Drawing.Point(252, 223);
+ this.BtnCancel.Name = "BtnCancel";
+ this.BtnCancel.Size = new System.Drawing.Size(245, 39);
+ this.BtnCancel.StyleController = this.layoutControl1;
+ this.BtnCancel.TabIndex = 6;
+ this.BtnCancel.Text = "CANCEL";
+ this.BtnCancel.Click += new System.EventHandler(this.BtnCancel_Click);
+ //
+ // BtnOk
+ //
+ this.BtnOk.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.BtnOk.Appearance.Options.UseFont = true;
+ this.BtnOk.Location = new System.Drawing.Point(3, 223);
+ this.BtnOk.Name = "BtnOk";
+ this.BtnOk.Size = new System.Drawing.Size(245, 39);
+ this.BtnOk.StyleController = this.layoutControl1;
+ this.BtnOk.TabIndex = 5;
+ this.BtnOk.Text = "Apply";
+ this.BtnOk.Click += new System.EventHandler(this.BtnOk_Click);
+ //
+ // TeCurrentPW
+ //
+ this.TeCurrentPW.Location = new System.Drawing.Point(133, 86);
+ this.TeCurrentPW.Name = "TeCurrentPW";
+ this.TeCurrentPW.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 12F);
+ this.TeCurrentPW.Properties.Appearance.Options.UseFont = true;
+ this.TeCurrentPW.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeCurrentPW.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.TeCurrentPW.Properties.PasswordChar = '*';
+ this.TeCurrentPW.Size = new System.Drawing.Size(360, 26);
+ this.TeCurrentPW.StyleController = this.layoutControl1;
+ this.TeCurrentPW.TabIndex = 4;
+ //
+ // TeNewPW
+ //
+ this.TeNewPW.Location = new System.Drawing.Point(133, 116);
+ this.TeNewPW.Name = "TeNewPW";
+ this.TeNewPW.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 12F);
+ this.TeNewPW.Properties.Appearance.Options.UseFont = true;
+ this.TeNewPW.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeNewPW.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.TeNewPW.Properties.PasswordChar = '*';
+ this.TeNewPW.Size = new System.Drawing.Size(360, 26);
+ this.TeNewPW.StyleController = this.layoutControl1;
+ this.TeNewPW.TabIndex = 4;
+ //
+ // TeCornfirmPW
+ //
+ this.TeCornfirmPW.Location = new System.Drawing.Point(133, 146);
+ this.TeCornfirmPW.Name = "TeCornfirmPW";
+ this.TeCornfirmPW.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 12F);
+ this.TeCornfirmPW.Properties.Appearance.Options.UseFont = true;
+ this.TeCornfirmPW.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeCornfirmPW.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.TeCornfirmPW.Properties.PasswordChar = '*';
+ this.TeCornfirmPW.Size = new System.Drawing.Size(360, 26);
+ this.TeCornfirmPW.StyleController = this.layoutControl1;
+ this.TeCornfirmPW.TabIndex = 4;
+ //
+ // RbMaster
+ //
+ this.RbMaster.Location = new System.Drawing.Point(7, 28);
+ this.RbMaster.Name = "RbMaster";
+ this.RbMaster.Size = new System.Drawing.Size(159, 25);
+ this.RbMaster.TabIndex = 8;
+ this.RbMaster.TabStop = true;
+ this.RbMaster.Text = "Master";
+ this.RbMaster.UseVisualStyleBackColor = true;
+ //
+ // RbEngineer
+ //
+ this.RbEngineer.Location = new System.Drawing.Point(170, 28);
+ this.RbEngineer.Name = "RbEngineer";
+ this.RbEngineer.Size = new System.Drawing.Size(159, 25);
+ this.RbEngineer.TabIndex = 9;
+ this.RbEngineer.TabStop = true;
+ this.RbEngineer.Text = "Engineer";
+ this.RbEngineer.UseVisualStyleBackColor = true;
+ //
+ // RbTechnician
+ //
+ this.RbTechnician.Location = new System.Drawing.Point(333, 28);
+ this.RbTechnician.Name = "RbTechnician";
+ this.RbTechnician.Size = new System.Drawing.Size(160, 25);
+ this.RbTechnician.TabIndex = 10;
+ this.RbTechnician.TabStop = true;
+ this.RbTechnician.Text = "Technician";
+ this.RbTechnician.UseVisualStyleBackColor = true;
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.emptySpaceItem1,
+ this.layoutControlItem2,
+ this.layoutControlItem3,
+ this.layoutControlGroup2,
+ this.layoutControlGroup1,
+ this.layoutControlItem10});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(500, 265);
+ this.Root.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 177);
+ this.emptySpaceItem1.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(409, 43);
+ this.emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.BtnOk;
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 220);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(27, 26);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(249, 43);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.BtnCancel;
+ this.layoutControlItem3.Location = new System.Drawing.Point(249, 220);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(56, 26);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(249, 43);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.CustomizationFormText = "Control Level";
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem6,
+ this.layoutControlItem7,
+ this.layoutControlItem8});
+ this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup2.Name = "layoutControlGroup2";
+ this.layoutControlGroup2.OptionsItemText.TextToControlDistance = 3;
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(498, 58);
+ this.layoutControlGroup2.Text = "Control Level";
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.RbMaster;
+ this.layoutControlItem6.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem6.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem6.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem6.MaxSize = new System.Drawing.Size(0, 29);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(24, 29);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(163, 29);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.Text = "layoutControlItem2";
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.RbEngineer;
+ this.layoutControlItem7.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem7.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem7.Location = new System.Drawing.Point(163, 0);
+ this.layoutControlItem7.MinSize = new System.Drawing.Size(24, 29);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(163, 29);
+ this.layoutControlItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem7.Text = "layoutControlItem1";
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.RbTechnician;
+ this.layoutControlItem8.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem8.CustomizationFormText = "layoutControlItem3";
+ this.layoutControlItem8.Location = new System.Drawing.Point(326, 0);
+ this.layoutControlItem8.MinSize = new System.Drawing.Size(24, 29);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(164, 29);
+ this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem8.Text = "layoutControlItem3";
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem8.TextVisible = false;
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.simpleLabelItem1,
+ this.layoutControlItem1,
+ this.simpleLabelItem2,
+ this.layoutControlItem4,
+ this.simpleLabelItem3,
+ this.layoutControlItem5});
+ this.layoutControlGroup1.Location = new System.Drawing.Point(0, 58);
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(498, 119);
+ this.layoutControlGroup1.Text = "Password";
+ //
+ // simpleLabelItem1
+ //
+ this.simpleLabelItem1.AllowHotTrack = false;
+ this.simpleLabelItem1.Location = new System.Drawing.Point(0, 0);
+ this.simpleLabelItem1.MaxSize = new System.Drawing.Size(0, 30);
+ this.simpleLabelItem1.MinSize = new System.Drawing.Size(126, 30);
+ this.simpleLabelItem1.Name = "simpleLabelItem1";
+ this.simpleLabelItem1.Size = new System.Drawing.Size(126, 30);
+ this.simpleLabelItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem1.Text = " Current Password";
+ this.simpleLabelItem1.TextSize = new System.Drawing.Size(104, 14);
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 12F);
+ this.layoutControlItem1.AppearanceItemCaption.Options.UseFont = true;
+ this.layoutControlItem1.Control = this.TeCurrentPW;
+ this.layoutControlItem1.Location = new System.Drawing.Point(126, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(188, 30);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(364, 30);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.Text = "Password";
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // simpleLabelItem2
+ //
+ this.simpleLabelItem2.AllowHotTrack = false;
+ this.simpleLabelItem2.Location = new System.Drawing.Point(0, 30);
+ this.simpleLabelItem2.MaxSize = new System.Drawing.Size(0, 30);
+ this.simpleLabelItem2.MinSize = new System.Drawing.Size(126, 30);
+ this.simpleLabelItem2.Name = "simpleLabelItem2";
+ this.simpleLabelItem2.Size = new System.Drawing.Size(126, 30);
+ this.simpleLabelItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem2.Text = " New Password";
+ this.simpleLabelItem2.TextSize = new System.Drawing.Size(104, 14);
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 12F);
+ this.layoutControlItem4.AppearanceItemCaption.Options.UseFont = true;
+ this.layoutControlItem4.Control = this.TeNewPW;
+ this.layoutControlItem4.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem4.CustomizationFormText = "Password";
+ this.layoutControlItem4.Location = new System.Drawing.Point(126, 30);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(188, 30);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(364, 30);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.Text = "Password";
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // simpleLabelItem3
+ //
+ this.simpleLabelItem3.AllowHotTrack = false;
+ this.simpleLabelItem3.Location = new System.Drawing.Point(0, 60);
+ this.simpleLabelItem3.MaxSize = new System.Drawing.Size(0, 30);
+ this.simpleLabelItem3.MinSize = new System.Drawing.Size(126, 30);
+ this.simpleLabelItem3.Name = "simpleLabelItem3";
+ this.simpleLabelItem3.Size = new System.Drawing.Size(126, 30);
+ this.simpleLabelItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem3.Text = " Cornfirm Password";
+ this.simpleLabelItem3.TextSize = new System.Drawing.Size(104, 14);
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 12F);
+ this.layoutControlItem5.AppearanceItemCaption.Options.UseFont = true;
+ this.layoutControlItem5.Control = this.TeCornfirmPW;
+ this.layoutControlItem5.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem5.CustomizationFormText = "Password";
+ this.layoutControlItem5.Location = new System.Drawing.Point(126, 60);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(188, 30);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(364, 30);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.Text = "Password";
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // layoutControlItem10
+ //
+ this.layoutControlItem10.Control = this.BtnResetPW;
+ this.layoutControlItem10.Location = new System.Drawing.Point(409, 177);
+ this.layoutControlItem10.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem10.Name = "layoutControlItem10";
+ this.layoutControlItem10.Size = new System.Drawing.Size(89, 43);
+ this.layoutControlItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem10.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem10.TextVisible = false;
+ //
+ // FmxPasswordChange
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(500, 265);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Image = global::LFP_Manager.Properties.Resources.AMO_LOGO1;
+ this.Name = "FmxPasswordChange";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Change Password";
+ this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FmxPassword_FormClosed);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.TeCurrentPW.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeNewPW.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeCornfirmPW.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraEditors.SimpleButton BtnOk;
+ private DevExpress.XtraEditors.TextEdit TeCurrentPW;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraEditors.SimpleButton BtnCancel;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraEditors.TextEdit TeNewPW;
+ private DevExpress.XtraEditors.TextEdit TeCornfirmPW;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem1;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem2;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem3;
+ private System.Windows.Forms.RadioButton RbMaster;
+ private System.Windows.Forms.RadioButton RbEngineer;
+ private System.Windows.Forms.RadioButton RbTechnician;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.SimpleButton BtnResetPW;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxPasswordChange.cs b/LFP_Manager/Forms/FmxPasswordChange.cs
new file mode 100644
index 0000000..4d29124
--- /dev/null
+++ b/LFP_Manager/Forms/FmxPasswordChange.cs
@@ -0,0 +1,149 @@
+using DevExpress.Pdf.Native;
+using DevExpress.XtraEditors;
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using static DevExpress.XtraPrinting.Export.Pdf.PdfImageCache;
+
+namespace LFP_Manager.Forms
+{
+ public partial class FmxPasswordChange : DevExpress.XtraEditors.XtraForm
+ {
+ #region DELEGATE
+ public delegate void PasswordResut(int result);
+ #endregion
+
+ #region VARIABLES
+ private CommConfig Config;
+ private int result = -1;
+
+ public event PasswordResut OnResult = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+ public FmxPasswordChange(CommConfig aConfig)
+ {
+ InitializeComponent();
+
+ Config = aConfig;
+ }
+ #endregion
+
+ #region FORM EVENT
+ private void FmxPassword_FormClosed(object sender, FormClosedEventArgs e)
+ {
+ OnResult?.Invoke(result);
+ }
+ #endregion
+
+ #region BUTTON EVENT
+ private void BtnCancel_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+
+ private void BtnOk_Click(object sender, EventArgs e)
+ {
+ string sPW;
+ string currPW, newPW, cornfirmPW;
+
+ currPW = TeCurrentPW.Text;
+ newPW = TeNewPW.Text;
+ cornfirmPW = TeCornfirmPW.Text;
+
+ if (newPW.Length < 4)
+ {
+ MessageBox.Show("Too short new password (Min. Length 4)", "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ if (RbMaster.Checked)
+ {
+ sPW = Config.MasterPw;
+ }
+ else if (RbEngineer.Checked)
+ {
+ sPW = Config.EngineerPw;
+ }
+ else if (RbTechnician.Checked)
+ {
+ sPW = Config.TechnicianPw;
+ }
+ else
+ {
+ sPW = "";
+ }
+
+ if (sPW != currPW)
+ {
+ MessageBox.Show("The current password is incorrect.", "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ if (newPW != cornfirmPW)
+ {
+ MessageBox.Show("The new password and its confirmation do not match.", "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ if (currPW == newPW)
+ {
+ MessageBox.Show("Your new password cannot be the same as your current password.", "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+
+ if (RbMaster.Checked)
+ {
+ Config.MasterPw = newPW;
+ }
+ else if (RbEngineer.Checked)
+ {
+ Config.EngineerPw = newPW;
+ }
+ else if (RbTechnician.Checked)
+ {
+ Config.TechnicianPw = newPW;
+ }
+ else
+ {
+ return;
+ }
+ csIniControlFunction.IniSave(Application.ExecutablePath, Config);
+
+ MessageBox.Show("Password changed successfully.", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+
+ private void BtnResetPW_Click(object sender, EventArgs e)
+ {
+ foreach (Form frm in Application.OpenForms)
+ {
+ if (frm.Name == "FmxPassword")
+ {
+ frm.Activate();
+ return;
+ }
+ }
+ FmxPassword PasswordForm = new FmxPassword(Config);
+ if (PasswordForm.ShowDialog() == DialogResult.OK)
+ {
+ Config.MasterPw = "8003";
+ Config.EngineerPw = "7003";
+ Config.TechnicianPw = "6003";
+ csIniControlFunction.IniSave(Application.ExecutablePath, Config);
+
+ MessageBox.Show("Password reset successful.", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else
+ {
+
+ }
+ }
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxPasswordChange.resx b/LFP_Manager/Forms/FmxPasswordChange.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Forms/FmxPasswordChange.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmCalibration.Designer.cs b/LFP_Manager/Forms/fmCalibration.Designer.cs
new file mode 100644
index 0000000..5c8ea48
--- /dev/null
+++ b/LFP_Manager/Forms/fmCalibration.Designer.cs
@@ -0,0 +1,152 @@
+namespace LFP_Manager.Forms
+{
+ partial class fmxCalibration
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxCalibration));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.ucCalibration1 = new LFP_Manager.Controls.ucCalibration();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.btnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.tmrDisplay = new System.Windows.Forms.Timer(this.components);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.btnClose);
+ this.layoutControl1.Controls.Add(this.ucCalibration1);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(668, 306, 250, 350);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(612, 485);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1,
+ this.layoutControlItem2});
+ this.layoutControlGroup1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Size = new System.Drawing.Size(612, 485);
+ this.layoutControlGroup1.Text = "layoutControlGroup1";
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // ucCalibration1
+ //
+ this.ucCalibration1.Location = new System.Drawing.Point(12, 12);
+ this.ucCalibration1.Name = "ucCalibration1";
+ this.ucCalibration1.Size = new System.Drawing.Size(588, 423);
+ this.ucCalibration1.TabIndex = 4;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.ucCalibration1;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(104, 24);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(592, 427);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.Text = "layoutControlItem1";
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextToControlDistance = 0;
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // btnClose
+ //
+ this.btnClose.Location = new System.Drawing.Point(12, 439);
+ this.btnClose.Name = "btnClose";
+ this.btnClose.Size = new System.Drawing.Size(588, 34);
+ this.btnClose.StyleController = this.layoutControl1;
+ this.btnClose.TabIndex = 5;
+ this.btnClose.Text = "Close";
+ this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.btnClose;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 427);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(592, 38);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.Text = "layoutControlItem2";
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextToControlDistance = 0;
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // tmrDisplay
+ //
+ this.tmrDisplay.Interval = 500;
+ this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick);
+ //
+ // fmxCalibration
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(612, 485);
+ this.Controls.Add(this.layoutControl1);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "fmxCalibration";
+ this.Text = "Calibration";
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.SimpleButton btnClose;
+ private Controls.ucCalibration ucCalibration1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private System.Windows.Forms.Timer tmrDisplay;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmCalibration.cs b/LFP_Manager/Forms/fmCalibration.cs
new file mode 100644
index 0000000..a829f6e
--- /dev/null
+++ b/LFP_Manager/Forms/fmCalibration.cs
@@ -0,0 +1,79 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Controls;
+
+namespace LFP_Manager.Forms
+{
+ public delegate void CalibUpdateEvent(object sendor);
+ public delegate void CalibCmdEvent(int sId, int mode, int flag, DeviceParamData aParam, DeviceCalibration aCalib);
+
+ public partial class fmxCalibration : DevExpress.XtraEditors.XtraForm
+ {
+ #region VARIABLES
+
+ int SystemId = 0;
+ DeviceParamData Param;
+ DeviceCalibration Calib;
+
+ public event CalibUpdateEvent OnUpdate = null;
+ public event CalibCmdEvent OnCommand = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public fmxCalibration()
+ {
+ InitializeComponent();
+ }
+
+ public fmxCalibration(int sId, DeviceCalibration aCalib)
+ {
+ InitializeComponent();
+
+ SystemId = sId;
+ Calib = aCalib;
+
+ tmrDisplay.Enabled = true;
+ }
+
+ #endregion
+
+ private void btnClose_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+
+ #region TIMER EVENT
+
+ private void tmrDisplay_Tick(object sender, EventArgs e)
+ {
+ if (OnUpdate != null)
+ {
+ OnUpdate(this);
+ }
+ }
+
+ #endregion
+
+ #region PUBLIC FUCTIONS
+
+ public void UpdateData(DeviceParamData aParam, DeviceCalibration aCalib)
+ {
+ Param = aParam;
+ Calib = aCalib;
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmCalibration.resx b/LFP_Manager/Forms/fmCalibration.resx
new file mode 100644
index 0000000..53cd17e
--- /dev/null
+++ b/LFP_Manager/Forms/fmCalibration.resx
@@ -0,0 +1,4574 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+
+ AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA
+ GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/
+ ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7/////////////////////
+ ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff/////////
+ ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+
+ /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7/////
+ ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc
+ x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7/////////////////////////////
+ ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt
+ e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP
+ SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7/////////
+ ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z
+ WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS
+ Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8
+ +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+
+ /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+
+ /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO
+ SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz
+ 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o
+ 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9
+ /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE
+ oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG
+ PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7/////
+ ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH
+ PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t
+ 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/
+ ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/
+ ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7/////////////////////////////
+ ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+
+ /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ
+ TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7/////////////////
+ ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ
+ TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+
+ /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7/////
+ ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP
+ SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7/////////////////////////////////////////
+ ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/
+ ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7/////////////////////////////
+ ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/
+ ///+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////+/v7////////+/v3////////////////////////+/v3////////+/v7/////////////////
+ ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7/////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ /////////v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v7////////+/v7/////////////////////////////////////
+ ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7/////////////////////
+ ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7
+ +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9
+ /Pz+/v7/////////////////////////////////////////////////////////////////////////
+ ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM
+ RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7/////////////////////////////////////
+ ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL
+ QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+
+ /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP
+ SgCOSQCPTAKFOwDVvaT////9/Pv+/v7/////////////////////////////////////////////////
+ ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8
+ +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7/////////
+ /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO
+ SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF
+ OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+
+ ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/
+ //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7/////////////////////////
+ ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/
+ mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79
+ /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN
+ RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ
+ TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7/////
+ ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7/////
+ ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+
+ /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ
+ TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP
+ SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH
+ PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/
+ ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5
+ 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+
+ /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ
+ QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE
+ oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/
+ ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7/////////////////////////
+ ///////////////////////////////////////////////////////+/v7+////////////////////
+ ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+
+ /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9
+ /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP
+ SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL
+ RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7/////////////////////////////////
+ ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/
+ ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7/////////
+ ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP
+ SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI
+ PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/
+ ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x
+ glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7/////////////////////////////
+ ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM
+ RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+
+ /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/
+ ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP
+ SgCOSgGLRQGTURDz7ef+/v39/f3+/v7/////////////////////////////////////////////////
+ ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+
+ /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7/////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN
+ RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9
+ /fz9/f3+/v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO
+ SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7/////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO
+ SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS
+ UA/y6+X+/v39/fz+/v7+/v7/////////////////////////////////////////////////////////
+ ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP
+ SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7/////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+
+ /v7/////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO
+ SQCOSQGJQQDi0cD////9/Pv+/v7/////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J
+ QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7/////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39
+ /fz+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz
+ hFazhFayhFazhVete1TWvqb////9/fz+/v7/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+
+ /f3+/f3/////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v7+////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////v7+
+ /f39////////////////////////////////////////////////////////////////////////////
+ ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39
+ /fz8/v79/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA
+ nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1////
+ x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV
+ i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC
+ jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC
+ hz8Ap3I//fz7/fz8/v79/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7
+ /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8
+ +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p
+ /v39/f38/v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+
+ ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb
+ 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+//7+/f39
+ /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7////
+ 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+
+ /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA
+ j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB
+ j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB
+ i0UAlVYZ8+3m/f79/f38/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+////////////////
+ /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39
+ /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+
+ sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+
+ /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+////////
+ /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+
+ /f39/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO
+ /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39
+ 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39
+ /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+////////////////////////////
+ /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+////
+ /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A
+ kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ jkoCikIC4tHA/////Pv7/v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC
+ hz4A1r6m/////Pz7/v7+/v7+/////v7+////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+
+ /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+////////////////////
+ /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM
+ /////Pv6/v7+/v7+/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA
+ j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+
+ /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7
+ /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq////
+ /Pv6/v7+/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A
+ j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA
+ kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA
+ j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6
+ /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+////////
+ /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+
+ /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA
+ xaJ//////Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU
+ /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA
+ j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+////////////
+ 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+
+ /////v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39
+ /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/
+ /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6
+ ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+
+ /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC
+ kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB
+ kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39////
+ /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA
+ hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA
+ iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A
+ j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU
+ z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+////////
+ /v7+/////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7//v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn
+ +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3
+ +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8
+ /fz8/v7+/////v7+/////v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v///v7+/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT
+ z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7
+ ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A
+ hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A
+ fS0AtIdb/f38/Pz8///+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D
+ kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL
+ jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA
+ jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3
+ iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA
+ jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA
+ jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK
+ 6t7S/v7+/fz8/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs////
+ /Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7
+ /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38
+ /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fz8
+ /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+////////////////////////////////////
+ /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+
+ /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA
+ jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A
+ pnA8/Pv6/fz7/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq
+ iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+
+ /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+////////////
+ /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+
+ //7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A
+ 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES
+ jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+////////////////
+ /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6
+ /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7
+ /v79/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v39
+ /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8
+ +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+
+ /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ
+ hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ
+ 8+3m/f39/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+
+ /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA
+ jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA
+ u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA
+ j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA
+ jkkCikQE49PC/v7//fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8
+ /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+
+ /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7////
+ t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA
+ jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU
+ hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD
+ /////fz8//7//v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA
+ oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC
+ hj0Az7SX/////fz7//7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+//7+
+ /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH
+ jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA
+ jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT////
+ /Pz8/v7//v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA
+ t4tf/////fz7/v7+/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs
+ mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6
+ /v7+/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v7+
+ /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx
+ +/n3/fz8/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+
+ rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA
+ jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW
+ k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV
+ kU8TmVoj8ejg/v39/fz7/v7//f39/v//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off
+ 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v////7+/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v39/v7+
+ ///+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/v//////
+ /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v79/////////v7+/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v79/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////9/Lt9/Pu
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2svnmMrzrGR/////fz7////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ
+ /v39/fz8/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h
+ /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0////
+ 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC
+ j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ jUgBlFIO7uTa/////f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB
+ jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+
+ /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38////////////////////
+ /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z
+ iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+
+ sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG////
+ /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ hz4Ar35J/v39/fz8/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+////////
+ /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38////////////////////////////////
+ /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+////////////////////////////////////////////
+ /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA
+ /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW
+ k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+
+ /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+////////////////////
+ /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iEAA176j/////fz7////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39////////////////////////////////////////////
+ ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38
+ /fz8/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEA1buf/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+////////////
+ /////////////////////////////////////////////////////////////////////fz7////yKaB
+ hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v///f38////sH9K
+ hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oBi0QAnmIj9vHs/v39/v39////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA
+ nWAf9vHs/v7+/v79////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo////
+ /fz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v///f38////
+ 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/v79+/n3omor
+ ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm
+ +PTw/v39/f39////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sBjEUAmVwb9e/p/v7+/f38////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A
+ vpVq/////fz7/v/+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8AyKaB/////fz7/v///v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39
+ //7/////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC
+ jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsCiD8Auo9h/////fz8/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE
+ iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB
+ 4tC+/////f38/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjUcBk1EN7+Xb/////f39/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj
+ n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f38////u5Jlhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkBjUgE4M66/////fz7/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR
+ 7+bd/v7+/f39////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv
+ +/n4/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0
+ rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6
+ ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC
+ hz4AtolZ/////fz8/v3+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA
+ j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ j0sBikIApGww+vj1/v39/f39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ
+ j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M
+ /////Pz7/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkCjkkG4c+7/////fz7/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+///+/v39
+ /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d////
+ /fz7/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/f38/f38
+ 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A
+ jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sBiD8AyKiE/////fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oBiUEApW4z+vj1/v39/v39////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ
+ /v7+/f38/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4
+ 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD
+ 49PB/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/Pz7////
+ 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6////
+ /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A
+ j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC
+ iUEAqHQ7+/j2/fz8/v39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jUgBkk8K7ODV/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL////
+ /f38/v7+///+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6////////
+ ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A
+ ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38
+ /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBiUEA1Lqd/////fv6////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38
+ sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////v7+/v39
+ /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq
+ 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38
+ /v39/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjUgBkU4J6NrM/////fz8////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA
+ jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEArnxG/v7+/f38/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO
+ 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i////
+ /Pz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA
+ hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr
+ vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g
+ 4M24/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY
+ llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+////////////////////////////
+ /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsCiUEArXpD/v7//f39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB
+ ikMA1bqf/////fz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39
+ /f38/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39
+ /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/////////v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI
+ iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8////
+ /fz8////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA
+ mVsZ8+zl/v38/fz8////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7
+ /v7+//7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz7/v7+
+ 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf
+ 9vHs/v79/fz8////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z
+ iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAi0YAl1gT8+3l/v7+/f39////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA
+ upFj/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC
+ hz4AwZty/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////f39
+ /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC
+ jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ
+ hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsChz4At4ta/////fz8/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjUgCkEwL6dzO/////fz7////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD
+ 38y3/////fz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v/+/f39/v79
+ +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////fz8
+ /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A
+ kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK
+ 5tbG/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBjUcB4M25/////f38/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos
+ +PTw/fz8/f39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v//////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA
+ kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB
+ iUAAq3dA/Pr4/fz7/f39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v///fz7
+ ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA
+ j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0oBikMAomgq+vf0/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////Pz7////4M24
+ i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiUEA0rea/////fz7/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7
+ /v38/v39/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////f38/v79
+ +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/f38
+ ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ kEwChz4AxaJ8/////fz7/v7+////////////////////////////////////////////////////////
+ ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA
+ 07mb/////Pz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU
+ /v7+/Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+////
+ //////////////////////////////////////////////////////////////////////////////7/
+ /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7/////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+////////////////////////////
+ /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jEQAm10b9O/p/v7+/f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+////////////////////////////////////////
+ /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7
+ /v7//v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jUgAklAK6dzO/////f38/v//////////////////////////////////////////////////////////
+ /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6
+ /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng
+ lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+
+ /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiD8Au5Jl/////fz8/v7+//7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+////////////////////
+ /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj
+ /v39/fz8/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+////////////////////////////
+ /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8
+ ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb////
+ /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A
+ upFj/////fz8/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+
+ /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7////////////////////////
+ /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf
+ llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA
+ kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkBjUcA49LA/////f38/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79
+ /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3
+ qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8////0baX
+ iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD
+ /////fz8/v//////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA
+ nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA
+ qHI4/Pv5/v39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+
+ iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ kEsChz8Az7KS/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7
+ /v39/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v39
+ /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////fz8////59jIj0oD
+ jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ
+ /////fz8////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB
+ llYW7+Xb/v7+/f38/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0wChz8AuIxc/v7+/fz7/v39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+
+ /v39/v//////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fv6
+ ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAjkkBjEYA4M24/////fz8/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa
+ /////f38////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v39/fz7
+ 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB
+ jUcE3sq2/////Pz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oBikMAomgq+fXy/v39/f39////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/fz7////
+ 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq
+ +vf1/f38/f39//7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39
+ tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS
+ yqqM38u2/////v79/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/v79////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v79/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxAntiTheft.Designer.cs b/LFP_Manager/Forms/fmxAntiTheft.Designer.cs
new file mode 100644
index 0000000..c7f2cd4
--- /dev/null
+++ b/LFP_Manager/Forms/fmxAntiTheft.Designer.cs
@@ -0,0 +1,161 @@
+namespace LFP_Manager.Forms
+{
+ partial class fmxAntiTheft
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxAntiTheft));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.tmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.AntiTheftCmd = new LFP_Manager.Controls.UcAntiTheftControl();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.AntiTheftCmd);
+ this.layoutControl1.Controls.Add(this.btnClose);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1265, 291, 250, 350);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(858, 226);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // btnClose
+ //
+ this.btnClose.Location = new System.Drawing.Point(612, 200);
+ this.btnClose.Name = "btnClose";
+ this.btnClose.Size = new System.Drawing.Size(242, 22);
+ this.btnClose.StyleController = this.layoutControl1;
+ this.btnClose.TabIndex = 5;
+ this.btnClose.Text = "Close";
+ this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem2,
+ this.emptySpaceItem1,
+ this.layoutControlItem1});
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(858, 226);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.btnClose;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(608, 196);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(246, 26);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1";
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 196);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(608, 26);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // tmrDisplay
+ //
+ this.tmrDisplay.Interval = 500;
+ this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick);
+ //
+ // AntiTheftCmd
+ //
+ this.AntiTheftCmd.Location = new System.Drawing.Point(4, 4);
+ this.AntiTheftCmd.Name = "AntiTheftCmd";
+ this.AntiTheftCmd.Size = new System.Drawing.Size(850, 192);
+ this.AntiTheftCmd.TabIndex = 6;
+ this.AntiTheftCmd.Load += new System.EventHandler(this.AntiTheftCmd_Load);
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.AntiTheftCmd;
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(854, 196);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // fmxAntiTheft
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(858, 226);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxAntiTheft.IconOptions.Icon")));
+ this.Name = "fmxAntiTheft";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Anti-Theft";
+ this.TopMost = true;
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.SimpleButton btnClose;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private System.Windows.Forms.Timer tmrDisplay;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private Controls.UcAntiTheftControl AntiTheftCmd;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxAntiTheft.cs b/LFP_Manager/Forms/fmxAntiTheft.cs
new file mode 100644
index 0000000..a115b70
--- /dev/null
+++ b/LFP_Manager/Forms/fmxAntiTheft.cs
@@ -0,0 +1,127 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Controls;
+using LFP_Manager.Threads;
+
+namespace LFP_Manager.Forms
+{
+ public delegate void AntiTheftUpdateEvent(object sendor);
+ public delegate void AntiTheftCmdEvent(int sId, int mode, int index, int flag,
+ ref CsDeviceData.DeviceModuleData.DeviceParamData aParam,
+ ref CsDeviceData.DeviceModuleData.DeviceCalibration aCalib);
+
+ public partial class fmxAntiTheft : DevExpress.XtraEditors.XtraForm
+ {
+ #region VARIABLES
+
+ int SystemId = 0;
+ CsDeviceData.DeviceModuleData SystemData;
+ CsDeviceData.DeviceModuleData.DeviceParamData Param;
+ CsDeviceData.DeviceModuleData.DeviceCalibration Calib;
+
+ public event AntiTheftUpdateEvent OnUpdate = null;
+ public event AntiTheftCmdEvent OnCommand = null;
+ public event SendDataUartEvent OnSendUartData = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public fmxAntiTheft(int sId, CsDeviceData.DeviceModuleData.DeviceCalibration aCalib)
+ {
+ InitializeComponent();
+
+ InitComponent();
+
+ SystemId = sId;
+ Calib = aCalib;
+
+ AntiTheftCmd.UpdateData(SystemId, Calib);
+ AntiTheftCmd.OnSendUartData += SetWriteData;
+
+ tmrDisplay.Enabled = true;
+ }
+
+ public void InitComponent()
+ {
+ // Cell Voltage Calibration
+ AntiTheftCmd.OnCommand += OnCmdEvent;
+ }
+
+ #endregion
+
+ #region COMMAND EVENT
+ private void SetWriteData(ushort WriteAddr, byte[] WriteData, bool RelyFlag, int type)
+ {
+ OnSendUartData?.Invoke(WriteAddr, WriteData, RelyFlag, type);
+ }
+
+ private void OnCmdEvent(int mode, int index, int flag,
+ ref CsDeviceData.DeviceModuleData.DeviceParamData aParam,
+ ref CsDeviceData.DeviceModuleData.DeviceCalibration aCalib)
+ {
+ OnCommand?.Invoke(SystemId, mode, index, flag, ref aParam, ref aCalib);
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+ private void btnClose_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+ #endregion
+
+ #region TIMER EVENT
+
+ private void tmrDisplay_Tick(object sender, EventArgs e)
+ {
+
+ DisplayValue();
+ if (OnUpdate != null)
+ {
+ OnUpdate(this);
+ }
+ }
+
+ #endregion
+
+ #region DISPLAY DATA
+
+ private void DisplayValue()
+ {
+ // Cell Voltage Parameter
+ AntiTheftCmd.UpdateData(SystemId, Calib);
+ }
+
+ #endregion
+
+ #region PUBLIC FUCTIONS
+
+ public void UpdateData(CsDeviceData.DeviceModuleData.DeviceParamData aParam,
+ CsDeviceData.DeviceModuleData.DeviceCalibration aCalib,
+ CsDeviceData.DeviceModuleData mData)
+ {
+ SystemData = mData;
+ Param = aParam;
+ Calib = aCalib;
+ }
+
+ #endregion
+
+ private void AntiTheftCmd_Load(object sender, EventArgs e)
+ {
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxAntiTheft.resx b/LFP_Manager/Forms/fmxAntiTheft.resx
new file mode 100644
index 0000000..3e6bd1e
--- /dev/null
+++ b/LFP_Manager/Forms/fmxAntiTheft.resx
@@ -0,0 +1,4574 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+
+ AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA
+ GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/
+ ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7/////////////////////
+ ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff/////////
+ ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+
+ /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7/////
+ ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc
+ x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7/////////////////////////////
+ ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt
+ e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP
+ SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7/////////
+ ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z
+ WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS
+ Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8
+ +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+
+ /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+
+ /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO
+ SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz
+ 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o
+ 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9
+ /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE
+ oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG
+ PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7/////
+ ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH
+ PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t
+ 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/
+ ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/
+ ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7/////////////////////////////
+ ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+
+ /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ
+ TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7/////////////////
+ ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ
+ TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+
+ /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7/////
+ ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP
+ SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7/////////////////////////////////////////
+ ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/
+ ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7/////////////////////////////
+ ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/
+ ///+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////+/v7////////+/v3////////////////////////+/v3////////+/v7/////////////////
+ ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7/////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ /////////v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v7////////+/v7/////////////////////////////////////
+ ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7/////////////////////
+ ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7
+ +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9
+ /Pz+/v7/////////////////////////////////////////////////////////////////////////
+ ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM
+ RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7/////////////////////////////////////
+ ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL
+ QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+
+ /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP
+ SgCOSQCPTAKFOwDVvaT////9/Pv+/v7/////////////////////////////////////////////////
+ ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8
+ +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7/////////
+ /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO
+ SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF
+ OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+
+ ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/
+ //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7/////////////////////////
+ ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/
+ mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79
+ /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN
+ RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ
+ TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7/////
+ ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7/////
+ ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+
+ /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ
+ TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP
+ SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH
+ PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/
+ ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5
+ 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+
+ /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ
+ QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE
+ oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/
+ ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7/////////////////////////
+ ///////////////////////////////////////////////////////+/v7+////////////////////
+ ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+
+ /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9
+ /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP
+ SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL
+ RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7/////////////////////////////////
+ ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/
+ ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7/////////
+ ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP
+ SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI
+ PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/
+ ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x
+ glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7/////////////////////////////
+ ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM
+ RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+
+ /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/
+ ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP
+ SgCOSgGLRQGTURDz7ef+/v39/f3+/v7/////////////////////////////////////////////////
+ ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+
+ /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7/////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN
+ RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9
+ /fz9/f3+/v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO
+ SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7/////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO
+ SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS
+ UA/y6+X+/v39/fz+/v7+/v7/////////////////////////////////////////////////////////
+ ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP
+ SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7/////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+
+ /v7/////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO
+ SQCOSQGJQQDi0cD////9/Pv+/v7/////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J
+ QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7/////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39
+ /fz+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz
+ hFazhFayhFazhVete1TWvqb////9/fz+/v7/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+
+ /f3+/f3/////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v7+////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////v7+
+ /f39////////////////////////////////////////////////////////////////////////////
+ ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39
+ /fz8/v79/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA
+ nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1////
+ x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV
+ i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC
+ jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC
+ hz8Ap3I//fz7/fz8/v79/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7
+ /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8
+ +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p
+ /v39/f38/v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+
+ ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb
+ 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+//7+/f39
+ /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7////
+ 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+
+ /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA
+ j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB
+ j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB
+ i0UAlVYZ8+3m/f79/f38/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+////////////////
+ /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39
+ /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+
+ sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+
+ /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+////////
+ /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+
+ /f39/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO
+ /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39
+ 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39
+ /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+////////////////////////////
+ /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+////
+ /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A
+ kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ jkoCikIC4tHA/////Pv7/v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC
+ hz4A1r6m/////Pz7/v7+/v7+/////v7+////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+
+ /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+////////////////////
+ /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM
+ /////Pv6/v7+/v7+/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA
+ j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+
+ /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7
+ /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq////
+ /Pv6/v7+/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A
+ j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA
+ kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA
+ j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6
+ /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+////////
+ /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+
+ /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA
+ xaJ//////Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU
+ /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA
+ j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+////////////
+ 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+
+ /////v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39
+ /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/
+ /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6
+ ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+
+ /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC
+ kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB
+ kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39////
+ /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA
+ hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA
+ iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A
+ j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU
+ z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+////////
+ /v7+/////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7//v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn
+ +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3
+ +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8
+ /fz8/v7+/////v7+/////v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v///v7+/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT
+ z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7
+ ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A
+ hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A
+ fS0AtIdb/f38/Pz8///+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D
+ kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL
+ jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA
+ jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3
+ iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA
+ jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA
+ jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK
+ 6t7S/v7+/fz8/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs////
+ /Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7
+ /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38
+ /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fz8
+ /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+////////////////////////////////////
+ /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+
+ /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA
+ jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A
+ pnA8/Pv6/fz7/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq
+ iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+
+ /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+////////////
+ /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+
+ //7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A
+ 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES
+ jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+////////////////
+ /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6
+ /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7
+ /v79/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v39
+ /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8
+ +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+
+ /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ
+ hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ
+ 8+3m/f39/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+
+ /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA
+ jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA
+ u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA
+ j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA
+ jkkCikQE49PC/v7//fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8
+ /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+
+ /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7////
+ t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA
+ jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU
+ hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD
+ /////fz8//7//v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA
+ oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC
+ hj0Az7SX/////fz7//7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+//7+
+ /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH
+ jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA
+ jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT////
+ /Pz8/v7//v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA
+ t4tf/////fz7/v7+/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs
+ mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6
+ /v7+/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v7+
+ /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx
+ +/n3/fz8/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+
+ rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA
+ jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW
+ k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV
+ kU8TmVoj8ejg/v39/fz7/v7//f39/v//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off
+ 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v////7+/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v39/v7+
+ ///+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/v//////
+ /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v79/////////v7+/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v79/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////9/Lt9/Pu
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2svnmMrzrGR/////fz7////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ
+ /v39/fz8/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h
+ /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0////
+ 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC
+ j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ jUgBlFIO7uTa/////f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB
+ jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+
+ /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38////////////////////
+ /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z
+ iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+
+ sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG////
+ /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ hz4Ar35J/v39/fz8/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+////////
+ /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38////////////////////////////////
+ /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+////////////////////////////////////////////
+ /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA
+ /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW
+ k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+
+ /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+////////////////////
+ /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iEAA176j/////fz7////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39////////////////////////////////////////////
+ ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38
+ /fz8/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEA1buf/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+////////////
+ /////////////////////////////////////////////////////////////////////fz7////yKaB
+ hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v///f38////sH9K
+ hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oBi0QAnmIj9vHs/v39/v39////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA
+ nWAf9vHs/v7+/v79////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo////
+ /fz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v///f38////
+ 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/v79+/n3omor
+ ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm
+ +PTw/v39/f39////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sBjEUAmVwb9e/p/v7+/f38////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A
+ vpVq/////fz7/v/+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8AyKaB/////fz7/v///v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39
+ //7/////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC
+ jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsCiD8Auo9h/////fz8/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE
+ iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB
+ 4tC+/////f38/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjUcBk1EN7+Xb/////f39/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj
+ n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f38////u5Jlhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkBjUgE4M66/////fz7/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR
+ 7+bd/v7+/f39////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv
+ +/n4/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0
+ rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6
+ ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC
+ hz4AtolZ/////fz8/v3+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA
+ j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ j0sBikIApGww+vj1/v39/f39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ
+ j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M
+ /////Pz7/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkCjkkG4c+7/////fz7/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+///+/v39
+ /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d////
+ /fz7/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/f38/f38
+ 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A
+ jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sBiD8AyKiE/////fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oBiUEApW4z+vj1/v39/v39////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ
+ /v7+/f38/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4
+ 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD
+ 49PB/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/Pz7////
+ 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6////
+ /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A
+ j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC
+ iUEAqHQ7+/j2/fz8/v39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jUgBkk8K7ODV/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL////
+ /f38/v7+///+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6////////
+ ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A
+ ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38
+ /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBiUEA1Lqd/////fv6////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38
+ sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////v7+/v39
+ /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq
+ 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38
+ /v39/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjUgBkU4J6NrM/////fz8////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA
+ jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEArnxG/v7+/f38/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO
+ 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i////
+ /Pz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA
+ hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr
+ vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g
+ 4M24/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY
+ llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+////////////////////////////
+ /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsCiUEArXpD/v7//f39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB
+ ikMA1bqf/////fz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39
+ /f38/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39
+ /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/////////v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI
+ iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8////
+ /fz8////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA
+ mVsZ8+zl/v38/fz8////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7
+ /v7+//7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz7/v7+
+ 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf
+ 9vHs/v79/fz8////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z
+ iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAi0YAl1gT8+3l/v7+/f39////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA
+ upFj/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC
+ hz4AwZty/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////f39
+ /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC
+ jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ
+ hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsChz4At4ta/////fz8/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjUgCkEwL6dzO/////fz7////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD
+ 38y3/////fz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v/+/f39/v79
+ +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////fz8
+ /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A
+ kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK
+ 5tbG/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBjUcB4M25/////f38/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos
+ +PTw/fz8/f39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v//////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA
+ kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB
+ iUAAq3dA/Pr4/fz7/f39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v///fz7
+ ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA
+ j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0oBikMAomgq+vf0/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////Pz7////4M24
+ i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiUEA0rea/////fz7/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7
+ /v38/v39/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////f38/v79
+ +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/f38
+ ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ kEwChz4AxaJ8/////fz7/v7+////////////////////////////////////////////////////////
+ ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA
+ 07mb/////Pz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU
+ /v7+/Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+////
+ //////////////////////////////////////////////////////////////////////////////7/
+ /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7/////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+////////////////////////////
+ /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jEQAm10b9O/p/v7+/f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+////////////////////////////////////////
+ /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7
+ /v7//v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jUgAklAK6dzO/////f38/v//////////////////////////////////////////////////////////
+ /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6
+ /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng
+ lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+
+ /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiD8Au5Jl/////fz8/v7+//7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+////////////////////
+ /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj
+ /v39/fz8/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+////////////////////////////
+ /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8
+ ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb////
+ /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A
+ upFj/////fz8/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+
+ /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7////////////////////////
+ /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf
+ llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA
+ kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkBjUcA49LA/////f38/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79
+ /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3
+ qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8////0baX
+ iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD
+ /////fz8/v//////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA
+ nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA
+ qHI4/Pv5/v39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+
+ iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ kEsChz8Az7KS/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7
+ /v39/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v39
+ /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////fz8////59jIj0oD
+ jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ
+ /////fz8////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB
+ llYW7+Xb/v7+/f38/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0wChz8AuIxc/v7+/fz7/v39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+
+ /v39/v//////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fv6
+ ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAjkkBjEYA4M24/////fz8/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa
+ /////f38////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v39/fz7
+ 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB
+ jUcE3sq2/////Pz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oBikMAomgq+fXy/v39/f39////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/fz7////
+ 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq
+ +vf1/f38/f39//7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39
+ tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS
+ yqqM38u2/////v79/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/v79////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v79/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxCalibration.Designer.cs b/LFP_Manager/Forms/fmxCalibration.Designer.cs
new file mode 100644
index 0000000..b9945c1
--- /dev/null
+++ b/LFP_Manager/Forms/fmxCalibration.Designer.cs
@@ -0,0 +1,162 @@
+namespace LFP_Manager.Forms
+{
+ partial class fmxCalibration
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxCalibration));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.tmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.ucCalibrationConfig = new LFP_Manager.Controls.ucCalibration();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.btnClose);
+ this.layoutControl1.Controls.Add(this.ucCalibrationConfig);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1265, 291, 250, 350);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(814, 444);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // btnClose
+ //
+ this.btnClose.Location = new System.Drawing.Point(714, 403);
+ this.btnClose.Name = "btnClose";
+ this.btnClose.Size = new System.Drawing.Size(96, 37);
+ this.btnClose.StyleController = this.layoutControl1;
+ this.btnClose.TabIndex = 5;
+ this.btnClose.Text = "Close";
+ this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1,
+ this.layoutControlItem2,
+ this.emptySpaceItem1});
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(814, 444);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.btnClose;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(710, 399);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(100, 41);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1";
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 399);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(710, 41);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // tmrDisplay
+ //
+ this.tmrDisplay.Interval = 500;
+ this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick);
+ //
+ // ucCalibrationConfig
+ //
+ this.ucCalibrationConfig.Location = new System.Drawing.Point(4, 4);
+ this.ucCalibrationConfig.Name = "ucCalibrationConfig";
+ this.ucCalibrationConfig.Size = new System.Drawing.Size(806, 395);
+ this.ucCalibrationConfig.TabIndex = 4;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.ucCalibrationConfig;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(104, 24);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(810, 399);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // fmxCalibration
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(814, 444);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxCalibration.IconOptions.Icon")));
+ this.Name = "fmxCalibration";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Calibration";
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.SimpleButton btnClose;
+ private Controls.ucCalibration ucCalibrationConfig;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private System.Windows.Forms.Timer tmrDisplay;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxCalibration.cs b/LFP_Manager/Forms/fmxCalibration.cs
new file mode 100644
index 0000000..4c04946
--- /dev/null
+++ b/LFP_Manager/Forms/fmxCalibration.cs
@@ -0,0 +1,119 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Controls;
+using static DevExpress.XtraPrinting.Export.Pdf.PdfImageCache;
+
+namespace LFP_Manager.Forms
+{
+ public delegate void CalibUpdateEvent(object sendor);
+ public delegate void CalibCmdEvent(int sId, int mode, int index, int flag,
+ ref CsDeviceData.DeviceModuleData.DeviceParamData aParam,
+ ref CsDeviceData.DeviceModuleData.DeviceCalibration aCalib);
+
+ public partial class fmxCalibration : DevExpress.XtraEditors.XtraForm
+ {
+ #region VARIABLES
+
+ int SystemId = 0;
+ CsDeviceData.DeviceModuleData ModuleData;
+ CsDeviceData.DeviceModuleData.DeviceParamData Param;
+ CsDeviceData.DeviceModuleData.DeviceCalibration Calib;
+
+ public event CalibUpdateEvent OnUpdate = null;
+ public event CalibCmdEvent OnCommand = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public fmxCalibration(int sId, CommConfig aConfig,
+ CsDeviceData.DeviceModuleData.DeviceParamData aParam,
+ CsDeviceData.DeviceModuleData.DeviceCalibration aCalib)
+ {
+ InitializeComponent();
+
+ InitComponent();
+
+ ucCalibrationConfig.UpdateConfig(aConfig);
+
+ SystemId = sId;
+ Param = aParam;
+ Calib = aCalib;
+
+ tmrDisplay.Enabled = true;
+ }
+
+ public void InitComponent()
+ {
+ // Cell Voltage Calibration
+ ucCalibrationConfig.OnCommand += OnCmdEvent;
+ }
+
+ #endregion
+
+ #region COMMAND EVENT
+
+ private void OnCmdEvent(int mode, int index, int flag,
+ ref CsDeviceData.DeviceModuleData.DeviceParamData aParam,
+ ref CsDeviceData.DeviceModuleData.DeviceCalibration aCalib)
+ {
+ OnCommand?.Invoke(SystemId, mode, index, flag, ref aParam, ref aCalib);
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+ private void btnClose_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+ #endregion
+
+ #region TIMER EVENT
+
+ private void tmrDisplay_Tick(object sender, EventArgs e)
+ {
+
+ DisplayValue();
+ if (OnUpdate != null)
+ {
+ OnUpdate(this);
+ }
+ }
+
+ #endregion
+
+ #region DISPLAY DATA
+
+ private void DisplayValue()
+ {
+ // Cell Voltage Parameter
+ ucCalibrationConfig.UpdateData(ModuleData, Calib);
+ }
+
+ #endregion
+
+ #region PUBLIC FUCTIONS
+
+ public void UpdateData(CsDeviceData.DeviceModuleData.DeviceParamData aParam,
+ CsDeviceData.DeviceModuleData.DeviceCalibration aCalib,
+ CsDeviceData.DeviceModuleData mData)
+ {
+ ModuleData = mData;
+ Param = aParam;
+ Calib = aCalib;
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxCalibration.resx b/LFP_Manager/Forms/fmxCalibration.resx
new file mode 100644
index 0000000..4464ab1
--- /dev/null
+++ b/LFP_Manager/Forms/fmxCalibration.resx
@@ -0,0 +1,4574 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+
+ AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA
+ GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/
+ ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7/////////////////////
+ ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff/////////
+ ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+
+ /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7/////
+ ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc
+ x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7/////////////////////////////
+ ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt
+ e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP
+ SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7/////////
+ ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z
+ WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS
+ Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8
+ +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+
+ /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+
+ /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO
+ SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz
+ 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o
+ 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9
+ /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE
+ oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG
+ PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7/////
+ ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH
+ PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t
+ 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/
+ ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/
+ ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7/////////////////////////////
+ ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+
+ /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ
+ TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7/////////////////
+ ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ
+ TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+
+ /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7/////
+ ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP
+ SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7/////////////////////////////////////////
+ ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/
+ ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7/////////////////////////////
+ ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/
+ ///+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////+/v7////////+/v3////////////////////////+/v3////////+/v7/////////////////
+ ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7/////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ /////////v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v7////////+/v7/////////////////////////////////////
+ ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7/////////////////////
+ ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7
+ +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9
+ /Pz+/v7/////////////////////////////////////////////////////////////////////////
+ ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM
+ RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7/////////////////////////////////////
+ ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL
+ QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+
+ /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP
+ SgCOSQCPTAKFOwDVvaT////9/Pv+/v7/////////////////////////////////////////////////
+ ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8
+ +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7/////////
+ /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO
+ SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF
+ OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+
+ ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/
+ //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7/////////////////////////
+ ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/
+ mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79
+ /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN
+ RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ
+ TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7/////
+ ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7/////
+ ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+
+ /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ
+ TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP
+ SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH
+ PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/
+ ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5
+ 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+
+ /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ
+ QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE
+ oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/
+ ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7/////////////////////////
+ ///////////////////////////////////////////////////////+/v7+////////////////////
+ ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+
+ /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9
+ /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP
+ SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL
+ RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7/////////////////////////////////
+ ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/
+ ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7/////////
+ ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP
+ SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI
+ PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/
+ ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x
+ glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7/////////////////////////////
+ ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM
+ RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+
+ /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/
+ ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP
+ SgCOSgGLRQGTURDz7ef+/v39/f3+/v7/////////////////////////////////////////////////
+ ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+
+ /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7/////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN
+ RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9
+ /fz9/f3+/v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO
+ SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7/////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO
+ SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS
+ UA/y6+X+/v39/fz+/v7+/v7/////////////////////////////////////////////////////////
+ ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP
+ SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7/////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+
+ /v7/////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO
+ SQCOSQGJQQDi0cD////9/Pv+/v7/////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J
+ QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7/////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39
+ /fz+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz
+ hFazhFayhFazhVete1TWvqb////9/fz+/v7/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+
+ /f3+/f3/////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v7+////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////v7+
+ /f39////////////////////////////////////////////////////////////////////////////
+ ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39
+ /fz8/v79/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA
+ nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1////
+ x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV
+ i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC
+ jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC
+ hz8Ap3I//fz7/fz8/v79/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7
+ /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8
+ +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p
+ /v39/f38/v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+
+ ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb
+ 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+//7+/f39
+ /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7////
+ 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+
+ /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA
+ j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB
+ j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB
+ i0UAlVYZ8+3m/f79/f38/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+////////////////
+ /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39
+ /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+
+ sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+
+ /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+////////
+ /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+
+ /f39/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO
+ /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39
+ 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39
+ /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+////////////////////////////
+ /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+////
+ /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A
+ kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ jkoCikIC4tHA/////Pv7/v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC
+ hz4A1r6m/////Pz7/v7+/v7+/////v7+////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+
+ /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+////////////////////
+ /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM
+ /////Pv6/v7+/v7+/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA
+ j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+
+ /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7
+ /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq////
+ /Pv6/v7+/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A
+ j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA
+ kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA
+ j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6
+ /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+////////
+ /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+
+ /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA
+ xaJ//////Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU
+ /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA
+ j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+////////////
+ 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+
+ /////v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39
+ /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/
+ /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6
+ ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+
+ /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC
+ kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB
+ kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39////
+ /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA
+ hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA
+ iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A
+ j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU
+ z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+////////
+ /v7+/////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7//v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn
+ +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3
+ +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8
+ /fz8/v7+/////v7+/////v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v///v7+/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT
+ z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7
+ ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A
+ hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A
+ fS0AtIdb/f38/Pz8///+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D
+ kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL
+ jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA
+ jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3
+ iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA
+ jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA
+ jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK
+ 6t7S/v7+/fz8/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs////
+ /Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7
+ /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38
+ /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fz8
+ /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+////////////////////////////////////
+ /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+
+ /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA
+ jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A
+ pnA8/Pv6/fz7/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq
+ iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+
+ /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+////////////
+ /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+
+ //7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A
+ 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES
+ jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+////////////////
+ /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6
+ /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7
+ /v79/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v39
+ /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8
+ +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+
+ /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ
+ hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ
+ 8+3m/f39/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+
+ /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA
+ jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA
+ u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA
+ j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA
+ jkkCikQE49PC/v7//fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8
+ /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+
+ /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7////
+ t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA
+ jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU
+ hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD
+ /////fz8//7//v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA
+ oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC
+ hj0Az7SX/////fz7//7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+//7+
+ /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH
+ jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA
+ jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT////
+ /Pz8/v7//v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA
+ t4tf/////fz7/v7+/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs
+ mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6
+ /v7+/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v7+
+ /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx
+ +/n3/fz8/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+
+ rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA
+ jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW
+ k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV
+ kU8TmVoj8ejg/v39/fz7/v7//f39/v//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off
+ 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v////7+/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v39/v7+
+ ///+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/v//////
+ /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v79/////////v7+/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v79/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////9/Lt9/Pu
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2svnmMrzrGR/////fz7////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ
+ /v39/fz8/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h
+ /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0////
+ 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC
+ j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ jUgBlFIO7uTa/////f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB
+ jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+
+ /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38////////////////////
+ /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z
+ iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+
+ sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG////
+ /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ hz4Ar35J/v39/fz8/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+////////
+ /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38////////////////////////////////
+ /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+////////////////////////////////////////////
+ /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA
+ /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW
+ k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+
+ /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+////////////////////
+ /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iEAA176j/////fz7////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39////////////////////////////////////////////
+ ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38
+ /fz8/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEA1buf/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+////////////
+ /////////////////////////////////////////////////////////////////////fz7////yKaB
+ hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v///f38////sH9K
+ hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oBi0QAnmIj9vHs/v39/v39////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA
+ nWAf9vHs/v7+/v79////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo////
+ /fz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v///f38////
+ 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/v79+/n3omor
+ ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm
+ +PTw/v39/f39////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sBjEUAmVwb9e/p/v7+/f38////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A
+ vpVq/////fz7/v/+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8AyKaB/////fz7/v///v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39
+ //7/////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC
+ jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsCiD8Auo9h/////fz8/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE
+ iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB
+ 4tC+/////f38/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjUcBk1EN7+Xb/////f39/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj
+ n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f38////u5Jlhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkBjUgE4M66/////fz7/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR
+ 7+bd/v7+/f39////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv
+ +/n4/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0
+ rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6
+ ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC
+ hz4AtolZ/////fz8/v3+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA
+ j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ j0sBikIApGww+vj1/v39/f39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ
+ j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M
+ /////Pz7/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkCjkkG4c+7/////fz7/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+///+/v39
+ /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d////
+ /fz7/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/f38/f38
+ 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A
+ jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sBiD8AyKiE/////fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oBiUEApW4z+vj1/v39/v39////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ
+ /v7+/f38/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4
+ 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD
+ 49PB/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/Pz7////
+ 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6////
+ /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A
+ j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC
+ iUEAqHQ7+/j2/fz8/v39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jUgBkk8K7ODV/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL////
+ /f38/v7+///+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6////////
+ ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A
+ ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38
+ /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBiUEA1Lqd/////fv6////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38
+ sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////v7+/v39
+ /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq
+ 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38
+ /v39/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjUgBkU4J6NrM/////fz8////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA
+ jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEArnxG/v7+/f38/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO
+ 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i////
+ /Pz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA
+ hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr
+ vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g
+ 4M24/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY
+ llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+////////////////////////////
+ /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsCiUEArXpD/v7//f39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB
+ ikMA1bqf/////fz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39
+ /f38/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39
+ /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/////////v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI
+ iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8////
+ /fz8////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA
+ mVsZ8+zl/v38/fz8////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7
+ /v7+//7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz7/v7+
+ 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf
+ 9vHs/v79/fz8////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z
+ iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAi0YAl1gT8+3l/v7+/f39////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA
+ upFj/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC
+ hz4AwZty/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////f39
+ /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC
+ jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ
+ hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsChz4At4ta/////fz8/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjUgCkEwL6dzO/////fz7////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD
+ 38y3/////fz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v/+/f39/v79
+ +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////fz8
+ /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A
+ kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK
+ 5tbG/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBjUcB4M25/////f38/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos
+ +PTw/fz8/f39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v//////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA
+ kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB
+ iUAAq3dA/Pr4/fz7/f39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v///fz7
+ ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA
+ j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0oBikMAomgq+vf0/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////Pz7////4M24
+ i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiUEA0rea/////fz7/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7
+ /v38/v39/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////f38/v79
+ +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/f38
+ ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ kEwChz4AxaJ8/////fz7/v7+////////////////////////////////////////////////////////
+ ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA
+ 07mb/////Pz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU
+ /v7+/Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+////
+ //////////////////////////////////////////////////////////////////////////////7/
+ /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7/////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+////////////////////////////
+ /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jEQAm10b9O/p/v7+/f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+////////////////////////////////////////
+ /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7
+ /v7//v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jUgAklAK6dzO/////f38/v//////////////////////////////////////////////////////////
+ /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6
+ /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng
+ lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+
+ /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiD8Au5Jl/////fz8/v7+//7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+////////////////////
+ /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj
+ /v39/fz8/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+////////////////////////////
+ /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8
+ ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb////
+ /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A
+ upFj/////fz8/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+
+ /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7////////////////////////
+ /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf
+ llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA
+ kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkBjUcA49LA/////f38/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79
+ /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3
+ qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8////0baX
+ iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD
+ /////fz8/v//////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA
+ nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA
+ qHI4/Pv5/v39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+
+ iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ kEsChz8Az7KS/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7
+ /v39/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v39
+ /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////fz8////59jIj0oD
+ jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ
+ /////fz8////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB
+ llYW7+Xb/v7+/f38/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0wChz8AuIxc/v7+/fz7/v39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+
+ /v39/v//////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fv6
+ ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAjkkBjEYA4M24/////fz8/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa
+ /////f38////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v39/fz7
+ 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB
+ jUcE3sq2/////Pz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oBikMAomgq+fXy/v39/f39////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/fz7////
+ 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq
+ +vf1/f38/f39//7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39
+ tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS
+ yqqM38u2/////v79/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/v79////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v79/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxCommConfig.Designer.cs b/LFP_Manager/Forms/fmxCommConfig.Designer.cs
new file mode 100644
index 0000000..e1ba7d2
--- /dev/null
+++ b/LFP_Manager/Forms/fmxCommConfig.Designer.cs
@@ -0,0 +1,108 @@
+namespace LFP_Manager.Forms
+{
+ partial class fmxCommConfig
+ {
+ ///
+ /// 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(fmxCommConfig));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.ucCommConfig1 = new LFP_Manager.Controls.ucCommConfig();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.ucCommConfig1);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(404, 596);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1});
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(404, 596);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // ucCommConfig1
+ //
+ this.ucCommConfig1.Location = new System.Drawing.Point(3, 3);
+ this.ucCommConfig1.Name = "ucCommConfig1";
+ this.ucCommConfig1.Size = new System.Drawing.Size(398, 590);
+ this.ucCommConfig1.TabIndex = 4;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.ucCommConfig1;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(402, 594);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // fmxCommConfig
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(404, 596);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxCommConfig.IconOptions.Icon")));
+ this.Name = "fmxCommConfig";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Communication Config";
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private Controls.ucCommConfig ucCommConfig1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxCommConfig.cs b/LFP_Manager/Forms/fmxCommConfig.cs
new file mode 100644
index 0000000..9c447b0
--- /dev/null
+++ b/LFP_Manager/Forms/fmxCommConfig.cs
@@ -0,0 +1,38 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+namespace LFP_Manager.Forms
+{
+ public delegate void UpdateEvent(object aConfig);
+
+ public partial class fmxCommConfig : DevExpress.XtraEditors.XtraForm
+ {
+ public event UpdateEvent OnUpdate = null;
+
+ public fmxCommConfig()
+ {
+ InitializeComponent();
+
+ ucCommConfig1.OnClose += FormClose;
+ }
+
+ private void FormClose(object Config, bool saved)
+ {
+ if (OnUpdate != null)
+ {
+ if (saved == true)
+ {
+ OnUpdate(Config);
+ }
+ }
+ Close();
+ }
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxCommConfig.resx b/LFP_Manager/Forms/fmxCommConfig.resx
new file mode 100644
index 0000000..cf8c6d2
--- /dev/null
+++ b/LFP_Manager/Forms/fmxCommConfig.resx
@@ -0,0 +1,4571 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+ AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA
+ GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/
+ ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7/////////////////////
+ ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff/////////
+ ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+
+ /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7/////
+ ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc
+ x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7/////////////////////////////
+ ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt
+ e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP
+ SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7/////////
+ ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z
+ WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS
+ Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8
+ +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+
+ /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+
+ /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO
+ SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz
+ 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o
+ 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9
+ /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE
+ oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG
+ PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7/////
+ ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH
+ PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t
+ 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/
+ ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/
+ ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7/////////////////////////////
+ ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+
+ /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ
+ TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7/////////////////
+ ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ
+ TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+
+ /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7/////
+ ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP
+ SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7/////////////////////////////////////////
+ ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/
+ ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7/////////////////////////////
+ ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/
+ ///+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////+/v7////////+/v3////////////////////////+/v3////////+/v7/////////////////
+ ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7/////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ /////////v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v7////////+/v7/////////////////////////////////////
+ ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7/////////////////////
+ ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7
+ +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9
+ /Pz+/v7/////////////////////////////////////////////////////////////////////////
+ ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM
+ RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7/////////////////////////////////////
+ ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL
+ QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+
+ /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP
+ SgCOSQCPTAKFOwDVvaT////9/Pv+/v7/////////////////////////////////////////////////
+ ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8
+ +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7/////////
+ /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO
+ SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF
+ OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+
+ ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/
+ //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7/////////////////////////
+ ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/
+ mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79
+ /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN
+ RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ
+ TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7/////
+ ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7/////
+ ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+
+ /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ
+ TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP
+ SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH
+ PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/
+ ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5
+ 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+
+ /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ
+ QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE
+ oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/
+ ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7/////////////////////////
+ ///////////////////////////////////////////////////////+/v7+////////////////////
+ ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+
+ /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9
+ /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP
+ SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL
+ RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7/////////////////////////////////
+ ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/
+ ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7/////////
+ ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP
+ SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI
+ PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/
+ ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x
+ glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7/////////////////////////////
+ ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM
+ RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+
+ /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/
+ ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP
+ SgCOSgGLRQGTURDz7ef+/v39/f3+/v7/////////////////////////////////////////////////
+ ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+
+ /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7/////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN
+ RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9
+ /fz9/f3+/v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO
+ SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7/////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO
+ SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS
+ UA/y6+X+/v39/fz+/v7+/v7/////////////////////////////////////////////////////////
+ ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP
+ SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7/////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+
+ /v7/////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO
+ SQCOSQGJQQDi0cD////9/Pv+/v7/////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J
+ QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7/////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39
+ /fz+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz
+ hFazhFayhFazhVete1TWvqb////9/fz+/v7/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+
+ /f3+/f3/////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v7+////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////v7+
+ /f39////////////////////////////////////////////////////////////////////////////
+ ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39
+ /fz8/v79/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA
+ nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1////
+ x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV
+ i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC
+ jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC
+ hz8Ap3I//fz7/fz8/v79/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7
+ /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8
+ +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p
+ /v39/f38/v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+
+ ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb
+ 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+//7+/f39
+ /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7////
+ 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+
+ /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA
+ j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB
+ j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB
+ i0UAlVYZ8+3m/f79/f38/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+////////////////
+ /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39
+ /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+
+ sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+
+ /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+////////
+ /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+
+ /f39/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO
+ /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39
+ 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39
+ /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+////////////////////////////
+ /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+////
+ /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A
+ kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ jkoCikIC4tHA/////Pv7/v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC
+ hz4A1r6m/////Pz7/v7+/v7+/////v7+////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+
+ /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+////////////////////
+ /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM
+ /////Pv6/v7+/v7+/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA
+ j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+
+ /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7
+ /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq////
+ /Pv6/v7+/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A
+ j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA
+ kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA
+ j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6
+ /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+////////
+ /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+
+ /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA
+ xaJ//////Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU
+ /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA
+ j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+////////////
+ 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+
+ /////v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39
+ /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/
+ /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6
+ ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+
+ /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC
+ kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB
+ kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39////
+ /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA
+ hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA
+ iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A
+ j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU
+ z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+////////
+ /v7+/////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7//v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn
+ +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3
+ +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8
+ /fz8/v7+/////v7+/////v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v///v7+/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT
+ z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7
+ ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A
+ hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A
+ fS0AtIdb/f38/Pz8///+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D
+ kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL
+ jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA
+ jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3
+ iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA
+ jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA
+ jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK
+ 6t7S/v7+/fz8/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs////
+ /Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7
+ /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38
+ /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fz8
+ /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+////////////////////////////////////
+ /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+
+ /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA
+ jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A
+ pnA8/Pv6/fz7/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq
+ iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+
+ /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+////////////
+ /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+
+ //7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A
+ 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES
+ jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+////////////////
+ /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6
+ /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7
+ /v79/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v39
+ /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8
+ +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+
+ /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ
+ hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ
+ 8+3m/f39/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+
+ /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA
+ jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA
+ u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA
+ j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA
+ jkkCikQE49PC/v7//fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8
+ /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+
+ /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7////
+ t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA
+ jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU
+ hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD
+ /////fz8//7//v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA
+ oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC
+ hj0Az7SX/////fz7//7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+//7+
+ /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH
+ jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA
+ jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT////
+ /Pz8/v7//v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA
+ t4tf/////fz7/v7+/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs
+ mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6
+ /v7+/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v7+
+ /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx
+ +/n3/fz8/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+
+ rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA
+ jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW
+ k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV
+ kU8TmVoj8ejg/v39/fz7/v7//f39/v//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off
+ 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v////7+/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v39/v7+
+ ///+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/v//////
+ /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v79/////////v7+/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v79/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////9/Lt9/Pu
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2svnmMrzrGR/////fz7////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ
+ /v39/fz8/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h
+ /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0////
+ 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC
+ j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ jUgBlFIO7uTa/////f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB
+ jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+
+ /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38////////////////////
+ /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z
+ iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+
+ sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG////
+ /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ hz4Ar35J/v39/fz8/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+////////
+ /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38////////////////////////////////
+ /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+////////////////////////////////////////////
+ /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA
+ /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW
+ k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+
+ /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+////////////////////
+ /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iEAA176j/////fz7////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39////////////////////////////////////////////
+ ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38
+ /fz8/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEA1buf/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+////////////
+ /////////////////////////////////////////////////////////////////////fz7////yKaB
+ hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v///f38////sH9K
+ hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oBi0QAnmIj9vHs/v39/v39////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA
+ nWAf9vHs/v7+/v79////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo////
+ /fz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v///f38////
+ 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/v79+/n3omor
+ ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm
+ +PTw/v39/f39////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sBjEUAmVwb9e/p/v7+/f38////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A
+ vpVq/////fz7/v/+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8AyKaB/////fz7/v///v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39
+ //7/////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC
+ jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsCiD8Auo9h/////fz8/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE
+ iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB
+ 4tC+/////f38/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjUcBk1EN7+Xb/////f39/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj
+ n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f38////u5Jlhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkBjUgE4M66/////fz7/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR
+ 7+bd/v7+/f39////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv
+ +/n4/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0
+ rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6
+ ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC
+ hz4AtolZ/////fz8/v3+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA
+ j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ j0sBikIApGww+vj1/v39/f39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ
+ j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M
+ /////Pz7/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkCjkkG4c+7/////fz7/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+///+/v39
+ /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d////
+ /fz7/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/f38/f38
+ 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A
+ jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sBiD8AyKiE/////fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oBiUEApW4z+vj1/v39/v39////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ
+ /v7+/f38/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4
+ 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD
+ 49PB/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/Pz7////
+ 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6////
+ /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A
+ j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC
+ iUEAqHQ7+/j2/fz8/v39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jUgBkk8K7ODV/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL////
+ /f38/v7+///+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6////////
+ ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A
+ ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38
+ /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBiUEA1Lqd/////fv6////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38
+ sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////v7+/v39
+ /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq
+ 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38
+ /v39/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjUgBkU4J6NrM/////fz8////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA
+ jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEArnxG/v7+/f38/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO
+ 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i////
+ /Pz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA
+ hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr
+ vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g
+ 4M24/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY
+ llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+////////////////////////////
+ /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsCiUEArXpD/v7//f39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB
+ ikMA1bqf/////fz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39
+ /f38/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39
+ /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/////////v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI
+ iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8////
+ /fz8////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA
+ mVsZ8+zl/v38/fz8////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7
+ /v7+//7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz7/v7+
+ 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf
+ 9vHs/v79/fz8////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z
+ iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAi0YAl1gT8+3l/v7+/f39////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA
+ upFj/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC
+ hz4AwZty/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////f39
+ /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC
+ jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ
+ hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsChz4At4ta/////fz8/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjUgCkEwL6dzO/////fz7////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD
+ 38y3/////fz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v/+/f39/v79
+ +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////fz8
+ /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A
+ kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK
+ 5tbG/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBjUcB4M25/////f38/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos
+ +PTw/fz8/f39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v//////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA
+ kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB
+ iUAAq3dA/Pr4/fz7/f39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v///fz7
+ ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA
+ j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0oBikMAomgq+vf0/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////Pz7////4M24
+ i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiUEA0rea/////fz7/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7
+ /v38/v39/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////f38/v79
+ +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/f38
+ ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ kEwChz4AxaJ8/////fz7/v7+////////////////////////////////////////////////////////
+ ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA
+ 07mb/////Pz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU
+ /v7+/Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+////
+ //////////////////////////////////////////////////////////////////////////////7/
+ /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7/////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+////////////////////////////
+ /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jEQAm10b9O/p/v7+/f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+////////////////////////////////////////
+ /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7
+ /v7//v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jUgAklAK6dzO/////f38/v//////////////////////////////////////////////////////////
+ /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6
+ /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng
+ lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+
+ /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiD8Au5Jl/////fz8/v7+//7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+////////////////////
+ /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj
+ /v39/fz8/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+////////////////////////////
+ /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8
+ ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb////
+ /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A
+ upFj/////fz8/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+
+ /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7////////////////////////
+ /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf
+ llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA
+ kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkBjUcA49LA/////f38/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79
+ /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3
+ qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8////0baX
+ iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD
+ /////fz8/v//////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA
+ nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA
+ qHI4/Pv5/v39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+
+ iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ kEsChz8Az7KS/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7
+ /v39/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v39
+ /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////fz8////59jIj0oD
+ jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ
+ /////fz8////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB
+ llYW7+Xb/v7+/f38/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0wChz8AuIxc/v7+/fz7/v39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+
+ /v39/v//////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fv6
+ ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAjkkBjEYA4M24/////fz8/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa
+ /////f38////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v39/fz7
+ 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB
+ jUcE3sq2/////Pz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oBikMAomgq+fXy/v39/f39////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/fz7////
+ 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq
+ +vf1/f38/f39//7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39
+ tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS
+ yqqM38u2/////v79/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/v79////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v79/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxEtcStatus.Designer.cs b/LFP_Manager/Forms/fmxEtcStatus.Designer.cs
new file mode 100644
index 0000000..47d5a7c
--- /dev/null
+++ b/LFP_Manager/Forms/fmxEtcStatus.Designer.cs
@@ -0,0 +1,152 @@
+
+namespace LFP_Manager.Forms
+{
+ partial class fmxEtcStatus
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxEtcStatus));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.EtcStatusView = new LFP_Manager.Controls.ucEtcStatusView();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.btnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.tmrDisplay = new System.Windows.Forms.Timer(this.components);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.btnClose);
+ this.layoutControl1.Controls.Add(this.EtcStatusView);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(916, 145, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(612, 406);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1,
+ this.layoutControlItem2,
+ this.emptySpaceItem1});
+ this.Root.Name = "Root";
+ this.Root.Size = new System.Drawing.Size(612, 406);
+ this.Root.TextVisible = false;
+ //
+ // EtcStatusView
+ //
+ this.EtcStatusView.Location = new System.Drawing.Point(12, 12);
+ this.EtcStatusView.Name = "EtcStatusView";
+ this.EtcStatusView.Size = new System.Drawing.Size(588, 347);
+ this.EtcStatusView.TabIndex = 4;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.EtcStatusView;
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(592, 351);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // btnClose
+ //
+ this.btnClose.Location = new System.Drawing.Point(495, 363);
+ this.btnClose.Name = "btnClose";
+ this.btnClose.Size = new System.Drawing.Size(105, 31);
+ this.btnClose.StyleController = this.layoutControl1;
+ this.btnClose.TabIndex = 5;
+ this.btnClose.Text = "Close";
+ this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.btnClose;
+ this.layoutControlItem2.Location = new System.Drawing.Point(483, 351);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(109, 35);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 351);
+ this.emptySpaceItem1.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(483, 35);
+ this.emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // fmxEtcStatus
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(612, 406);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Image = ((System.Drawing.Image)(resources.GetObject("fmxEtcStatus.IconOptions.Image")));
+ this.Name = "fmxEtcStatus";
+ this.Text = "fmxEtcStatus";
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraEditors.SimpleButton btnClose;
+ private Controls.ucEtcStatusView EtcStatusView;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private System.Windows.Forms.Timer tmrDisplay;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxEtcStatus.cs b/LFP_Manager/Forms/fmxEtcStatus.cs
new file mode 100644
index 0000000..2de187d
--- /dev/null
+++ b/LFP_Manager/Forms/fmxEtcStatus.cs
@@ -0,0 +1,100 @@
+using DevExpress.XtraEditors;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Controls;
+
+namespace LFP_Manager.Forms
+{
+ public partial class fmxEtcStatus : DevExpress.XtraEditors.XtraForm
+ {
+ public delegate void UpdateEvent(object sendor);
+ public delegate void CmdEvent(int sId, int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib);
+
+ #region VARIABLES
+
+ int SystemId = 0;
+ DeviceSystemData SystemData;
+ DeviceParamData Param;
+ DeviceCalibration Calib;
+
+ public event UpdateEvent OnUpdate = null;
+ public event CmdEvent OnCommand = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public fmxEtcStatus()
+ {
+ InitializeComponent();
+ }
+
+ public fmxEtcStatus(int sId, DeviceCalibration aCalib)
+ {
+ InitializeComponent();
+
+ InitComponent();
+
+ SystemId = sId;
+ Calib = aCalib;
+
+ tmrDisplay.Enabled = true;
+ }
+
+ public void InitComponent()
+ {
+ EtcStatusView.OnCommand += OnCmdEvent;
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+
+ private void btnClose_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+
+ #endregion
+
+ #region COMMAND EVENT
+
+ private void OnCmdEvent(int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib)
+ {
+ OnCommand?.Invoke(SystemId, mode, index, flag, ref aParam, ref aCalib);
+ }
+
+ #endregion
+
+ #region TIMER EVENT
+
+ private void tmrDisplay_Tick(object sender, EventArgs e)
+ {
+
+ DisplayValue();
+ OnUpdate?.Invoke(this);
+ }
+
+ #endregion
+
+ #region DISPLAY DATA
+
+ private void DisplayValue()
+ {
+ // Cell Voltage Parameter
+ EtcStatusView.UpdateData(SystemData);
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxEtcStatus.resx b/LFP_Manager/Forms/fmxEtcStatus.resx
new file mode 100644
index 0000000..a14af06
--- /dev/null
+++ b/LFP_Manager/Forms/fmxEtcStatus.resx
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAATMSURBVFhH5VVrbBVVED63bUr4pTESFWPE+Idf2qAxiqiF
+ giAV0fiIGgJq4g/wkUiMlWI0kj5oS61VUwWurUDRiAUqmAhBHq2t+CgqhRJoCzWt+Kj0Wnqh79txvtmd
+ 7V66d7v4hxgnmZzdPTNnvvlmzqyhSyz/HQAjIyPO6qdqE1QCAXAfGPM53L0XFMRFMaCHRqJ91HW219Ez
+ 3b3Ufb5f9tx2QWRcAHrg0HBM3nc3tNGkhe/QpMffpysfK3N08qNldPhkp9gMs21QIL4A9IBYLEbDrH0D
+ QzT12Qoy6avJ3PcWmbnFluL5rjyamfUZvMQ2SHBIIAY0+1UfHyRzZy4lL3jbCjq/xFJ+Tr6fvzGITXub
+ xBY+QVhICECdQSeaq+XXCE3MLKGQZsyBQ3gXAPY6u4iueeIDivT0CQvChH1WIhm3BJr9A29Wk7k7n5Iy
+ rewl4L1ruASsNgtJYGFGHr207oD4DNos+IknAM1+cGhY3j8/2EpmVoFFswbiUixfu58eyd0pQeUb9hjM
+ BF61IccrxRgAaojGg/O53gG68akwheYUcfYW1aE5a+gq7nw0ZcvpCKXOK6YkDuqAm1lA6Vlb7CT8WRgL
+ AMoOSn32R3VxjSfrPfm0Yc9R2Ye8WvG1NKBjAxD8Xrn3mOz7sRAHQI30Hh9v77KyY/XKDgej0Xp4CE1Z
+ sl6Y0cYM2Q35Nw8t2IBRjeEWzxIAAGT+69usxnPqy9nxLfip9U8HgPbJlprjYpvKQwoMYMX7CmYHoixc
+ KA4AbOqhkO31LXbXJ+hwDozMYI9ewIpBZNLe4JLlkZmeS+aOHDK351BNYwfbjjLrBiIA9INMPDaKnh+g
+ KYvXk8kotOi0Kb1u0To6e65fArOT+LgF/4VsBphdUSeZr9xQR6+U7aPqb1pl34uFOAaUzqzy2virhZXZ
+ +JRphgAkhk1D8x+059AvVLH7CJVsbaDwl430xfenaMe3rXJ1oTu/O0mffNVE9U2nLV8G72bB6IvSc7Tt
+ L7nHqLcEx+Dhrp+dXSVZqx3AdjMbHZ09dOBwO73GGV+/aK1VAqYdgKUUM7gU03Po8ofepd/ORMc0JAOw
+ HnAwJGNFFQdcPZo9K27CkbZOGckKwEvwvXxXI13Nf0bDcyN1YSml8DkTHrQacnHxLrFzl4JLMNp4m/cd
+ 4/ub70w8uddcCtxzCLJWR6yqyAp7mtmJjghNffpDq4e0ibHOKqT9P7eLjYIweMABqOm1TzKFGUWjjcdZ
+ 3LAkTFGehrCBQhQEREHo88DgkDw388/rMr6KSfO0lAwgvYBuXraRbfgGcVwANr39lsNy7l7UzKEeDlz7
+ bfXNsq/Zu4O7Rfbstd8GUVr949hm5veS7YdkH9dXbkHjqU5pvBTOGoFTFpRKzeau3CqGXtfHS9QGmcEH
+ etPSjTI9UU6cncz9dMXD79HvXVG24xLgXk97vtLqXK4ZjBE8hSfeiY6uuMYLCgJqgSaq5SEkN4Lpl7N5
+ npjbVlEmT1mIyQrXUtpzm2jaC5UC5NYXN1MaN1Bh1Q9i4Nf1fgIf7ZmXwzWU9ky5nI0Yt7Ai5g785lGH
+ RILsNfjFgHD7+Pmh/5xRjGCq8s71UfE7JJGoj57lFQPiTEIvhej6b+TC87zU+RdcKvm/AyD6B4yX+amq
+ vYT8AAAAAElFTkSuQmCC
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxExcelFile.Designer.cs b/LFP_Manager/Forms/fmxExcelFile.Designer.cs
new file mode 100644
index 0000000..5070213
--- /dev/null
+++ b/LFP_Manager/Forms/fmxExcelFile.Designer.cs
@@ -0,0 +1,776 @@
+namespace LFP_Manager
+{
+ partial class fmxExcelFile
+ {
+ ///
+ /// 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(fmxExcelFile));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.tbPcbSn = new DevExpress.XtraEditors.TextEdit();
+ this.btnOpenDbFolder = new DevExpress.XtraEditors.SimpleButton();
+ this.edResultCount = new DevExpress.XtraEditors.TextEdit();
+ this.btnResultListClear = new DevExpress.XtraEditors.SimpleButton();
+ this.btnSearchPcbSn = new DevExpress.XtraEditors.SimpleButton();
+ this.btnOutputAll = new DevExpress.XtraEditors.SimpleButton();
+ this.btnDeleteQuery = new DevExpress.XtraEditors.SimpleButton();
+ this.btnCreateNewDb = new DevExpress.XtraEditors.SimpleButton();
+ this.btnCheckGroupData = new DevExpress.XtraEditors.SimpleButton();
+ this.cbResultList = new DevExpress.XtraEditors.ComboBoxEdit();
+ this.cbLotNo = new DevExpress.XtraEditors.ComboBoxEdit();
+ this.btnExcuteTCell = new DevExpress.XtraEditors.SimpleButton();
+ this.gbDbCommnad = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnOpenSchema = new DevExpress.XtraEditors.SimpleButton();
+ this.btnDbMerge = new DevExpress.XtraEditors.SimpleButton();
+ this.btnQueryExcute = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.tbSchema = new System.Windows.Forms.TextBox();
+ this.gridCell = new System.Windows.Forms.DataGridView();
+ this.btnFindFile = new DevExpress.XtraEditors.SimpleButton();
+ this.edFileName = new DevExpress.XtraEditors.TextEdit();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcitemLot = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem14 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem15 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem16 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem18 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem17 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem19 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
+ this.btnDbFileFind = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlItem20 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.tbPcbSn.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edResultCount.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.cbResultList.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.cbLotNo.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbDbCommnad)).BeginInit();
+ this.gbDbCommnad.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit();
+ this.layoutControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gridCell)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edFileName.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemLot)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem18)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem17)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.btnDbFileFind);
+ this.layoutControl1.Controls.Add(this.tbPcbSn);
+ this.layoutControl1.Controls.Add(this.btnOpenDbFolder);
+ this.layoutControl1.Controls.Add(this.edResultCount);
+ this.layoutControl1.Controls.Add(this.btnResultListClear);
+ this.layoutControl1.Controls.Add(this.btnSearchPcbSn);
+ this.layoutControl1.Controls.Add(this.btnOutputAll);
+ this.layoutControl1.Controls.Add(this.btnDeleteQuery);
+ this.layoutControl1.Controls.Add(this.btnCreateNewDb);
+ this.layoutControl1.Controls.Add(this.btnCheckGroupData);
+ this.layoutControl1.Controls.Add(this.cbResultList);
+ this.layoutControl1.Controls.Add(this.cbLotNo);
+ this.layoutControl1.Controls.Add(this.btnExcuteTCell);
+ this.layoutControl1.Controls.Add(this.gbDbCommnad);
+ this.layoutControl1.Controls.Add(this.tbSchema);
+ this.layoutControl1.Controls.Add(this.gridCell);
+ this.layoutControl1.Controls.Add(this.btnFindFile);
+ this.layoutControl1.Controls.Add(this.edFileName);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1347, 290, 250, 350);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(999, 578);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // tbPcbSn
+ //
+ this.tbPcbSn.Location = new System.Drawing.Point(681, 265);
+ this.tbPcbSn.Name = "tbPcbSn";
+ this.tbPcbSn.Size = new System.Drawing.Size(163, 20);
+ this.tbPcbSn.StyleController = this.layoutControl1;
+ this.tbPcbSn.TabIndex = 23;
+ //
+ // btnOpenDbFolder
+ //
+ this.btnOpenDbFolder.Location = new System.Drawing.Point(894, 12);
+ this.btnOpenDbFolder.Name = "btnOpenDbFolder";
+ this.btnOpenDbFolder.Size = new System.Drawing.Size(93, 22);
+ this.btnOpenDbFolder.StyleController = this.layoutControl1;
+ this.btnOpenDbFolder.TabIndex = 22;
+ this.btnOpenDbFolder.Text = "Open DB Folder";
+ this.btnOpenDbFolder.Click += new System.EventHandler(this.btnOpenDbFolder_Click);
+ //
+ // edResultCount
+ //
+ this.edResultCount.Location = new System.Drawing.Point(89, 265);
+ this.edResultCount.Name = "edResultCount";
+ this.edResultCount.Size = new System.Drawing.Size(59, 20);
+ this.edResultCount.StyleController = this.layoutControl1;
+ this.edResultCount.TabIndex = 21;
+ //
+ // btnResultListClear
+ //
+ this.btnResultListClear.Location = new System.Drawing.Point(402, 265);
+ this.btnResultListClear.Name = "btnResultListClear";
+ this.btnResultListClear.Size = new System.Drawing.Size(89, 22);
+ this.btnResultListClear.StyleController = this.layoutControl1;
+ this.btnResultListClear.TabIndex = 20;
+ this.btnResultListClear.Text = "Clear";
+ this.btnResultListClear.Click += new System.EventHandler(this.btnResultListClear_Click);
+ //
+ // btnSearchPcbSn
+ //
+ this.btnSearchPcbSn.Location = new System.Drawing.Point(848, 265);
+ this.btnSearchPcbSn.Name = "btnSearchPcbSn";
+ this.btnSearchPcbSn.Size = new System.Drawing.Size(139, 22);
+ this.btnSearchPcbSn.StyleController = this.layoutControl1;
+ this.btnSearchPcbSn.TabIndex = 19;
+ this.btnSearchPcbSn.Text = "Search PCB SN";
+ this.btnSearchPcbSn.Click += new System.EventHandler(this.btnModuleResult_Click);
+ //
+ // btnOutputAll
+ //
+ this.btnOutputAll.Location = new System.Drawing.Point(897, 229);
+ this.btnOutputAll.Name = "btnOutputAll";
+ this.btnOutputAll.Size = new System.Drawing.Size(90, 32);
+ this.btnOutputAll.StyleController = this.layoutControl1;
+ this.btnOutputAll.TabIndex = 18;
+ this.btnOutputAll.Text = "Output All";
+ this.btnOutputAll.Click += new System.EventHandler(this.btnOutputAll_Click);
+ //
+ // btnDeleteQuery
+ //
+ this.btnDeleteQuery.Location = new System.Drawing.Point(740, 229);
+ this.btnDeleteQuery.Name = "btnDeleteQuery";
+ this.btnDeleteQuery.Size = new System.Drawing.Size(123, 32);
+ this.btnDeleteQuery.StyleController = this.layoutControl1;
+ this.btnDeleteQuery.TabIndex = 17;
+ this.btnDeleteQuery.Text = "Delete Query";
+ this.btnDeleteQuery.Click += new System.EventHandler(this.btnCheckMeasData_Click);
+ //
+ // btnCreateNewDb
+ //
+ this.btnCreateNewDb.Location = new System.Drawing.Point(867, 197);
+ this.btnCreateNewDb.Name = "btnCreateNewDb";
+ this.btnCreateNewDb.Size = new System.Drawing.Size(120, 28);
+ this.btnCreateNewDb.StyleController = this.layoutControl1;
+ this.btnCreateNewDb.TabIndex = 16;
+ this.btnCreateNewDb.Text = "Create New DB";
+ this.btnCreateNewDb.Click += new System.EventHandler(this.btnCreateNewDb_Click);
+ //
+ // btnCheckGroupData
+ //
+ this.btnCheckGroupData.Location = new System.Drawing.Point(740, 197);
+ this.btnCheckGroupData.Name = "btnCheckGroupData";
+ this.btnCheckGroupData.Size = new System.Drawing.Size(123, 28);
+ this.btnCheckGroupData.StyleController = this.layoutControl1;
+ this.btnCheckGroupData.TabIndex = 15;
+ this.btnCheckGroupData.Text = "Select All";
+ this.btnCheckGroupData.Click += new System.EventHandler(this.btnCheckGroupData_Click);
+ //
+ // cbResultList
+ //
+ this.cbResultList.Location = new System.Drawing.Point(237, 265);
+ this.cbResultList.Name = "cbResultList";
+ this.cbResultList.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.cbResultList.Properties.Appearance.Options.UseFont = true;
+ this.cbResultList.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+ new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+ this.cbResultList.Size = new System.Drawing.Size(161, 22);
+ this.cbResultList.StyleController = this.layoutControl1;
+ this.cbResultList.TabIndex = 14;
+ this.cbResultList.SelectedIndexChanged += new System.EventHandler(this.cbResultList_SelectedIndexChanged);
+ //
+ // cbLotNo
+ //
+ this.cbLotNo.Location = new System.Drawing.Point(805, 147);
+ this.cbLotNo.Name = "cbLotNo";
+ this.cbLotNo.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+ new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+ this.cbLotNo.Size = new System.Drawing.Size(182, 20);
+ this.cbLotNo.StyleController = this.layoutControl1;
+ this.cbLotNo.TabIndex = 13;
+ //
+ // btnExcuteTCell
+ //
+ this.btnExcuteTCell.Location = new System.Drawing.Point(740, 171);
+ this.btnExcuteTCell.Name = "btnExcuteTCell";
+ this.btnExcuteTCell.Size = new System.Drawing.Size(247, 22);
+ this.btnExcuteTCell.StyleController = this.layoutControl1;
+ this.btnExcuteTCell.TabIndex = 12;
+ this.btnExcuteTCell.Text = "SQL Excute";
+ this.btnExcuteTCell.Click += new System.EventHandler(this.btnExcuteTCell_Click);
+ //
+ // gbDbCommnad
+ //
+ this.gbDbCommnad.Controls.Add(this.layoutControl2);
+ this.gbDbCommnad.Location = new System.Drawing.Point(740, 38);
+ this.gbDbCommnad.Name = "gbDbCommnad";
+ this.gbDbCommnad.Size = new System.Drawing.Size(247, 105);
+ this.gbDbCommnad.TabIndex = 11;
+ this.gbDbCommnad.Text = "Management DB";
+ //
+ // layoutControl2
+ //
+ this.layoutControl2.Controls.Add(this.btnOpenSchema);
+ this.layoutControl2.Controls.Add(this.btnDbMerge);
+ this.layoutControl2.Controls.Add(this.btnQueryExcute);
+ this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl2.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl2.Name = "layoutControl2";
+ this.layoutControl2.Root = this.layoutControlGroup2;
+ this.layoutControl2.Size = new System.Drawing.Size(243, 80);
+ this.layoutControl2.TabIndex = 0;
+ this.layoutControl2.Text = "layoutControl2";
+ //
+ // btnOpenSchema
+ //
+ this.btnOpenSchema.Location = new System.Drawing.Point(3, 3);
+ this.btnOpenSchema.Name = "btnOpenSchema";
+ this.btnOpenSchema.Size = new System.Drawing.Size(237, 22);
+ this.btnOpenSchema.StyleController = this.layoutControl2;
+ this.btnOpenSchema.TabIndex = 8;
+ this.btnOpenSchema.Text = "Open Schema";
+ this.btnOpenSchema.Click += new System.EventHandler(this.btnOpenSchema_Click);
+ //
+ // btnDbMerge
+ //
+ this.btnDbMerge.Location = new System.Drawing.Point(3, 55);
+ this.btnDbMerge.Name = "btnDbMerge";
+ this.btnDbMerge.Size = new System.Drawing.Size(237, 22);
+ this.btnDbMerge.StyleController = this.layoutControl2;
+ this.btnDbMerge.TabIndex = 10;
+ this.btnDbMerge.Text = "BMS Data Merse";
+ this.btnDbMerge.Click += new System.EventHandler(this.btnBmsBmsDataMerse_Click);
+ //
+ // btnQueryExcute
+ //
+ this.btnQueryExcute.Location = new System.Drawing.Point(3, 29);
+ this.btnQueryExcute.Name = "btnQueryExcute";
+ this.btnQueryExcute.Size = new System.Drawing.Size(237, 22);
+ this.btnQueryExcute.StyleController = this.layoutControl2;
+ this.btnQueryExcute.TabIndex = 9;
+ this.btnQueryExcute.Text = "Query Excute";
+ this.btnQueryExcute.Click += new System.EventHandler(this.btnQueryExcute_Click);
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2";
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem5,
+ this.layoutControlItem6,
+ this.layoutControlItem7});
+ this.layoutControlGroup2.Name = "layoutControlGroup2";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(243, 80);
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.btnOpenSchema;
+ this.layoutControlItem5.CustomizationFormText = "layoutControlItem5";
+ this.layoutControlItem5.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(241, 26);
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.btnQueryExcute;
+ this.layoutControlItem6.CustomizationFormText = "layoutControlItem6";
+ this.layoutControlItem6.Location = new System.Drawing.Point(0, 26);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(241, 26);
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.btnDbMerge;
+ this.layoutControlItem7.CustomizationFormText = "layoutControlItem7";
+ this.layoutControlItem7.Location = new System.Drawing.Point(0, 52);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(241, 26);
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // tbSchema
+ //
+ this.tbSchema.Location = new System.Drawing.Point(12, 38);
+ this.tbSchema.Multiline = true;
+ this.tbSchema.Name = "tbSchema";
+ this.tbSchema.ScrollBars = System.Windows.Forms.ScrollBars.Both;
+ this.tbSchema.Size = new System.Drawing.Size(724, 223);
+ this.tbSchema.TabIndex = 7;
+ //
+ // gridCell
+ //
+ this.gridCell.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ this.gridCell.Location = new System.Drawing.Point(12, 291);
+ this.gridCell.Name = "gridCell";
+ this.gridCell.RowTemplate.Height = 23;
+ this.gridCell.Size = new System.Drawing.Size(975, 275);
+ this.gridCell.TabIndex = 6;
+ //
+ // btnFindFile
+ //
+ this.btnFindFile.Location = new System.Drawing.Point(712, 12);
+ this.btnFindFile.Name = "btnFindFile";
+ this.btnFindFile.Size = new System.Drawing.Size(89, 22);
+ this.btnFindFile.StyleController = this.layoutControl1;
+ this.btnFindFile.TabIndex = 5;
+ this.btnFindFile.Text = "Excel File ....";
+ this.btnFindFile.Click += new System.EventHandler(this.btnFindFile_Click);
+ //
+ // edFileName
+ //
+ this.edFileName.Location = new System.Drawing.Point(89, 12);
+ this.edFileName.Name = "edFileName";
+ this.edFileName.Size = new System.Drawing.Size(619, 20);
+ this.edFileName.StyleController = this.layoutControl1;
+ this.edFileName.TabIndex = 4;
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1,
+ this.layoutControlItem2,
+ this.emptySpaceItem1,
+ this.layoutControlItem3,
+ this.layoutControlItem4,
+ this.layoutControlItem8,
+ this.layoutControlItem9,
+ this.lcitemLot,
+ this.layoutControlItem10,
+ this.emptySpaceItem2,
+ this.layoutControlItem11,
+ this.layoutControlItem12,
+ this.layoutControlItem13,
+ this.layoutControlItem14,
+ this.layoutControlItem15,
+ this.layoutControlItem16,
+ this.layoutControlItem18,
+ this.layoutControlItem17,
+ this.layoutControlItem19,
+ this.layoutControlItem20});
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Size = new System.Drawing.Size(999, 578);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.edFileName;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(162, 24);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(700, 26);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.Text = "File Name: ";
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(74, 14);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.btnFindFile;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(700, 0);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(93, 26);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1";
+ this.emptySpaceItem1.Location = new System.Drawing.Point(855, 217);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(30, 36);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.gridCell;
+ this.layoutControlItem3.CustomizationFormText = "layoutControlItem3";
+ this.layoutControlItem3.Location = new System.Drawing.Point(0, 279);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(104, 24);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(979, 279);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.tbSchema;
+ this.layoutControlItem4.CustomizationFormText = "layoutControlItem4";
+ this.layoutControlItem4.Location = new System.Drawing.Point(0, 26);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(132, 24);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(728, 227);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.gbDbCommnad;
+ this.layoutControlItem8.CustomizationFormText = "layoutControlItem8";
+ this.layoutControlItem8.Location = new System.Drawing.Point(728, 26);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(251, 109);
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem8.TextVisible = false;
+ //
+ // layoutControlItem9
+ //
+ this.layoutControlItem9.Control = this.btnExcuteTCell;
+ this.layoutControlItem9.CustomizationFormText = "layoutControlItem9";
+ this.layoutControlItem9.Location = new System.Drawing.Point(728, 159);
+ this.layoutControlItem9.Name = "layoutControlItem9";
+ this.layoutControlItem9.Size = new System.Drawing.Size(251, 26);
+ this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem9.TextVisible = false;
+ //
+ // lcitemLot
+ //
+ this.lcitemLot.Control = this.cbLotNo;
+ this.lcitemLot.CustomizationFormText = " Lot No";
+ this.lcitemLot.Location = new System.Drawing.Point(728, 135);
+ this.lcitemLot.Name = "lcitemLot";
+ this.lcitemLot.Size = new System.Drawing.Size(251, 24);
+ this.lcitemLot.Text = " Lot No";
+ this.lcitemLot.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemLot.TextSize = new System.Drawing.Size(60, 14);
+ this.lcitemLot.TextToControlDistance = 5;
+ //
+ // layoutControlItem10
+ //
+ this.layoutControlItem10.Control = this.cbResultList;
+ this.layoutControlItem10.CustomizationFormText = " Result List";
+ this.layoutControlItem10.Location = new System.Drawing.Point(140, 253);
+ this.layoutControlItem10.MaxSize = new System.Drawing.Size(0, 26);
+ this.layoutControlItem10.MinSize = new System.Drawing.Size(187, 26);
+ this.layoutControlItem10.Name = "layoutControlItem10";
+ this.layoutControlItem10.Size = new System.Drawing.Size(250, 26);
+ this.layoutControlItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem10.Text = " Result List";
+ this.layoutControlItem10.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem10.TextSize = new System.Drawing.Size(80, 14);
+ this.layoutControlItem10.TextToControlDistance = 5;
+ //
+ // emptySpaceItem2
+ //
+ this.emptySpaceItem2.AllowHotTrack = false;
+ this.emptySpaceItem2.CustomizationFormText = "emptySpaceItem2";
+ this.emptySpaceItem2.Location = new System.Drawing.Point(483, 253);
+ this.emptySpaceItem2.Name = "emptySpaceItem2";
+ this.emptySpaceItem2.Size = new System.Drawing.Size(109, 26);
+ this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem11
+ //
+ this.layoutControlItem11.Control = this.btnCheckGroupData;
+ this.layoutControlItem11.CustomizationFormText = "layoutControlItem11";
+ this.layoutControlItem11.Location = new System.Drawing.Point(728, 185);
+ this.layoutControlItem11.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem11.Name = "layoutControlItem11";
+ this.layoutControlItem11.Size = new System.Drawing.Size(127, 32);
+ this.layoutControlItem11.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem11.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem11.TextVisible = false;
+ //
+ // layoutControlItem12
+ //
+ this.layoutControlItem12.Control = this.btnCreateNewDb;
+ this.layoutControlItem12.CustomizationFormText = "layoutControlItem12";
+ this.layoutControlItem12.Location = new System.Drawing.Point(855, 185);
+ this.layoutControlItem12.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem12.Name = "layoutControlItem12";
+ this.layoutControlItem12.Size = new System.Drawing.Size(124, 32);
+ this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem12.TextVisible = false;
+ //
+ // layoutControlItem13
+ //
+ this.layoutControlItem13.Control = this.btnDeleteQuery;
+ this.layoutControlItem13.CustomizationFormText = "layoutControlItem13";
+ this.layoutControlItem13.Location = new System.Drawing.Point(728, 217);
+ this.layoutControlItem13.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem13.Name = "layoutControlItem13";
+ this.layoutControlItem13.Size = new System.Drawing.Size(127, 36);
+ this.layoutControlItem13.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem13.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem13.TextVisible = false;
+ //
+ // layoutControlItem14
+ //
+ this.layoutControlItem14.Control = this.btnOutputAll;
+ this.layoutControlItem14.CustomizationFormText = "layoutControlItem14";
+ this.layoutControlItem14.Location = new System.Drawing.Point(885, 217);
+ this.layoutControlItem14.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem14.Name = "layoutControlItem14";
+ this.layoutControlItem14.Size = new System.Drawing.Size(94, 36);
+ this.layoutControlItem14.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem14.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem14.TextVisible = false;
+ //
+ // layoutControlItem15
+ //
+ this.layoutControlItem15.Control = this.btnSearchPcbSn;
+ this.layoutControlItem15.CustomizationFormText = "layoutControlItem15";
+ this.layoutControlItem15.Location = new System.Drawing.Point(836, 253);
+ this.layoutControlItem15.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem15.Name = "layoutControlItem15";
+ this.layoutControlItem15.Size = new System.Drawing.Size(143, 26);
+ this.layoutControlItem15.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem15.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem15.TextVisible = false;
+ //
+ // layoutControlItem16
+ //
+ this.layoutControlItem16.Control = this.btnResultListClear;
+ this.layoutControlItem16.CustomizationFormText = "layoutControlItem16";
+ this.layoutControlItem16.Location = new System.Drawing.Point(390, 253);
+ this.layoutControlItem16.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem16.Name = "layoutControlItem16";
+ this.layoutControlItem16.Size = new System.Drawing.Size(93, 26);
+ this.layoutControlItem16.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem16.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem16.TextVisible = false;
+ //
+ // layoutControlItem18
+ //
+ this.layoutControlItem18.Control = this.btnOpenDbFolder;
+ this.layoutControlItem18.CustomizationFormText = "layoutControlItem18";
+ this.layoutControlItem18.Location = new System.Drawing.Point(882, 0);
+ this.layoutControlItem18.Name = "layoutControlItem18";
+ this.layoutControlItem18.Size = new System.Drawing.Size(97, 26);
+ this.layoutControlItem18.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem18.TextVisible = false;
+ //
+ // layoutControlItem17
+ //
+ this.layoutControlItem17.Control = this.edResultCount;
+ this.layoutControlItem17.CustomizationFormText = "layoutControlItem17";
+ this.layoutControlItem17.Location = new System.Drawing.Point(0, 253);
+ this.layoutControlItem17.MinSize = new System.Drawing.Size(54, 24);
+ this.layoutControlItem17.Name = "layoutControlItem17";
+ this.layoutControlItem17.Size = new System.Drawing.Size(140, 26);
+ this.layoutControlItem17.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem17.Text = "Result Count ";
+ this.layoutControlItem17.TextSize = new System.Drawing.Size(74, 14);
+ //
+ // layoutControlItem19
+ //
+ this.layoutControlItem19.Control = this.tbPcbSn;
+ this.layoutControlItem19.CustomizationFormText = "PCB SN";
+ this.layoutControlItem19.Location = new System.Drawing.Point(592, 253);
+ this.layoutControlItem19.MinSize = new System.Drawing.Size(131, 24);
+ this.layoutControlItem19.Name = "layoutControlItem19";
+ this.layoutControlItem19.Size = new System.Drawing.Size(244, 26);
+ this.layoutControlItem19.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem19.Text = "PCB SN";
+ this.layoutControlItem19.TextSize = new System.Drawing.Size(74, 14);
+ //
+ // openFileDialog1
+ //
+ this.openFileDialog1.FileName = "openFileDialog1";
+ //
+ // btnDbFileFind
+ //
+ this.btnDbFileFind.Location = new System.Drawing.Point(805, 12);
+ this.btnDbFileFind.Name = "btnDbFileFind";
+ this.btnDbFileFind.Size = new System.Drawing.Size(85, 22);
+ this.btnDbFileFind.StyleController = this.layoutControl1;
+ this.btnDbFileFind.TabIndex = 24;
+ this.btnDbFileFind.Text = "DB Files ...";
+ this.btnDbFileFind.Click += new System.EventHandler(this.btnDbFileFind_Click);
+ //
+ // layoutControlItem20
+ //
+ this.layoutControlItem20.Control = this.btnDbFileFind;
+ this.layoutControlItem20.Location = new System.Drawing.Point(793, 0);
+ this.layoutControlItem20.Name = "layoutControlItem20";
+ this.layoutControlItem20.Size = new System.Drawing.Size(89, 26);
+ this.layoutControlItem20.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem20.TextVisible = false;
+ //
+ // fmxExcelFile
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(999, 578);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxExcelFile.IconOptions.Icon")));
+ this.Name = "fmxExcelFile";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Database Control";
+ this.Load += new System.EventHandler(this.fmxExcelFile_Load);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.tbPcbSn.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edResultCount.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.cbResultList.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.cbLotNo.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbDbCommnad)).EndInit();
+ this.gbDbCommnad.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit();
+ this.layoutControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gridCell)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edFileName.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemLot)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem18)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem17)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.SimpleButton btnFindFile;
+ private DevExpress.XtraEditors.TextEdit edFileName;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private System.Windows.Forms.DataGridView gridCell;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private System.Windows.Forms.TextBox tbSchema;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraEditors.SimpleButton btnOpenSchema;
+ private DevExpress.XtraEditors.SimpleButton btnQueryExcute;
+ private DevExpress.XtraEditors.GroupControl gbDbCommnad;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ private DevExpress.XtraLayout.LayoutControl layoutControl2;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraEditors.SimpleButton btnExcuteTCell;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
+ private DevExpress.XtraEditors.ComboBoxEdit cbLotNo;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemLot;
+ private DevExpress.XtraEditors.ComboBoxEdit cbResultList;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+ private DevExpress.XtraEditors.SimpleButton btnCheckGroupData;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11;
+ private DevExpress.XtraEditors.SimpleButton btnCreateNewDb;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12;
+ private DevExpress.XtraEditors.SimpleButton btnDeleteQuery;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13;
+ private DevExpress.XtraEditors.SimpleButton btnOutputAll;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem14;
+ private DevExpress.XtraEditors.SimpleButton btnSearchPcbSn;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem15;
+ private DevExpress.XtraEditors.SimpleButton btnResultListClear;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem16;
+ private DevExpress.XtraEditors.TextEdit edResultCount;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem17;
+ private DevExpress.XtraEditors.SimpleButton btnOpenDbFolder;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem18;
+ private DevExpress.XtraEditors.TextEdit tbPcbSn;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem19;
+ private DevExpress.XtraEditors.SimpleButton btnDbMerge;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private System.Windows.Forms.OpenFileDialog openFileDialog1;
+ private DevExpress.XtraEditors.SimpleButton btnDbFileFind;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem20;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxExcelFile.cs b/LFP_Manager/Forms/fmxExcelFile.cs
new file mode 100644
index 0000000..25700d4
--- /dev/null
+++ b/LFP_Manager/Forms/fmxExcelFile.cs
@@ -0,0 +1,363 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+using System.Data.SQLite;
+
+using System.IO;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Utils;
+
+namespace LFP_Manager
+{
+ public partial class fmxExcelFile : DevExpress.XtraEditors.XtraForm
+ {
+ #region VARIABLES
+
+ string[] dbFiles;
+ //private string Excel03ConString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1}'";
+ //private string Excel07ConString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1}'";
+ //Workbook workbook;
+ DataSet dsCell;
+ DataTable dtCell;
+
+ CommConfig Config;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public fmxExcelFile(CommConfig aConfig)
+ {
+ InitializeComponent();
+
+ Config = aConfig;
+ //tbSchema.Text = "select * from TInventoryData" + "\r\n" + "where pcb_sn like 'BMU18SA20120169%'";
+ }
+
+ #endregion
+
+ #region FORM EVENT
+ private void fmxExcelFile_Load(object sender, EventArgs e)
+ {
+ string dbfilePath = Path.GetDirectoryName(Application.ExecutablePath) + @"\db";
+ dbFiles = Directory.GetFiles(dbfilePath, "*.db", SearchOption.AllDirectories);
+
+ if (dbFiles.Length > 0)
+ {
+ for (int i = 0; i < dbFiles.Length; i++)
+ {
+ cbLotNo.Properties.Items.Add(Path.GetFileName(dbFiles[i]));
+ }
+ cbLotNo.SelectedIndex = 0;
+ }
+ }
+ #endregion
+
+ // Copy Table Value
+ // INSERT INTO TModuleResultBak SELECT * FROM TModuleResult
+ // INSERT INTO [TModuleBmsBak] (sn, result, module_ocv_b) SELECT sn, result, module_ocv_b FROM TModuleBms
+
+ #region BUTTON EVENT
+ private void btnFindFile_Click(object sender, EventArgs e)
+ {
+ OpenFileDialog oDialog = new OpenFileDialog();
+ oDialog.DefaultExt = "*.*";
+ oDialog.Filter = "excel files 2003 (*.xls)|*.xls|excel files 2007 (*.xlsx)|*.xlsx|All files (*.*)|*.*";
+
+ if (oDialog.ShowDialog() == DialogResult.OK)
+ {
+ edFileName.Text = oDialog.FileName;
+
+ try
+ {
+ dsCell = csExcelControl.OpenExcelDB(edFileName.Text);
+
+ cbResultList.Properties.Items.Clear();
+ for (int i = 0; i < dsCell.Tables.Count; i++)
+ {
+ cbResultList.Properties.Items.Add(dsCell.Tables[i].TableName);
+ }
+ cbResultList.SelectedIndex = 0;
+
+ dtCell = dsCell.Tables[0];
+
+ gridCell.DataSource = dtCell;
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+
+ private void btnDbFileFind_Click(object sender, EventArgs e)
+ {
+ OpenFileDialog oDialog = new OpenFileDialog();
+ oDialog.DefaultExt = "*.*";
+ oDialog.Filter = "db files (*.db)|*.db|All files (*.*)|*.*";
+
+ if (oDialog.ShowDialog() == DialogResult.OK)
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+
+ edFileName.Text = oDialog.FileName;
+
+ try
+ {
+ WaitForm.Show();
+
+ int count = 0;
+ DateTime bakTime = new DateTime();
+ DataTable dtRD = new DataTable();
+ DataTable dtWR = new DataTable();
+ if (csDbUtils.DbQuaryExcuteToDataTable(edFileName.Text, "select * from TModuleValue", ref dtRD) > 0)
+ {
+ string dbfilepath = Path.GetDirectoryName(edFileName.Text);
+ string dbfilename_new = dbfilepath + @"\" + Path.GetFileNameWithoutExtension(edFileName.Text) + @"_new.db";
+ csDbUtils.CreateLogDbFile(dbfilename_new);
+
+ foreach (DataRow aRow in dtRD.Rows)
+ {
+ DateTime bTime = Convert.ToDateTime(String.Format("{0:yyyy/MM/dd HH:mm:ss}", aRow["create_date"]));
+ if (bakTime != bTime)
+ {
+ csDbUtils.DbInsertDataToDbFile(dbfilename_new, aRow);
+ bakTime = bTime;
+ }
+ //aRow["create_date"] = String.Format("{0:yyyy/MM/dd HH:mm:ss}", aRow["create_date"]);
+
+ WaitForm.SetDescription(String.Format("{0}//{1}", count, dtRD.Rows.Count));
+ Application.DoEvents();
+ count++;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ finally
+ {
+ if (WaitForm != null)
+ WaitForm.Close();
+ }
+ }
+ }
+
+ private void btnExcuteTCell_Click(object sender, EventArgs e)
+ {
+ if (tbSchema.Text != string.Empty)
+ {
+ try
+ {
+ //string path = cbLotNo.Text.Substring(0, 9);
+ //string path = cbLotNo.Text;
+ string path = dbFiles[cbLotNo.SelectedIndex];
+ DataTable aaa = csDbUtils.DbSqlExcuteA3(path, tbSchema.Text);
+ if (aaa != null)
+ {
+ gridCell.DataSource = aaa;
+ edResultCount.Text = String.Format("{0}", aaa.Rows.Count);
+
+ if (aaa.Rows.Count > 0)
+ {
+ var ddd = aaa.Rows[0]["module_sn"];
+ byte[] ccc = Encoding.UTF8.GetBytes(ddd.ToString());
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ }
+ }
+
+ private void btnOpenSchema_Click(object sender, EventArgs e)
+ {
+ OpenFileDialog oDialog = new OpenFileDialog();
+ oDialog.DefaultExt = "*.*";
+ oDialog.Filter = "sql files (*.sql)|*.sql|All files (*.*)|*.*";
+
+ if (oDialog.ShowDialog() == DialogResult.OK)
+ {
+ string text = System.IO.File.ReadAllText(oDialog.FileName);
+ tbSchema.Text = text;
+ }
+ }
+
+ private void btnQueryExcute_Click(object sender, EventArgs e)
+ {
+ if (tbSchema.Text != string.Empty)
+ {
+ gridCell.DataSource = csDbUtils.DbSqlExcuteA(Application.ExecutablePath, tbSchema.Text, "mBMS_16S");
+ }
+ }
+
+ private void btnInsertDbByTable_Click(object sender, EventArgs e)
+ {
+ }
+
+ private void btnCheckGroupData_Click(object sender, EventArgs e)
+ {
+ tbSchema.Text = "select * from TInventoryData";
+ }
+
+ private void btnCreateNewDb_Click(object sender, EventArgs e)
+ {
+ string ModelName;
+
+ ModelName = csConstData.UART_MODEL[Config.UartModelIndex];
+
+ csDbUtils.LogDbCreateNew(ModelName);
+ }
+
+ private void btnCheckMeasData_Click(object sender, EventArgs e)
+ {
+ tbSchema.Text = "delete from TInventoryData where pcb_sn=''";
+ }
+ private void btnOutputAll_Click(object sender, EventArgs e)
+ {
+ if (cbResultList.Properties.Items.Count > 0)
+ {
+ for (int i = 0; i < cbResultList.Properties.Items.Count; i++)
+ {
+ string sn = cbResultList.Properties.Items[i].ToString();
+ MakeOutpuDataExcel(sn, cbLotNo.Text);
+ }
+ }
+ }
+ private void btnModuleResult_Click(object sender, EventArgs e)
+ {
+ //
+ try
+ {
+ string dbFilePath = dbFiles[cbLotNo.SelectedIndex];
+ string sql = String.Format("SELECT * FROM TInventoryData")
+ + String.Format(" where pcb_sn like '{0}%'", tbPcbSn.Text)
+ ;
+ DataTable dtBmsData = csDbUtils.DbSqlExcuteA3(dbFilePath, sql);
+ dtBmsData.TableName = "TInventoryData";
+
+ if ((dtBmsData != null) && (dtBmsData.Rows.Count > 0))
+ {
+ cbResultList.Properties.Items.Clear();
+
+ for (int i = 0; i < dtBmsData.Rows.Count; i++)
+ {
+ cbResultList.Properties.Items.Add(String.Format("{0}", dtBmsData.Rows[i]["pcb_sn"]));
+ }
+ gridCell.DataSource = dtBmsData;
+ edResultCount.Text = dtBmsData.Rows.Count.ToString();
+ cbResultList.SelectedIndex = 0;
+ }
+ else
+ {
+ MessageBox.Show(String.Format("No TModuleResult data - {0}", dbFilePath));
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message);
+ }
+ }
+ private void btnResultListClear_Click(object sender, EventArgs e)
+ {
+ cbResultList.Properties.Items.Clear();
+ }
+
+ private void btnBmsBmsDataMerse_Click(object sender, EventArgs e)
+ {
+ }
+
+ private void btnOpenDbFolder_Click(object sender, EventArgs e)
+ {
+ System.Diagnostics.Process ps = new System.Diagnostics.Process();
+ ps.StartInfo.FileName = "explorer.exe";
+ ps.StartInfo.Arguments = csLog.GetDbFolder(Application.ExecutablePath);
+ ps.StartInfo.WorkingDirectory = csLog.GetDbFolder(Application.ExecutablePath);
+ ps.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
+
+ ps.Start();
+ }
+ #endregion
+
+ #region COMPONENT EVETNT
+ private void cbResultList_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ string tbName = "";
+ tbName = cbResultList.Text;
+
+ if ((dtCell != null) && (dtCell.Rows.Count > 0))
+ {
+ if (tbName != "")
+ {
+ int index = cbResultList.SelectedIndex;
+ dtCell = dsCell.Tables[index];
+ gridCell.DataSource = dtCell;
+ }
+ }
+ }
+ #endregion
+
+ #region MAKE OUTPUT FUNCTION
+ private void MakeOutpuDataExcel(string mSN, string dbFile)
+ {
+ DateTime aDate = DateTime.Now;
+ string filename = String.Format("{0}_PR_57150.xls", mSN);
+ string filepath =
+ Path.GetDirectoryName(Application.ExecutablePath)
+ + String.Format(@"\output\{0}\", csDbUtils.MakeLotNumber(mSN))
+ + filename;
+
+ DataTable dtModuleResult = new DataTable();
+ DataTable dtCellResult = new DataTable();
+
+ string sql;
+ sql = String.Format("SELECT * FROM TModuleResult where m_sn = {0}", mSN);
+ dtModuleResult = csDbUtils.GetDataTableBySelectFromDbName(dbFile, sql, "TModuleResult", "mBMS-16S");
+ dtModuleResult.TableName = "TModuleResult";
+ dtModuleResult.AcceptChanges();
+
+ sql = String.Format("SELECT * FROM TCellResult where m_sn = {0}", mSN);
+ dtCellResult = csDbUtils.GetDataTableBySelectFromDbName(dbFile, sql, "TCellResult", "mBMS-16S");
+ dtCellResult.TableName = "TCellResult";
+ dtCellResult.AcceptChanges();
+
+ if (dtModuleResult.Rows.Count == 0) throw new Exception(String.Format("No ModuleResult data ({0})", mSN));
+ if (dtCellResult.Rows.Count == 0) throw new Exception(String.Format("No CellResult data ({0})", mSN));
+
+ csExcelExport.ExportToExcel(dtModuleResult, filepath);
+ csExcelExport.ExportToExcel(dtCellResult, filepath, false);
+ }
+
+ private DataTable GetModuleResultTable(string dbFileName)
+ {
+ DateTime aDate = DateTime.Now;
+
+ DataTable dtModuleResult = new DataTable();
+
+ string sql;
+ sql = String.Format("SELECT * FROM TModuleResult");
+ dtModuleResult = csDbUtils.GetDataTableBySelectFromDbName(dbFileName, sql, "TModuleResult", "mBMS-16S");
+ dtModuleResult.TableName = "TModuleResult";
+ dtModuleResult.AcceptChanges();
+
+ if (dtModuleResult.Rows.Count == 0) throw new Exception(String.Format("No ModuleResult data ({0})", dbFileName));
+
+ return dtModuleResult;
+ }
+
+ #endregion
+
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxExcelFile.resx b/LFP_Manager/Forms/fmxExcelFile.resx
new file mode 100644
index 0000000..ed11552
--- /dev/null
+++ b/LFP_Manager/Forms/fmxExcelFile.resx
@@ -0,0 +1,4574 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+
+ AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA
+ GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/
+ ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7/////////////////////
+ ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff/////////
+ ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+
+ /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7/////
+ ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc
+ x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7/////////////////////////////
+ ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt
+ e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP
+ SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7/////////
+ ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z
+ WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS
+ Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8
+ +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+
+ /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+
+ /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO
+ SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz
+ 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o
+ 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9
+ /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE
+ oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG
+ PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7/////
+ ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH
+ PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t
+ 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/
+ ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/
+ ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7/////////////////////////////
+ ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+
+ /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ
+ TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7/////////////////
+ ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ
+ TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+
+ /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7/////
+ ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP
+ SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7/////////////////////////////////////////
+ ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/
+ ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7/////////////////////////////
+ ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/
+ ///+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////+/v7////////+/v3////////////////////////+/v3////////+/v7/////////////////
+ ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7/////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ /////////v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v7////////+/v7/////////////////////////////////////
+ ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7/////////////////////
+ ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7
+ +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9
+ /Pz+/v7/////////////////////////////////////////////////////////////////////////
+ ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM
+ RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7/////////////////////////////////////
+ ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL
+ QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+
+ /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP
+ SgCOSQCPTAKFOwDVvaT////9/Pv+/v7/////////////////////////////////////////////////
+ ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8
+ +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7/////////
+ /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO
+ SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF
+ OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+
+ ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/
+ //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7/////////////////////////
+ ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/
+ mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79
+ /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN
+ RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ
+ TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7/////
+ ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7/////
+ ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+
+ /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ
+ TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP
+ SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH
+ PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/
+ ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5
+ 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+
+ /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ
+ QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE
+ oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/
+ ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7/////////////////////////
+ ///////////////////////////////////////////////////////+/v7+////////////////////
+ ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+
+ /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9
+ /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP
+ SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL
+ RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7/////////////////////////////////
+ ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/
+ ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7/////////
+ ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP
+ SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI
+ PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/
+ ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x
+ glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7/////////////////////////////
+ ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM
+ RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+
+ /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/
+ ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP
+ SgCOSgGLRQGTURDz7ef+/v39/f3+/v7/////////////////////////////////////////////////
+ ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+
+ /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7/////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN
+ RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9
+ /fz9/f3+/v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO
+ SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7/////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO
+ SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS
+ UA/y6+X+/v39/fz+/v7+/v7/////////////////////////////////////////////////////////
+ ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP
+ SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7/////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+
+ /v7/////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO
+ SQCOSQGJQQDi0cD////9/Pv+/v7/////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J
+ QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7/////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39
+ /fz+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz
+ hFazhFayhFazhVete1TWvqb////9/fz+/v7/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+
+ /f3+/f3/////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v7+////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////v7+
+ /f39////////////////////////////////////////////////////////////////////////////
+ ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39
+ /fz8/v79/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA
+ nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1////
+ x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV
+ i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC
+ jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC
+ hz8Ap3I//fz7/fz8/v79/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7
+ /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8
+ +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p
+ /v39/f38/v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+
+ ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb
+ 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+//7+/f39
+ /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7////
+ 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+
+ /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA
+ j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB
+ j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB
+ i0UAlVYZ8+3m/f79/f38/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+////////////////
+ /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39
+ /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+
+ sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+
+ /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+////////
+ /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+
+ /f39/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO
+ /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39
+ 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39
+ /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+////////////////////////////
+ /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+////
+ /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A
+ kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ jkoCikIC4tHA/////Pv7/v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC
+ hz4A1r6m/////Pz7/v7+/v7+/////v7+////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+
+ /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+////////////////////
+ /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM
+ /////Pv6/v7+/v7+/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA
+ j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+
+ /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7
+ /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq////
+ /Pv6/v7+/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A
+ j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA
+ kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA
+ j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6
+ /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+////////
+ /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+
+ /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA
+ xaJ//////Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU
+ /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA
+ j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+////////////
+ 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+
+ /////v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39
+ /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/
+ /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6
+ ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+
+ /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC
+ kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB
+ kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39////
+ /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA
+ hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA
+ iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A
+ j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU
+ z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+////////
+ /v7+/////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7//v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn
+ +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3
+ +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8
+ /fz8/v7+/////v7+/////v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v///v7+/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT
+ z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7
+ ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A
+ hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A
+ fS0AtIdb/f38/Pz8///+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D
+ kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL
+ jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA
+ jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3
+ iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA
+ jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA
+ jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK
+ 6t7S/v7+/fz8/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs////
+ /Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7
+ /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38
+ /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fz8
+ /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+////////////////////////////////////
+ /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+
+ /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA
+ jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A
+ pnA8/Pv6/fz7/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq
+ iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+
+ /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+////////////
+ /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+
+ //7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A
+ 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES
+ jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+////////////////
+ /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6
+ /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7
+ /v79/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v39
+ /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8
+ +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+
+ /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ
+ hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ
+ 8+3m/f39/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+
+ /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA
+ jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA
+ u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA
+ j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA
+ jkkCikQE49PC/v7//fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8
+ /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+
+ /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7////
+ t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA
+ jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU
+ hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD
+ /////fz8//7//v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA
+ oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC
+ hj0Az7SX/////fz7//7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+//7+
+ /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH
+ jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA
+ jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT////
+ /Pz8/v7//v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA
+ t4tf/////fz7/v7+/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs
+ mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6
+ /v7+/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v7+
+ /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx
+ +/n3/fz8/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+
+ rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA
+ jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW
+ k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV
+ kU8TmVoj8ejg/v39/fz7/v7//f39/v//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off
+ 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v////7+/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v39/v7+
+ ///+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/v//////
+ /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v79/////////v7+/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v79/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////9/Lt9/Pu
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2svnmMrzrGR/////fz7////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ
+ /v39/fz8/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h
+ /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0////
+ 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC
+ j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ jUgBlFIO7uTa/////f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB
+ jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+
+ /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38////////////////////
+ /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z
+ iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+
+ sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG////
+ /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ hz4Ar35J/v39/fz8/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+////////
+ /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38////////////////////////////////
+ /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+////////////////////////////////////////////
+ /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA
+ /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW
+ k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+
+ /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+////////////////////
+ /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iEAA176j/////fz7////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39////////////////////////////////////////////
+ ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38
+ /fz8/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEA1buf/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+////////////
+ /////////////////////////////////////////////////////////////////////fz7////yKaB
+ hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v///f38////sH9K
+ hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oBi0QAnmIj9vHs/v39/v39////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA
+ nWAf9vHs/v7+/v79////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo////
+ /fz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v///f38////
+ 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/v79+/n3omor
+ ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm
+ +PTw/v39/f39////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sBjEUAmVwb9e/p/v7+/f38////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A
+ vpVq/////fz7/v/+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8AyKaB/////fz7/v///v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39
+ //7/////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC
+ jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsCiD8Auo9h/////fz8/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE
+ iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB
+ 4tC+/////f38/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjUcBk1EN7+Xb/////f39/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj
+ n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f38////u5Jlhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkBjUgE4M66/////fz7/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR
+ 7+bd/v7+/f39////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv
+ +/n4/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0
+ rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6
+ ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC
+ hz4AtolZ/////fz8/v3+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA
+ j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ j0sBikIApGww+vj1/v39/f39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ
+ j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M
+ /////Pz7/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkCjkkG4c+7/////fz7/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+///+/v39
+ /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d////
+ /fz7/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/f38/f38
+ 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A
+ jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sBiD8AyKiE/////fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oBiUEApW4z+vj1/v39/v39////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ
+ /v7+/f38/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4
+ 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD
+ 49PB/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/Pz7////
+ 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6////
+ /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A
+ j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC
+ iUEAqHQ7+/j2/fz8/v39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jUgBkk8K7ODV/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL////
+ /f38/v7+///+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6////////
+ ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A
+ ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38
+ /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBiUEA1Lqd/////fv6////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38
+ sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////v7+/v39
+ /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq
+ 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38
+ /v39/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjUgBkU4J6NrM/////fz8////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA
+ jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEArnxG/v7+/f38/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO
+ 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i////
+ /Pz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA
+ hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr
+ vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g
+ 4M24/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY
+ llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+////////////////////////////
+ /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsCiUEArXpD/v7//f39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB
+ ikMA1bqf/////fz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39
+ /f38/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39
+ /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/////////v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI
+ iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8////
+ /fz8////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA
+ mVsZ8+zl/v38/fz8////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7
+ /v7+//7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz7/v7+
+ 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf
+ 9vHs/v79/fz8////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z
+ iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAi0YAl1gT8+3l/v7+/f39////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA
+ upFj/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC
+ hz4AwZty/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////f39
+ /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC
+ jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ
+ hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsChz4At4ta/////fz8/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjUgCkEwL6dzO/////fz7////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD
+ 38y3/////fz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v/+/f39/v79
+ +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////fz8
+ /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A
+ kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK
+ 5tbG/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBjUcB4M25/////f38/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos
+ +PTw/fz8/f39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v//////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA
+ kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB
+ iUAAq3dA/Pr4/fz7/f39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v///fz7
+ ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA
+ j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0oBikMAomgq+vf0/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////Pz7////4M24
+ i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiUEA0rea/////fz7/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7
+ /v38/v39/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////f38/v79
+ +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/f38
+ ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ kEwChz4AxaJ8/////fz7/v7+////////////////////////////////////////////////////////
+ ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA
+ 07mb/////Pz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU
+ /v7+/Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+////
+ //////////////////////////////////////////////////////////////////////////////7/
+ /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7/////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+////////////////////////////
+ /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jEQAm10b9O/p/v7+/f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+////////////////////////////////////////
+ /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7
+ /v7//v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jUgAklAK6dzO/////f38/v//////////////////////////////////////////////////////////
+ /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6
+ /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng
+ lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+
+ /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiD8Au5Jl/////fz8/v7+//7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+////////////////////
+ /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj
+ /v39/fz8/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+////////////////////////////
+ /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8
+ ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb////
+ /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A
+ upFj/////fz8/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+
+ /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7////////////////////////
+ /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf
+ llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA
+ kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkBjUcA49LA/////f38/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79
+ /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3
+ qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8////0baX
+ iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD
+ /////fz8/v//////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA
+ nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA
+ qHI4/Pv5/v39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+
+ iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ kEsChz8Az7KS/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7
+ /v39/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v39
+ /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////fz8////59jIj0oD
+ jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ
+ /////fz8////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB
+ llYW7+Xb/v7+/f38/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0wChz8AuIxc/v7+/fz7/v39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+
+ /v39/v//////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fv6
+ ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAjkkBjEYA4M24/////fz8/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa
+ /////f38////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v39/fz7
+ 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB
+ jUcE3sq2/////Pz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oBikMAomgq+fXy/v39/f39////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/fz7////
+ 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq
+ +vf1/f38/f39//7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39
+ tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS
+ yqqM38u2/////v79/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/v79////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v79/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxFwUpdate.Designer.cs b/LFP_Manager/Forms/fmxFwUpdate.Designer.cs
new file mode 100644
index 0000000..9855b6d
--- /dev/null
+++ b/LFP_Manager/Forms/fmxFwUpdate.Designer.cs
@@ -0,0 +1,643 @@
+namespace LFP_Manager
+{
+ partial class fmxFwUpdate
+ {
+ ///
+ /// 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(fmxFwUpdate));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnFlashWrite = new DevExpress.XtraEditors.SimpleButton();
+ this.btnFlashErase = new DevExpress.XtraEditors.SimpleButton();
+ this.btnGotoApp = new DevExpress.XtraEditors.SimpleButton();
+ this.btnGotoBoot = new DevExpress.XtraEditors.SimpleButton();
+ this.btnRestart = new DevExpress.XtraEditors.SimpleButton();
+ this.lbUpdateStatus = new DevExpress.XtraEditors.LabelControl();
+ this.lbUpdateProgress = new DevExpress.XtraEditors.LabelControl();
+ this.pgUpdate = new DevExpress.XtraEditors.ProgressBarControl();
+ this.lbUpdateTime = new DevExpress.XtraEditors.LabelControl();
+ this.lbFileInfo = new DevExpress.XtraEditors.LabelControl();
+ this.btnFwUpdate = new DevExpress.XtraEditors.SimpleButton();
+ this.btnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.btnFind = new DevExpress.XtraEditors.SimpleButton();
+ this.edFilename = new DevExpress.XtraEditors.TextEdit();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.emptySpaceItem4 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem3 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcItemGotoBoot = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem5 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.lcItemGotoApp = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem6 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.lcItemFlashErase = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcItemFlashWrite = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.edTargetID = new DevExpress.XtraEditors.TextEdit();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pgUpdate.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edFilename.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemGotoBoot)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemGotoApp)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemFlashErase)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemFlashWrite)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edTargetID.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.edTargetID);
+ this.layoutControl1.Controls.Add(this.btnFlashWrite);
+ this.layoutControl1.Controls.Add(this.btnFlashErase);
+ this.layoutControl1.Controls.Add(this.btnGotoApp);
+ this.layoutControl1.Controls.Add(this.btnGotoBoot);
+ this.layoutControl1.Controls.Add(this.btnRestart);
+ this.layoutControl1.Controls.Add(this.lbUpdateStatus);
+ this.layoutControl1.Controls.Add(this.lbUpdateProgress);
+ this.layoutControl1.Controls.Add(this.pgUpdate);
+ this.layoutControl1.Controls.Add(this.lbUpdateTime);
+ this.layoutControl1.Controls.Add(this.lbFileInfo);
+ this.layoutControl1.Controls.Add(this.btnFwUpdate);
+ this.layoutControl1.Controls.Add(this.btnClose);
+ this.layoutControl1.Controls.Add(this.btnFind);
+ this.layoutControl1.Controls.Add(this.edFilename);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1101, 240, 600, 492);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(736, 478);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // btnFlashWrite
+ //
+ this.btnFlashWrite.Location = new System.Drawing.Point(567, 153);
+ this.btnFlashWrite.Name = "btnFlashWrite";
+ this.btnFlashWrite.Size = new System.Drawing.Size(162, 22);
+ this.btnFlashWrite.StyleController = this.layoutControl1;
+ this.btnFlashWrite.TabIndex = 21;
+ this.btnFlashWrite.Text = "Flash Write";
+ this.btnFlashWrite.Click += new System.EventHandler(this.btnFlashWrite_Click);
+ //
+ // btnFlashErase
+ //
+ this.btnFlashErase.Location = new System.Drawing.Point(567, 127);
+ this.btnFlashErase.Name = "btnFlashErase";
+ this.btnFlashErase.Size = new System.Drawing.Size(162, 22);
+ this.btnFlashErase.StyleController = this.layoutControl1;
+ this.btnFlashErase.TabIndex = 20;
+ this.btnFlashErase.Text = "Flash Erase";
+ this.btnFlashErase.Click += new System.EventHandler(this.btnFlashErase_Click);
+ //
+ // btnGotoApp
+ //
+ this.btnGotoApp.Location = new System.Drawing.Point(567, 220);
+ this.btnGotoApp.Name = "btnGotoApp";
+ this.btnGotoApp.Size = new System.Drawing.Size(162, 22);
+ this.btnGotoApp.StyleController = this.layoutControl1;
+ this.btnGotoApp.TabIndex = 19;
+ this.btnGotoApp.Text = "Goto Application";
+ this.btnGotoApp.Click += new System.EventHandler(this.btnGotoApp_Click);
+ //
+ // btnGotoBoot
+ //
+ this.btnGotoBoot.Location = new System.Drawing.Point(567, 194);
+ this.btnGotoBoot.Name = "btnGotoBoot";
+ this.btnGotoBoot.Size = new System.Drawing.Size(162, 22);
+ this.btnGotoBoot.StyleController = this.layoutControl1;
+ this.btnGotoBoot.TabIndex = 18;
+ this.btnGotoBoot.Text = "Goto Bootloader";
+ this.btnGotoBoot.Click += new System.EventHandler(this.btnGotoBoot_Click);
+ //
+ // btnRestart
+ //
+ this.btnRestart.Location = new System.Drawing.Point(567, 273);
+ this.btnRestart.Name = "btnRestart";
+ this.btnRestart.Size = new System.Drawing.Size(162, 29);
+ this.btnRestart.StyleController = this.layoutControl1;
+ this.btnRestart.TabIndex = 17;
+ this.btnRestart.Text = "Restart";
+ //
+ // lbUpdateStatus
+ //
+ this.lbUpdateStatus.Location = new System.Drawing.Point(7, 335);
+ this.lbUpdateStatus.Name = "lbUpdateStatus";
+ this.lbUpdateStatus.Size = new System.Drawing.Size(526, 14);
+ this.lbUpdateStatus.StyleController = this.layoutControl1;
+ this.lbUpdateStatus.TabIndex = 16;
+ this.lbUpdateStatus.Text = "Update Status : ";
+ //
+ // lbUpdateProgress
+ //
+ this.lbUpdateProgress.Appearance.Options.UseTextOptions = true;
+ this.lbUpdateProgress.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.lbUpdateProgress.Location = new System.Drawing.Point(537, 353);
+ this.lbUpdateProgress.Name = "lbUpdateProgress";
+ this.lbUpdateProgress.Size = new System.Drawing.Size(192, 14);
+ this.lbUpdateProgress.StyleController = this.layoutControl1;
+ this.lbUpdateProgress.TabIndex = 15;
+ this.lbUpdateProgress.Text = "0/0 bytes";
+ //
+ // pgUpdate
+ //
+ this.pgUpdate.Location = new System.Drawing.Point(7, 371);
+ this.pgUpdate.Name = "pgUpdate";
+ this.pgUpdate.Size = new System.Drawing.Size(722, 39);
+ this.pgUpdate.StyleController = this.layoutControl1;
+ this.pgUpdate.TabIndex = 14;
+ //
+ // lbUpdateTime
+ //
+ this.lbUpdateTime.Location = new System.Drawing.Point(7, 353);
+ this.lbUpdateTime.Name = "lbUpdateTime";
+ this.lbUpdateTime.Size = new System.Drawing.Size(526, 14);
+ this.lbUpdateTime.StyleController = this.layoutControl1;
+ this.lbUpdateTime.TabIndex = 13;
+ this.lbUpdateTime.Text = "00:00";
+ //
+ // lbFileInfo
+ //
+ this.lbFileInfo.Appearance.Options.UseTextOptions = true;
+ this.lbFileInfo.Appearance.TextOptions.VAlignment = DevExpress.Utils.VertAlignment.Top;
+ this.lbFileInfo.Location = new System.Drawing.Point(7, 106);
+ this.lbFileInfo.Name = "lbFileInfo";
+ this.lbFileInfo.Size = new System.Drawing.Size(556, 196);
+ this.lbFileInfo.StyleController = this.layoutControl1;
+ this.lbFileInfo.TabIndex = 12;
+ this.lbFileInfo.Text = "File Information";
+ //
+ // btnFwUpdate
+ //
+ this.btnFwUpdate.Location = new System.Drawing.Point(567, 54);
+ this.btnFwUpdate.Name = "btnFwUpdate";
+ this.btnFwUpdate.Size = new System.Drawing.Size(162, 22);
+ this.btnFwUpdate.StyleController = this.layoutControl1;
+ this.btnFwUpdate.TabIndex = 8;
+ this.btnFwUpdate.Text = "Firmware Update";
+ this.btnFwUpdate.Click += new System.EventHandler(this.btnFwUpdate_Click);
+ //
+ // btnClose
+ //
+ this.btnClose.Location = new System.Drawing.Point(3, 418);
+ this.btnClose.Name = "btnClose";
+ this.btnClose.Size = new System.Drawing.Size(730, 57);
+ this.btnClose.StyleController = this.layoutControl1;
+ this.btnClose.TabIndex = 6;
+ this.btnClose.Text = "CLOSE";
+ this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+ //
+ // btnFind
+ //
+ this.btnFind.Location = new System.Drawing.Point(567, 28);
+ this.btnFind.Name = "btnFind";
+ this.btnFind.Size = new System.Drawing.Size(162, 22);
+ this.btnFind.StyleController = this.layoutControl1;
+ this.btnFind.TabIndex = 5;
+ this.btnFind.Text = "Find File...";
+ this.btnFind.Click += new System.EventHandler(this.btnFind_Click);
+ //
+ // edFilename
+ //
+ this.edFilename.Location = new System.Drawing.Point(87, 28);
+ this.edFilename.Name = "edFilename";
+ this.edFilename.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.edFilename.Properties.Appearance.Options.UseFont = true;
+ this.edFilename.Size = new System.Drawing.Size(476, 22);
+ this.edFilename.StyleController = this.layoutControl1;
+ this.edFilename.TabIndex = 4;
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem3,
+ this.layoutControlGroup2,
+ this.layoutControlGroup3});
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(736, 478);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.btnClose;
+ this.layoutControlItem3.CustomizationFormText = "layoutControlItem3";
+ this.layoutControlItem3.Location = new System.Drawing.Point(0, 415);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(734, 61);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem4,
+ this.layoutControlItem8,
+ this.emptySpaceItem1,
+ this.emptySpaceItem4,
+ this.layoutControlItem5,
+ this.emptySpaceItem3,
+ this.layoutControlItem2,
+ this.layoutControlItem1,
+ this.lcItemGotoBoot,
+ this.emptySpaceItem5,
+ this.lcItemGotoApp,
+ this.emptySpaceItem6,
+ this.lcItemFlashErase,
+ this.lcItemFlashWrite,
+ this.layoutControlItem6});
+ this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup2.Name = "layoutControlGroup2";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(734, 307);
+ this.layoutControlGroup2.Text = "Update Command";
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.btnRestart;
+ this.layoutControlItem4.CustomizationFormText = "layoutControlItem4";
+ this.layoutControlItem4.Location = new System.Drawing.Point(560, 245);
+ this.layoutControlItem4.MaxSize = new System.Drawing.Size(0, 33);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(93, 33);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(166, 33);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.lbFileInfo;
+ this.layoutControlItem8.CustomizationFormText = "layoutControlItem8";
+ this.layoutControlItem8.Location = new System.Drawing.Point(0, 78);
+ this.layoutControlItem8.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(560, 200);
+ this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem8.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1";
+ this.emptySpaceItem1.Location = new System.Drawing.Point(560, 218);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(166, 27);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // emptySpaceItem4
+ //
+ this.emptySpaceItem4.AllowHotTrack = false;
+ this.emptySpaceItem4.CustomizationFormText = "emptySpaceItem4";
+ this.emptySpaceItem4.Location = new System.Drawing.Point(0, 52);
+ this.emptySpaceItem4.Name = "emptySpaceItem4";
+ this.emptySpaceItem4.Size = new System.Drawing.Size(560, 26);
+ this.emptySpaceItem4.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.btnFwUpdate;
+ this.layoutControlItem5.CustomizationFormText = "layoutControlItem5";
+ this.layoutControlItem5.Location = new System.Drawing.Point(560, 26);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(108, 26);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(166, 26);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // emptySpaceItem3
+ //
+ this.emptySpaceItem3.AllowHotTrack = false;
+ this.emptySpaceItem3.CustomizationFormText = "emptySpaceItem3";
+ this.emptySpaceItem3.Location = new System.Drawing.Point(0, 26);
+ this.emptySpaceItem3.Name = "emptySpaceItem3";
+ this.emptySpaceItem3.Size = new System.Drawing.Size(405, 26);
+ this.emptySpaceItem3.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.btnFind;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(560, 0);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(166, 26);
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.edFilename;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(560, 26);
+ this.layoutControlItem1.Text = "File Name : ";
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(68, 14);
+ //
+ // lcItemGotoBoot
+ //
+ this.lcItemGotoBoot.Control = this.btnGotoBoot;
+ this.lcItemGotoBoot.Location = new System.Drawing.Point(560, 166);
+ this.lcItemGotoBoot.MinSize = new System.Drawing.Size(89, 26);
+ this.lcItemGotoBoot.Name = "lcItemGotoBoot";
+ this.lcItemGotoBoot.Size = new System.Drawing.Size(166, 26);
+ this.lcItemGotoBoot.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcItemGotoBoot.TextSize = new System.Drawing.Size(0, 0);
+ this.lcItemGotoBoot.TextVisible = false;
+ //
+ // emptySpaceItem5
+ //
+ this.emptySpaceItem5.AllowHotTrack = false;
+ this.emptySpaceItem5.Location = new System.Drawing.Point(560, 52);
+ this.emptySpaceItem5.MinSize = new System.Drawing.Size(166, 24);
+ this.emptySpaceItem5.Name = "emptySpaceItem5";
+ this.emptySpaceItem5.Size = new System.Drawing.Size(166, 47);
+ this.emptySpaceItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem5.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // lcItemGotoApp
+ //
+ this.lcItemGotoApp.Control = this.btnGotoApp;
+ this.lcItemGotoApp.Location = new System.Drawing.Point(560, 192);
+ this.lcItemGotoApp.MinSize = new System.Drawing.Size(89, 26);
+ this.lcItemGotoApp.Name = "lcItemGotoApp";
+ this.lcItemGotoApp.Size = new System.Drawing.Size(166, 26);
+ this.lcItemGotoApp.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcItemGotoApp.TextSize = new System.Drawing.Size(0, 0);
+ this.lcItemGotoApp.TextVisible = false;
+ this.lcItemGotoApp.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ //
+ // emptySpaceItem6
+ //
+ this.emptySpaceItem6.AllowHotTrack = false;
+ this.emptySpaceItem6.Location = new System.Drawing.Point(560, 151);
+ this.emptySpaceItem6.Name = "emptySpaceItem6";
+ this.emptySpaceItem6.Size = new System.Drawing.Size(166, 15);
+ this.emptySpaceItem6.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // lcItemFlashErase
+ //
+ this.lcItemFlashErase.Control = this.btnFlashErase;
+ this.lcItemFlashErase.Location = new System.Drawing.Point(560, 99);
+ this.lcItemFlashErase.MinSize = new System.Drawing.Size(101, 26);
+ this.lcItemFlashErase.Name = "lcItemFlashErase";
+ this.lcItemFlashErase.Size = new System.Drawing.Size(166, 26);
+ this.lcItemFlashErase.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcItemFlashErase.TextSize = new System.Drawing.Size(0, 0);
+ this.lcItemFlashErase.TextVisible = false;
+ //
+ // lcItemFlashWrite
+ //
+ this.lcItemFlashWrite.Control = this.btnFlashWrite;
+ this.lcItemFlashWrite.Location = new System.Drawing.Point(560, 125);
+ this.lcItemFlashWrite.MinSize = new System.Drawing.Size(101, 26);
+ this.lcItemFlashWrite.Name = "lcItemFlashWrite";
+ this.lcItemFlashWrite.Size = new System.Drawing.Size(166, 26);
+ this.lcItemFlashWrite.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcItemFlashWrite.TextSize = new System.Drawing.Size(0, 0);
+ this.lcItemFlashWrite.TextVisible = false;
+ //
+ // layoutControlGroup3
+ //
+ this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem12,
+ this.emptySpaceItem2,
+ this.layoutControlItem9,
+ this.layoutControlItem11,
+ this.layoutControlItem10});
+ this.layoutControlGroup3.Location = new System.Drawing.Point(0, 307);
+ this.layoutControlGroup3.Name = "layoutControlGroup3";
+ this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup3.Size = new System.Drawing.Size(734, 108);
+ this.layoutControlGroup3.Text = "Update Status";
+ //
+ // layoutControlItem12
+ //
+ this.layoutControlItem12.Control = this.lbUpdateStatus;
+ this.layoutControlItem12.CustomizationFormText = "layoutControlItem12";
+ this.layoutControlItem12.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem12.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem12.Name = "layoutControlItem12";
+ this.layoutControlItem12.Size = new System.Drawing.Size(530, 18);
+ this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem12.TextVisible = false;
+ //
+ // emptySpaceItem2
+ //
+ this.emptySpaceItem2.AllowHotTrack = false;
+ this.emptySpaceItem2.CustomizationFormText = "emptySpaceItem2";
+ this.emptySpaceItem2.Location = new System.Drawing.Point(530, 0);
+ this.emptySpaceItem2.Name = "emptySpaceItem2";
+ this.emptySpaceItem2.Size = new System.Drawing.Size(196, 18);
+ this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem9
+ //
+ this.layoutControlItem9.Control = this.lbUpdateTime;
+ this.layoutControlItem9.CustomizationFormText = "layoutControlItem9";
+ this.layoutControlItem9.Location = new System.Drawing.Point(0, 18);
+ this.layoutControlItem9.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem9.Name = "layoutControlItem9";
+ this.layoutControlItem9.Size = new System.Drawing.Size(530, 18);
+ this.layoutControlItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem9.TextVisible = false;
+ //
+ // layoutControlItem11
+ //
+ this.layoutControlItem11.Control = this.lbUpdateProgress;
+ this.layoutControlItem11.CustomizationFormText = "layoutControlItem11";
+ this.layoutControlItem11.Location = new System.Drawing.Point(530, 18);
+ this.layoutControlItem11.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem11.Name = "layoutControlItem11";
+ this.layoutControlItem11.Size = new System.Drawing.Size(196, 18);
+ this.layoutControlItem11.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem11.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem11.TextVisible = false;
+ //
+ // layoutControlItem10
+ //
+ this.layoutControlItem10.Control = this.pgUpdate;
+ this.layoutControlItem10.CustomizationFormText = "layoutControlItem10";
+ this.layoutControlItem10.Location = new System.Drawing.Point(0, 36);
+ this.layoutControlItem10.MinSize = new System.Drawing.Size(54, 16);
+ this.layoutControlItem10.Name = "layoutControlItem10";
+ this.layoutControlItem10.Size = new System.Drawing.Size(726, 43);
+ this.layoutControlItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem10.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem10.TextVisible = false;
+ //
+ // edTargetID
+ //
+ this.edTargetID.Location = new System.Drawing.Point(492, 54);
+ this.edTargetID.Name = "edTargetID";
+ this.edTargetID.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.edTargetID.Properties.Appearance.Options.UseFont = true;
+ this.edTargetID.Properties.EditFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.edTargetID.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
+ this.edTargetID.Size = new System.Drawing.Size(71, 22);
+ this.edTargetID.StyleController = this.layoutControl1;
+ this.edTargetID.TabIndex = 22;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.edTargetID;
+ this.layoutControlItem6.Location = new System.Drawing.Point(405, 26);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(155, 26);
+ this.layoutControlItem6.Text = "Target ID";
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(68, 14);
+ //
+ // fmxFwUpdate
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(736, 478);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxFwUpdate.IconOptions.Icon")));
+ this.Name = "fmxFwUpdate";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "fmFwUpdate";
+ this.Activated += new System.EventHandler(this.fmxFwUpdate_Activated);
+ this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.fmxFwUpdate_FormClosed);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.pgUpdate.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edFilename.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemGotoBoot)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemGotoApp)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemFlashErase)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemFlashWrite)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edTargetID.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.SimpleButton btnFind;
+ private DevExpress.XtraEditors.TextEdit edFilename;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraEditors.SimpleButton btnClose;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraEditors.SimpleButton btnFwUpdate;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem3;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem4;
+ private DevExpress.XtraEditors.LabelControl lbFileInfo;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+ private DevExpress.XtraEditors.LabelControl lbUpdateTime;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
+ private DevExpress.XtraEditors.ProgressBarControl pgUpdate;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
+ private DevExpress.XtraEditors.LabelControl lbUpdateProgress;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11;
+ private DevExpress.XtraEditors.LabelControl lbUpdateStatus;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12;
+ private DevExpress.XtraEditors.SimpleButton btnRestart;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3;
+ private DevExpress.XtraEditors.SimpleButton btnGotoApp;
+ private DevExpress.XtraEditors.SimpleButton btnGotoBoot;
+ private DevExpress.XtraLayout.LayoutControlItem lcItemGotoBoot;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem5;
+ private DevExpress.XtraLayout.LayoutControlItem lcItemGotoApp;
+ private DevExpress.XtraEditors.SimpleButton btnFlashWrite;
+ private DevExpress.XtraEditors.SimpleButton btnFlashErase;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem6;
+ private DevExpress.XtraLayout.LayoutControlItem lcItemFlashErase;
+ private DevExpress.XtraLayout.LayoutControlItem lcItemFlashWrite;
+ private DevExpress.XtraEditors.TextEdit edTargetID;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxFwUpdate.cs b/LFP_Manager/Forms/fmxFwUpdate.cs
new file mode 100644
index 0000000..662796f
--- /dev/null
+++ b/LFP_Manager/Forms/fmxFwUpdate.cs
@@ -0,0 +1,496 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+using System.IO;
+using System.Runtime.InteropServices;
+
+using System.Threading;
+
+using LFP_Manager.Function;
+using LFP_Manager.Utils;
+
+namespace LFP_Manager
+{
+ public delegate void AutoTxSetEnvent(bool autoTx);
+ public delegate void SendDataUartEvent(ushort dev_addr, byte[] data, bool ReplyFlag, int type);
+
+ public partial class fmxFwUpdate : XtraForm
+ {
+ #region DEFINES
+
+ const int FW_UPDATE_START_ADDR = 0x08080000;
+ const int FW_UPDATE_END_ADDR = 0x080E0000 - 1;
+ const int FW_UPDATE_SECTOR_SIZE = 0x20000;
+ const int FW_UPDATE_PACKET_SIZE = 0x800;
+
+ const int APP_TO_BOOT = 0;
+ const int BOOT_TO_APP = 1;
+
+ #endregion
+
+ #region VARIABLES
+
+ private UInt32 SystemId = 0;
+ private byte[] fwdata;
+ private int fwsize;
+ private int FwStartAddr = 0;
+ private int FwCurrPosition = 0;
+ private int FwSentLength = 0;
+
+ private bool StopUpdate = true;
+
+ private DateTime UpdateStartTime;
+ private TimeSpan UpdateTime;
+
+ public event AutoTxSetEnvent OnAutoTxSet = null;
+ public event SendDataUartEvent OnSendUartData = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public fmxFwUpdate(int sID)
+ {
+ InitializeComponent();
+
+ SystemId = (UInt32)sID;
+ edTargetID.Text = sID.ToString();
+
+ fwdata = null;
+ fwsize = 0;
+ btnFwUpdate.Enabled = false;
+
+ lcItemFlashErase.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ lcItemFlashWrite.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ lcItemGotoBoot.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ lcItemGotoApp.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ }
+
+ #endregion
+
+ #region BUTTON EVENTS
+
+ private void btnClose_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+
+ private void btnFwUpdate_Click(object sender, EventArgs e)
+ {
+ if (edTargetID.Text == "")
+ {
+ MessageBox.Show("Please check target id !!");
+ return;
+ }
+
+ SystemId = Convert.ToUInt32(edTargetID.Text);
+
+ if (StopUpdate == true)
+ {
+ // Working mode change (Application --> Boot) - It need to be wait more than 1.5sec
+ OnAutoTxSet?.Invoke(false);
+
+ DisplayLabelUpdate("Goto Bootloader Mode");
+ RequestModeChange(APP_TO_BOOT);
+ UpdateStartTime = DateTime.Now;
+
+ btnFwUpdate.Text = "Cancel Update";
+ btnFwUpdate.Enabled = false;
+
+ for (int i = 0; i < 2000; i += 100)
+ {
+ Thread.Sleep(100);
+ Application.DoEvents();
+ }
+
+ btnFwUpdate.Enabled = true;
+ // Flash Erase
+ RequestFlashErase();
+ }
+ else
+ {
+ StopFwUpdate();
+ }
+ }
+
+ private void StopFwUpdate()
+ {
+ StopUpdate = true;
+ btnFwUpdate.Text = "Firmware Update";
+ pgUpdate.Position = 0;
+ //pgUpdate.Properties.Maximum = 0;
+ //lbUpdateProgress.Text = "-/-";
+ lbUpdateStatus.Text = "Stop Update";
+ }
+
+ public static byte[] ToByteArray(String HexString)
+ {
+ int NumberChars = HexString.Length;
+ byte[] bytes = new byte[NumberChars / 2];
+ for (int i = 0; i < NumberChars; i += 2)
+ {
+ bytes[i / 2] = Convert.ToByte(HexString.Substring(i, 2), 16);
+ }
+ return bytes;
+ }
+ private void btnFind_Click(object sender, EventArgs e)
+ {
+ OpenFileDialog oDialog;
+
+ oDialog = new OpenFileDialog();
+ oDialog.DefaultExt = "*.*";
+ oDialog.Filter = "hex files (*.hex)|*.hex|All files (*.*)|*.*";
+
+ if (oDialog.ShowDialog() == DialogResult.OK)
+ {
+ edFilename.Text = oDialog.FileName;
+
+ int addr1 = 0;
+ int addr2 = 0;
+ string[] aline = File.ReadLines(edFilename.Text).ToArray();
+ for (int i = 0; i < aline.Length; i++)
+ {
+ byte[] a = ToByteArray(aline[i].Substring(1, aline[i].Length - 1));
+ switch (a[3])
+ {
+ case 0: // data record
+ addr2 = (int)((a[1] << 8) | a[2]) + a[0];
+ if (FwStartAddr == 0)
+ FwStartAddr = (int)((a[1] << 8) | a[2]);
+ break;
+ case 1: // End of file record. Usually, it is 00000001FF
+
+ break;
+ case 2: // Extended Segment address record. This indicates segment base address when 16 bits is not enough for addressing memory;
+ break;
+ case 3: // Start segment address record. Indicates initial segment base address.
+ break;
+ case 4: // Extended Linear Address Record – allows 32 bit addressing.
+ addr1 = (int)((a[4] << 8) | a[5]);
+ break;
+ case 5: // Start Linear Address Record.
+ break;
+ }
+ }
+ int FwImageSize = (int)((addr1 << 16) + addr2 - FwStartAddr);
+ if ((FwImageSize % 128) > 0)
+ {
+ FwImageSize = ((FwImageSize / 128) + 1) * 128;
+ }
+ else
+ {
+ FwImageSize = ((FwImageSize / 128) + 0) * 128;
+ }
+ addr1 = 0;
+ addr2 = 0;
+ fwsize = FwImageSize;
+ fwdata = new byte[fwsize];
+ for (int i = 0; i < fwdata.Length; i++)
+ {
+ fwdata[i] = 0xFF;
+ }
+ for (int i = 0; i < aline.Length; i++)
+ {
+ byte[] a = ToByteArray(aline[i].Substring(1, aline[i].Length - 1));
+ switch (a[3])
+ {
+ case 0: // data record
+ addr2 = (int)((a[1] << 8) | a[2]);
+ int len = a[0];
+ for (int j = 0; j < len; j++)
+ {
+ fwdata[((addr1 << 16) + addr2) - FwStartAddr + j] = a[4 + j];
+ }
+ break;
+ case 1: // End of file record. Usually, it is 00000001FF
+
+ break;
+ case 2: // Extended Segment address record. This indicates segment base address when 16 bits is not enough for addressing memory;
+ break;
+ case 3: // Start segment address record. Indicates initial segment base address.
+ break;
+ case 4: // Extended Linear Address Record – allows 32 bit addressing.
+ addr1 = (int)((a[4] << 8) | a[5]);
+ break;
+ case 5: // Start Linear Address Record.
+ break;
+ }
+ }
+
+ string strName = Path.GetFileName(edFilename.Text);
+
+ lbFileInfo.Text = string.Format("File Information");
+ lbFileInfo.Text += string.Format("\r\n - Filename: {0}", strName);
+ lbFileInfo.Text += string.Format("\r\n - File Version: {0}", strName.Substring(0, 12));
+ lbFileInfo.Text += string.Format("\r\n - File Size: {0:#,##0} bytes", fwsize);
+ lbFileInfo.Text += string.Format("\r\n - Packet Size: {0:#,##0} packets", fwsize / 128);
+ lbFileInfo.Text += string.Format("\r\n - Last packet: {0:#,##0}", fwsize % 128);
+ lbFileInfo.Text += string.Format("\r\n - Start Addr : 0x{0:X8}", FwStartAddr);
+
+ lbUpdateProgress.Text = string.Format("{0:#,##0}/{1:#,##0} bytes", 0, fwsize);
+ pgUpdate.Properties.Maximum = (int)fwsize;
+
+ btnFwUpdate.Enabled = true;
+ }
+ }
+
+ #endregion
+
+ #region FORM EVENT
+
+ private void fmxFwUpdate_Activated(object sender, EventArgs e)
+ {
+ //OnAutoTxSet?.Invoke(false);
+ }
+
+ private void fmxFwUpdate_FormClosed(object sender, FormClosedEventArgs e)
+ {
+ OnAutoTxSet?.Invoke(true);
+ }
+
+ #endregion
+
+ #region PUBLIC FUNCTION
+
+ void DisplayLabelUpdate(string msg)
+ {
+ if (this.InvokeRequired)
+ {
+ this.Invoke(new MethodInvoker(delegate ()
+ {
+ lbUpdateStatus.Text = string.Format("Update Status : {0}", msg);
+ }));
+ }
+ else
+ {
+ lbUpdateStatus.Text = string.Format("Update Status : {0}", msg);
+ }
+ }
+ void DisplayUpdateProgress()
+ {
+ if (this.InvokeRequired)
+ {
+ _ = this.Invoke(new MethodInvoker(delegate ()
+ {
+ lbUpdateProgress.Text = string.Format("{0:#,##0}/{1:#,##0} bytes", FwCurrPosition, fwsize);
+ pgUpdate.Position = FwCurrPosition;
+ UpdateTime = DateTime.Now - UpdateStartTime;
+ lbUpdateTime.Text = string.Format("{0:mm}:{0:ss}", UpdateTime);
+ }));
+ }
+ else
+ {
+ lbUpdateProgress.Text = string.Format("{0:#,##0}/{1:#,##0} bytes", FwCurrPosition, fwsize);
+ pgUpdate.Position = FwCurrPosition;
+ UpdateTime = DateTime.Now - UpdateStartTime;
+ lbUpdateTime.Text = string.Format("{0:mm}:{0:ss}", UpdateTime);
+ }
+ }
+
+ public void RecvData(byte[] rdata)
+ {
+ //lbUpdateStatus.Text = String.Format("Recv Data: 0x{0:X8} {1:X2} {2:X2} {3:X2} {4:X2} {5:X2} {6:X2} {7:X2} {8:X2}"
+ // , rhdr, rdata[0], rdata[1], rdata[2], rdata[3], rdata[4], rdata[5], rdata[6], rdata[7]);
+
+ if (StopUpdate == false)
+ {
+ if (rdata[0] == 0x7F)
+ {
+ switch (rdata[1])
+ {
+ case 0x43: // Erase Flash
+ if (rdata[2] == 0x79)
+ {
+ // Erase Success
+ DisplayLabelUpdate("Flash Erase Success");
+ byte[] sdata = new byte[128];
+ FwCurrPosition = 0;
+ for (int i = 0; i < sdata.Length; i++)
+ {
+ sdata[i] = fwdata[FwCurrPosition + i];
+ }
+ RequestFlashWrite(FwStartAddr + FwCurrPosition, sdata);
+ }
+ else if (rdata[2] == 0x1F)
+ {
+ // Erase Fail
+ DisplayLabelUpdate("Flash Erase Fail");
+ StopUpdate = true;
+ }
+ break;
+ case 0x31: // Write Flash
+ if (rdata[2] == 0x79)
+ {
+ // Write Success
+ string str = string.Format("Flash Write Success - {0}/{1}", FwCurrPosition, FwSentLength);
+ DisplayLabelUpdate(str);
+ DisplayUpdateProgress();
+
+ FwCurrPosition += FwSentLength;
+
+ int Remain = fwdata.Length - FwCurrPosition;
+ if (Remain > 0)
+ {
+ int len = (Remain > 128) ? 128 : Remain;
+ byte[] sdata = new byte[len];
+ for (int i = 0; i < sdata.Length; i++)
+ {
+ sdata[i] = fwdata[FwCurrPosition + i];
+ }
+ RequestFlashWrite(FwStartAddr + FwCurrPosition, sdata);
+ }
+ else
+ {
+ RequestModeChange(BOOT_TO_APP);
+ // Write Success
+ str = string.Format("Complete Update - {0}/{1}", FwCurrPosition, FwSentLength);
+ DisplayLabelUpdate(str);
+ DisplayUpdateProgress();
+ //MessageBox.Show("Complete Firmware Update", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ }
+ else if (rdata[2] == 0x1F)
+ {
+ // Write Fail
+ DisplayLabelUpdate("Flash Write Fail");
+ StopUpdate = true;
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ #region UART PACKET FUNCTION
+ private void RequestModeChange(int mode)
+ {
+ byte[] sdata = null;
+ byte[] crc;
+
+ if (mode == 0)
+ {
+ // Normal mode --> Bootloader mode
+ sdata = new byte[8];
+ sdata[0] = (byte)SystemId; // Dev Address
+ sdata[1] = 0x50; // Function Code
+ sdata[2] = 0x80; // Address H
+ sdata[3] = 0x00; // Address L
+ sdata[4] = 0x00; // Number of Register H
+ sdata[5] = 0x00; // Number of Register L
+
+ crc = csSerialCommFunction.GetCRC(sdata, 6);
+
+ sdata[6] = crc[1]; // CRCH
+ sdata[7] = crc[0]; // CRCL
+
+ StopUpdate = false;
+ }
+ else if (mode == 1)
+ {
+ // Bootloader mode --> Normal mode
+ sdata = new byte[5];
+ sdata[0] = 0x7F; // Dev Address
+ sdata[1] = 0x21; // Function Code,,+
+ sdata[2] = 0xDE; // Sub Code
+
+ crc = csSerialCommFunction.GetCRC(sdata, 3);
+
+ sdata[3] = crc[1]; // CRCH
+ sdata[4] = crc[0]; // CRCL
+
+ StopFwUpdate();
+ }
+ OnSendUartData?.Invoke((ushort)SystemId, sdata, false, 0);
+ }
+
+ private void RequestFlashErase()
+ {
+ byte[] sdata = null;
+ byte[] crc;
+
+ // Flash Erase
+ sdata = new byte[5];
+ sdata[0] = 0x7F; // Dev Address
+ sdata[1] = 0x43; // Function Code
+ sdata[2] = 0xBC; // Sub Code
+
+ crc = csSerialCommFunction.GetCRC(sdata, 3);
+
+ sdata[3] = crc[1]; // CRCH
+ sdata[4] = crc[0]; // CRCL
+
+ OnSendUartData?.Invoke((ushort)SystemId, sdata, true, 0);
+ }
+ private void RequestFlashWrite(int addr, byte[] data)
+ {
+ byte[] sdata = null;
+ byte[] crc;
+
+ // Flash Write
+ sdata = new byte[6 + 128 + 2];
+ for (int i = 0; i < sdata.Length; i++)
+ {
+ sdata[i] = 0xFF;
+ }
+ sdata[0] = 0x7F; // Dev Address
+ sdata[1] = 0x31; // Function Code
+ sdata[2] = 0xCE; // Sub Code
+ sdata[3] = (byte)(addr >> 16); // Addr H
+ sdata[4] = (byte)(addr >> 8); // Addr L MSB
+ sdata[5] = (byte)(addr & 0xff); // Addr L LSB
+
+ for (int i = 0; i < data.Length; i++)
+ {
+ sdata[6 + i] = data[i];
+ }
+
+ crc = csSerialCommFunction.GetCRC(sdata, sdata.Length - 2);
+
+ sdata[sdata.Length - 2] = crc[1]; // CRCH
+ sdata[sdata.Length - 1] = crc[0]; // CRCL
+
+ FwSentLength = data.Length;
+ OnSendUartData?.Invoke((ushort)SystemId, sdata, false, 0);
+ }
+ #endregion
+
+ #region BUTTON EVENT
+ private void btnGotoBoot_Click(object sender, EventArgs e)
+ {
+ OnAutoTxSet?.Invoke(false);
+
+ RequestModeChange(APP_TO_BOOT);
+ UpdateStartTime = DateTime.Now;
+ }
+
+ private void btnGotoApp_Click(object sender, EventArgs e)
+ {
+ RequestModeChange(BOOT_TO_APP);
+ }
+
+ private void btnFlashErase_Click(object sender, EventArgs e)
+ {
+ RequestFlashErase();
+ }
+
+ private void btnFlashWrite_Click(object sender, EventArgs e)
+ {
+ byte[] sdata = new byte[128];
+ FwCurrPosition = 0;
+ for (int i = 0; i < sdata.Length; i++)
+ {
+ sdata[i] = fwdata[FwCurrPosition + i];
+ }
+ RequestFlashWrite(FwStartAddr + FwCurrPosition, sdata);
+ }
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxFwUpdate.resx b/LFP_Manager/Forms/fmxFwUpdate.resx
new file mode 100644
index 0000000..2c2a4ce
--- /dev/null
+++ b/LFP_Manager/Forms/fmxFwUpdate.resx
@@ -0,0 +1,4571 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+ AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA
+ GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/
+ ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7/////////////////////
+ ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff/////////
+ ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+
+ /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7/////
+ ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc
+ x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7/////////////////////////////
+ ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt
+ e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP
+ SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7/////////
+ ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z
+ WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS
+ Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8
+ +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+
+ /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+
+ /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO
+ SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz
+ 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o
+ 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9
+ /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE
+ oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG
+ PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7/////
+ ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH
+ PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t
+ 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/
+ ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/
+ ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7/////////////////////////////
+ ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+
+ /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ
+ TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7/////////////////
+ ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ
+ TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+
+ /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7/////
+ ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP
+ SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7/////////////////////////////////////////
+ ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/
+ ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7/////////////////////////////
+ ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/
+ ///+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////+/v7////////+/v3////////////////////////+/v3////////+/v7/////////////////
+ ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7/////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ /////////v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v7////////+/v7/////////////////////////////////////
+ ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7/////////////////////
+ ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7
+ +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9
+ /Pz+/v7/////////////////////////////////////////////////////////////////////////
+ ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM
+ RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7/////////////////////////////////////
+ ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL
+ QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+
+ /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP
+ SgCOSQCPTAKFOwDVvaT////9/Pv+/v7/////////////////////////////////////////////////
+ ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8
+ +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7/////////
+ /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO
+ SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF
+ OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+
+ ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/
+ //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7/////////////////////////
+ ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/
+ mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79
+ /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN
+ RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ
+ TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7/////
+ ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7/////
+ ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+
+ /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ
+ TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP
+ SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH
+ PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/
+ ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5
+ 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+
+ /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ
+ QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE
+ oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/
+ ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7/////////////////////////
+ ///////////////////////////////////////////////////////+/v7+////////////////////
+ ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+
+ /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9
+ /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP
+ SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL
+ RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7/////////////////////////////////
+ ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/
+ ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7/////////
+ ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP
+ SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI
+ PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/
+ ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x
+ glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7/////////////////////////////
+ ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM
+ RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+
+ /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/
+ ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP
+ SgCOSgGLRQGTURDz7ef+/v39/f3+/v7/////////////////////////////////////////////////
+ ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+
+ /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7/////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN
+ RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9
+ /fz9/f3+/v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO
+ SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7/////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO
+ SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS
+ UA/y6+X+/v39/fz+/v7+/v7/////////////////////////////////////////////////////////
+ ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP
+ SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7/////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+
+ /v7/////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO
+ SQCOSQGJQQDi0cD////9/Pv+/v7/////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J
+ QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7/////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39
+ /fz+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz
+ hFazhFayhFazhVete1TWvqb////9/fz+/v7/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+
+ /f3+/f3/////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v7+////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////v7+
+ /f39////////////////////////////////////////////////////////////////////////////
+ ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39
+ /fz8/v79/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA
+ nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1////
+ x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV
+ i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC
+ jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC
+ hz8Ap3I//fz7/fz8/v79/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7
+ /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8
+ +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p
+ /v39/f38/v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+
+ ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb
+ 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+//7+/f39
+ /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7////
+ 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+
+ /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA
+ j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB
+ j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB
+ i0UAlVYZ8+3m/f79/f38/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+////////////////
+ /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39
+ /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+
+ sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+
+ /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+////////
+ /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+
+ /f39/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO
+ /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39
+ 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39
+ /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+////////////////////////////
+ /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+////
+ /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A
+ kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ jkoCikIC4tHA/////Pv7/v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC
+ hz4A1r6m/////Pz7/v7+/v7+/////v7+////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+
+ /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+////////////////////
+ /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM
+ /////Pv6/v7+/v7+/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA
+ j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+
+ /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7
+ /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq////
+ /Pv6/v7+/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A
+ j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA
+ kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA
+ j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6
+ /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+////////
+ /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+
+ /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA
+ xaJ//////Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU
+ /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA
+ j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+////////////
+ 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+
+ /////v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39
+ /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/
+ /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6
+ ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+
+ /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC
+ kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB
+ kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39////
+ /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA
+ hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA
+ iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A
+ j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU
+ z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+////////
+ /v7+/////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7//v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn
+ +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3
+ +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8
+ /fz8/v7+/////v7+/////v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v///v7+/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT
+ z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7
+ ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A
+ hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A
+ fS0AtIdb/f38/Pz8///+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D
+ kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL
+ jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA
+ jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3
+ iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA
+ jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA
+ jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK
+ 6t7S/v7+/fz8/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs////
+ /Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7
+ /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38
+ /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fz8
+ /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+////////////////////////////////////
+ /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+
+ /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA
+ jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A
+ pnA8/Pv6/fz7/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq
+ iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+
+ /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+////////////
+ /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+
+ //7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A
+ 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES
+ jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+////////////////
+ /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6
+ /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7
+ /v79/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v39
+ /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8
+ +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+
+ /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ
+ hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ
+ 8+3m/f39/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+
+ /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA
+ jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA
+ u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA
+ j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA
+ jkkCikQE49PC/v7//fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8
+ /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+
+ /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7////
+ t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA
+ jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU
+ hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD
+ /////fz8//7//v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA
+ oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC
+ hj0Az7SX/////fz7//7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+//7+
+ /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH
+ jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA
+ jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT////
+ /Pz8/v7//v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA
+ t4tf/////fz7/v7+/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs
+ mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6
+ /v7+/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v7+
+ /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx
+ +/n3/fz8/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+
+ rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA
+ jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW
+ k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV
+ kU8TmVoj8ejg/v39/fz7/v7//f39/v//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off
+ 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v////7+/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v39/v7+
+ ///+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/v//////
+ /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v79/////////v7+/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v79/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////9/Lt9/Pu
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2svnmMrzrGR/////fz7////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ
+ /v39/fz8/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h
+ /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0////
+ 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC
+ j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ jUgBlFIO7uTa/////f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB
+ jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+
+ /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38////////////////////
+ /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z
+ iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+
+ sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG////
+ /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ hz4Ar35J/v39/fz8/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+////////
+ /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38////////////////////////////////
+ /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+////////////////////////////////////////////
+ /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA
+ /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW
+ k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+
+ /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+////////////////////
+ /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iEAA176j/////fz7////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39////////////////////////////////////////////
+ ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38
+ /fz8/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEA1buf/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+////////////
+ /////////////////////////////////////////////////////////////////////fz7////yKaB
+ hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v///f38////sH9K
+ hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oBi0QAnmIj9vHs/v39/v39////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA
+ nWAf9vHs/v7+/v79////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo////
+ /fz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v///f38////
+ 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/v79+/n3omor
+ ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm
+ +PTw/v39/f39////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sBjEUAmVwb9e/p/v7+/f38////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A
+ vpVq/////fz7/v/+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8AyKaB/////fz7/v///v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39
+ //7/////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC
+ jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsCiD8Auo9h/////fz8/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE
+ iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB
+ 4tC+/////f38/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjUcBk1EN7+Xb/////f39/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj
+ n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f38////u5Jlhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkBjUgE4M66/////fz7/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR
+ 7+bd/v7+/f39////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv
+ +/n4/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0
+ rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6
+ ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC
+ hz4AtolZ/////fz8/v3+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA
+ j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ j0sBikIApGww+vj1/v39/f39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ
+ j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M
+ /////Pz7/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkCjkkG4c+7/////fz7/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+///+/v39
+ /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d////
+ /fz7/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/f38/f38
+ 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A
+ jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sBiD8AyKiE/////fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oBiUEApW4z+vj1/v39/v39////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ
+ /v7+/f38/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4
+ 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD
+ 49PB/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/Pz7////
+ 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6////
+ /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A
+ j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC
+ iUEAqHQ7+/j2/fz8/v39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jUgBkk8K7ODV/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL////
+ /f38/v7+///+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6////////
+ ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A
+ ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38
+ /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBiUEA1Lqd/////fv6////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38
+ sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////v7+/v39
+ /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq
+ 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38
+ /v39/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjUgBkU4J6NrM/////fz8////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA
+ jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEArnxG/v7+/f38/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO
+ 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i////
+ /Pz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA
+ hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr
+ vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g
+ 4M24/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY
+ llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+////////////////////////////
+ /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsCiUEArXpD/v7//f39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB
+ ikMA1bqf/////fz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39
+ /f38/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39
+ /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/////////v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI
+ iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8////
+ /fz8////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA
+ mVsZ8+zl/v38/fz8////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7
+ /v7+//7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz7/v7+
+ 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf
+ 9vHs/v79/fz8////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z
+ iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAi0YAl1gT8+3l/v7+/f39////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA
+ upFj/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC
+ hz4AwZty/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////f39
+ /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC
+ jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ
+ hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsChz4At4ta/////fz8/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjUgCkEwL6dzO/////fz7////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD
+ 38y3/////fz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v/+/f39/v79
+ +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////fz8
+ /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A
+ kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK
+ 5tbG/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBjUcB4M25/////f38/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos
+ +PTw/fz8/f39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v//////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA
+ kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB
+ iUAAq3dA/Pr4/fz7/f39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v///fz7
+ ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA
+ j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0oBikMAomgq+vf0/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////Pz7////4M24
+ i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiUEA0rea/////fz7/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7
+ /v38/v39/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////f38/v79
+ +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/f38
+ ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ kEwChz4AxaJ8/////fz7/v7+////////////////////////////////////////////////////////
+ ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA
+ 07mb/////Pz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU
+ /v7+/Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+////
+ //////////////////////////////////////////////////////////////////////////////7/
+ /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7/////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+////////////////////////////
+ /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jEQAm10b9O/p/v7+/f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+////////////////////////////////////////
+ /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7
+ /v7//v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jUgAklAK6dzO/////f38/v//////////////////////////////////////////////////////////
+ /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6
+ /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng
+ lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+
+ /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiD8Au5Jl/////fz8/v7+//7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+////////////////////
+ /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj
+ /v39/fz8/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+////////////////////////////
+ /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8
+ ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb////
+ /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A
+ upFj/////fz8/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+
+ /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7////////////////////////
+ /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf
+ llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA
+ kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkBjUcA49LA/////f38/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79
+ /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3
+ qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8////0baX
+ iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD
+ /////fz8/v//////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA
+ nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA
+ qHI4/Pv5/v39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+
+ iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ kEsChz8Az7KS/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7
+ /v39/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v39
+ /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////fz8////59jIj0oD
+ jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ
+ /////fz8////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB
+ llYW7+Xb/v7+/f38/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0wChz8AuIxc/v7+/fz7/v39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+
+ /v39/v//////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fv6
+ ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAjkkBjEYA4M24/////fz8/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa
+ /////f38////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v39/fz7
+ 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB
+ jUcE3sq2/////Pz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oBikMAomgq+fXy/v39/f39////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/fz7////
+ 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq
+ +vf1/f38/f39//7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39
+ tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS
+ yqqM38u2/////v79/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/v79////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v79/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxHistory.Designer.cs b/LFP_Manager/Forms/fmxHistory.Designer.cs
new file mode 100644
index 0000000..59f8009
--- /dev/null
+++ b/LFP_Manager/Forms/fmxHistory.Designer.cs
@@ -0,0 +1,943 @@
+namespace LFP_Manager.Forms
+{
+ partial class fmxHistory
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxHistory));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.tabHistory = new DevExpress.XtraTab.XtraTabControl();
+ this.pgGuiHistory = new DevExpress.XtraTab.XtraTabPage();
+ this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
+ this.ucHistroy1 = new LFP_Manager.Controls.ucHistroy();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.pgBmsHistory = new DevExpress.XtraTab.XtraTabPage();
+ this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnExportExcel = new DevExpress.XtraEditors.SimpleButton();
+ this.btnBmsHistoryReq = new DevExpress.XtraEditors.SimpleButton();
+ this.gcBmsHistory = new DevExpress.XtraGrid.GridControl();
+ this.gvBmsHistory = new DevExpress.XtraGrid.Views.Grid.GridView();
+ this.gcNo = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcHistDateTime = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcStatus = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcWarning = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcProtect = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcError = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcVoltage = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcCurrent = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcSOC = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcSOH = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcTemp1 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcTemp2 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcTemp3 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcTemp4 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcTemp5 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcTemp6 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_1 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_2 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_3 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_4 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_5 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_6 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_7 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_8 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_9 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_10 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_11 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_12 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_13 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_14 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_15 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_16 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup4 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.btnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.TmrCheckReq = new System.Windows.Forms.Timer(this.components);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.tabHistory)).BeginInit();
+ this.tabHistory.SuspendLayout();
+ this.pgGuiHistory.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit();
+ this.layoutControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ this.pgBmsHistory.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit();
+ this.layoutControl3.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.gcBmsHistory)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gvBmsHistory)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.tabHistory);
+ this.layoutControl1.Controls.Add(this.btnClose);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1215, 341, 650, 400);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(911, 602);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // tabHistory
+ //
+ this.tabHistory.Location = new System.Drawing.Point(3, 3);
+ this.tabHistory.Name = "tabHistory";
+ this.tabHistory.SelectedTabPage = this.pgGuiHistory;
+ this.tabHistory.Size = new System.Drawing.Size(905, 552);
+ this.tabHistory.TabIndex = 6;
+ this.tabHistory.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] {
+ this.pgGuiHistory,
+ this.pgBmsHistory});
+ //
+ // pgGuiHistory
+ //
+ this.pgGuiHistory.Controls.Add(this.layoutControl2);
+ this.pgGuiHistory.Name = "pgGuiHistory";
+ this.pgGuiHistory.Size = new System.Drawing.Size(903, 526);
+ this.pgGuiHistory.Text = "GUI History";
+ //
+ // layoutControl2
+ //
+ this.layoutControl2.Controls.Add(this.ucHistroy1);
+ this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl2.Name = "layoutControl2";
+ this.layoutControl2.Root = this.Root;
+ this.layoutControl2.Size = new System.Drawing.Size(903, 526);
+ this.layoutControl2.TabIndex = 0;
+ this.layoutControl2.Text = "layoutControl2";
+ //
+ // ucHistroy1
+ //
+ this.ucHistroy1.Location = new System.Drawing.Point(3, 3);
+ this.ucHistroy1.Name = "ucHistroy1";
+ this.ucHistroy1.Size = new System.Drawing.Size(897, 520);
+ this.ucHistroy1.TabIndex = 4;
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(903, 526);
+ this.Root.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.ucHistroy1;
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(901, 524);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // pgBmsHistory
+ //
+ this.pgBmsHistory.Controls.Add(this.layoutControl3);
+ this.pgBmsHistory.Name = "pgBmsHistory";
+ this.pgBmsHistory.Size = new System.Drawing.Size(903, 526);
+ this.pgBmsHistory.Text = "BMS History";
+ //
+ // layoutControl3
+ //
+ this.layoutControl3.Controls.Add(this.btnExportExcel);
+ this.layoutControl3.Controls.Add(this.btnBmsHistoryReq);
+ this.layoutControl3.Controls.Add(this.gcBmsHistory);
+ this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl3.Name = "layoutControl3";
+ this.layoutControl3.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1211, 293, 650, 400);
+ this.layoutControl3.Root = this.layoutControlGroup2;
+ this.layoutControl3.Size = new System.Drawing.Size(903, 526);
+ this.layoutControl3.TabIndex = 0;
+ this.layoutControl3.Text = "layoutControl3";
+ //
+ // btnExportExcel
+ //
+ this.btnExportExcel.Location = new System.Drawing.Point(782, 485);
+ this.btnExportExcel.Name = "btnExportExcel";
+ this.btnExportExcel.Size = new System.Drawing.Size(113, 33);
+ this.btnExportExcel.StyleController = this.layoutControl3;
+ this.btnExportExcel.TabIndex = 6;
+ this.btnExportExcel.Text = "Export Excel";
+ this.btnExportExcel.Click += new System.EventHandler(this.btnExportExcel_Click);
+ //
+ // btnBmsHistoryReq
+ //
+ this.btnBmsHistoryReq.Location = new System.Drawing.Point(781, 29);
+ this.btnBmsHistoryReq.Name = "btnBmsHistoryReq";
+ this.btnBmsHistoryReq.Size = new System.Drawing.Size(114, 31);
+ this.btnBmsHistoryReq.StyleController = this.layoutControl3;
+ this.btnBmsHistoryReq.TabIndex = 5;
+ this.btnBmsHistoryReq.Text = "Request";
+ this.btnBmsHistoryReq.Click += new System.EventHandler(this.btnBmsHistoryReq_Click);
+ //
+ // gcBmsHistory
+ //
+ this.gcBmsHistory.Location = new System.Drawing.Point(8, 93);
+ this.gcBmsHistory.MainView = this.gvBmsHistory;
+ this.gcBmsHistory.Name = "gcBmsHistory";
+ this.gcBmsHistory.Size = new System.Drawing.Size(887, 388);
+ this.gcBmsHistory.TabIndex = 4;
+ this.gcBmsHistory.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] {
+ this.gvBmsHistory});
+ //
+ // gvBmsHistory
+ //
+ this.gvBmsHistory.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] {
+ this.gcNo,
+ this.gcHistDateTime,
+ this.gcStatus,
+ this.gcWarning,
+ this.gcProtect,
+ this.gcError,
+ this.gcVoltage,
+ this.gcCurrent,
+ this.gcSOC,
+ this.gcSOH,
+ this.gcTemp1,
+ this.gcTemp2,
+ this.gcTemp3,
+ this.gcTemp4,
+ this.gcTemp5,
+ this.gcTemp6,
+ this.cell_v_1,
+ this.cell_v_2,
+ this.cell_v_3,
+ this.cell_v_4,
+ this.cell_v_5,
+ this.cell_v_6,
+ this.cell_v_7,
+ this.cell_v_8,
+ this.cell_v_9,
+ this.cell_v_10,
+ this.cell_v_11,
+ this.cell_v_12,
+ this.cell_v_13,
+ this.cell_v_14,
+ this.cell_v_15,
+ this.cell_v_16});
+ this.gvBmsHistory.GridControl = this.gcBmsHistory;
+ this.gvBmsHistory.Name = "gvBmsHistory";
+ this.gvBmsHistory.OptionsView.ColumnAutoWidth = false;
+ this.gvBmsHistory.OptionsView.ShowGroupPanel = false;
+ this.gvBmsHistory.CustomColumnDisplayText += new DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventHandler(this.gvBmsHistory_CustomColumnDisplayText);
+ //
+ // gcNo
+ //
+ this.gcNo.AppearanceCell.Options.UseTextOptions = true;
+ this.gcNo.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcNo.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcNo.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcNo.Caption = "No";
+ this.gcNo.DisplayFormat.FormatString = "0";
+ this.gcNo.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.gcNo.FieldName = "no";
+ this.gcNo.Name = "gcNo";
+ this.gcNo.Visible = true;
+ this.gcNo.VisibleIndex = 0;
+ //
+ // gcHistDateTime
+ //
+ this.gcHistDateTime.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcHistDateTime.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcHistDateTime.Caption = "DateTime";
+ this.gcHistDateTime.DisplayFormat.FormatString = "yyyy-MM-dd HH:mm:ss";
+ this.gcHistDateTime.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
+ this.gcHistDateTime.FieldName = "datetime";
+ this.gcHistDateTime.Name = "gcHistDateTime";
+ this.gcHistDateTime.Visible = true;
+ this.gcHistDateTime.VisibleIndex = 1;
+ //
+ // gcStatus
+ //
+ this.gcStatus.AppearanceCell.Options.UseTextOptions = true;
+ this.gcStatus.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcStatus.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcStatus.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcStatus.Caption = "Status";
+ this.gcStatus.FieldName = "status";
+ this.gcStatus.Name = "gcStatus";
+ this.gcStatus.Visible = true;
+ this.gcStatus.VisibleIndex = 2;
+ //
+ // gcWarning
+ //
+ this.gcWarning.AppearanceCell.Options.UseTextOptions = true;
+ this.gcWarning.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcWarning.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcWarning.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcWarning.Caption = "Warning";
+ this.gcWarning.FieldName = "warning";
+ this.gcWarning.Name = "gcWarning";
+ this.gcWarning.Visible = true;
+ this.gcWarning.VisibleIndex = 3;
+ //
+ // gcProtect
+ //
+ this.gcProtect.AppearanceCell.Options.UseTextOptions = true;
+ this.gcProtect.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcProtect.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcProtect.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcProtect.Caption = "Protect";
+ this.gcProtect.FieldName = "protect";
+ this.gcProtect.Name = "gcProtect";
+ this.gcProtect.Visible = true;
+ this.gcProtect.VisibleIndex = 4;
+ //
+ // gcError
+ //
+ this.gcError.AppearanceCell.Options.UseTextOptions = true;
+ this.gcError.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcError.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcError.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcError.Caption = "Error";
+ this.gcError.FieldName = "error";
+ this.gcError.Name = "gcError";
+ this.gcError.Visible = true;
+ this.gcError.VisibleIndex = 5;
+ //
+ // gcVoltage
+ //
+ this.gcVoltage.AppearanceCell.Options.UseTextOptions = true;
+ this.gcVoltage.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.gcVoltage.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcVoltage.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcVoltage.Caption = "Voltage";
+ this.gcVoltage.DisplayFormat.FormatString = "0.00";
+ this.gcVoltage.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.gcVoltage.FieldName = "voltage";
+ this.gcVoltage.Name = "gcVoltage";
+ this.gcVoltage.Visible = true;
+ this.gcVoltage.VisibleIndex = 6;
+ //
+ // gcCurrent
+ //
+ this.gcCurrent.AppearanceCell.Options.UseTextOptions = true;
+ this.gcCurrent.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.gcCurrent.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcCurrent.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcCurrent.Caption = "Current";
+ this.gcCurrent.DisplayFormat.FormatString = "0.00";
+ this.gcCurrent.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.gcCurrent.FieldName = "current";
+ this.gcCurrent.Name = "gcCurrent";
+ this.gcCurrent.Visible = true;
+ this.gcCurrent.VisibleIndex = 7;
+ //
+ // gcSOC
+ //
+ this.gcSOC.AppearanceCell.Options.UseTextOptions = true;
+ this.gcSOC.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.gcSOC.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcSOC.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcSOC.Caption = "SOC";
+ this.gcSOC.DisplayFormat.FormatString = "0.0";
+ this.gcSOC.FieldName = "SOC";
+ this.gcSOC.Name = "gcSOC";
+ this.gcSOC.Visible = true;
+ this.gcSOC.VisibleIndex = 8;
+ //
+ // gcSOH
+ //
+ this.gcSOH.AppearanceCell.Options.UseTextOptions = true;
+ this.gcSOH.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.gcSOH.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcSOH.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcSOH.Caption = "SOH";
+ this.gcSOH.DisplayFormat.FormatString = "0.0";
+ this.gcSOH.FieldName = "SOH";
+ this.gcSOH.Name = "gcSOH";
+ this.gcSOH.Visible = true;
+ this.gcSOH.VisibleIndex = 9;
+ //
+ // gcTemp1
+ //
+ this.gcTemp1.AppearanceCell.Options.UseTextOptions = true;
+ this.gcTemp1.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.gcTemp1.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcTemp1.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcTemp1.Caption = "Temp1";
+ this.gcTemp1.DisplayFormat.FormatString = "0.0";
+ this.gcTemp1.FieldName = "temp_01";
+ this.gcTemp1.Name = "gcTemp1";
+ this.gcTemp1.Visible = true;
+ this.gcTemp1.VisibleIndex = 10;
+ //
+ // gcTemp2
+ //
+ this.gcTemp2.AppearanceCell.Options.UseTextOptions = true;
+ this.gcTemp2.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.gcTemp2.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcTemp2.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcTemp2.Caption = "Temp2";
+ this.gcTemp2.DisplayFormat.FormatString = "0.0";
+ this.gcTemp2.FieldName = "temp_02";
+ this.gcTemp2.Name = "gcTemp2";
+ this.gcTemp2.Visible = true;
+ this.gcTemp2.VisibleIndex = 11;
+ //
+ // gcTemp3
+ //
+ this.gcTemp3.AppearanceCell.Options.UseTextOptions = true;
+ this.gcTemp3.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.gcTemp3.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcTemp3.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcTemp3.Caption = "Temp3";
+ this.gcTemp3.DisplayFormat.FormatString = "0.0";
+ this.gcTemp3.FieldName = "temp_03";
+ this.gcTemp3.Name = "gcTemp3";
+ this.gcTemp3.Visible = true;
+ this.gcTemp3.VisibleIndex = 12;
+ //
+ // gcTemp4
+ //
+ this.gcTemp4.AppearanceCell.Options.UseTextOptions = true;
+ this.gcTemp4.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.gcTemp4.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcTemp4.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcTemp4.Caption = "Temp4";
+ this.gcTemp4.DisplayFormat.FormatString = "0.0";
+ this.gcTemp4.FieldName = "temp_04";
+ this.gcTemp4.Name = "gcTemp4";
+ this.gcTemp4.Visible = true;
+ this.gcTemp4.VisibleIndex = 13;
+ //
+ // gcTemp5
+ //
+ this.gcTemp5.AppearanceCell.Options.UseTextOptions = true;
+ this.gcTemp5.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.gcTemp5.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcTemp5.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcTemp5.Caption = "Temp5";
+ this.gcTemp5.DisplayFormat.FormatString = "0.0";
+ this.gcTemp5.FieldName = "temp_05";
+ this.gcTemp5.Name = "gcTemp5";
+ this.gcTemp5.Visible = true;
+ this.gcTemp5.VisibleIndex = 14;
+ //
+ // gcTemp6
+ //
+ this.gcTemp6.AppearanceCell.Options.UseTextOptions = true;
+ this.gcTemp6.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.gcTemp6.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcTemp6.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcTemp6.Caption = "Temp6";
+ this.gcTemp6.DisplayFormat.FormatString = "0.0";
+ this.gcTemp6.FieldName = "temp_06";
+ this.gcTemp6.Name = "gcTemp6";
+ this.gcTemp6.Visible = true;
+ this.gcTemp6.VisibleIndex = 15;
+ //
+ // cell_v_1
+ //
+ this.cell_v_1.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_1.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_1.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_1.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_1.Caption = "cell_v_1";
+ this.cell_v_1.DisplayFormat.FormatString = "0.000";
+ this.cell_v_1.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_1.FieldName = "cell_v_01";
+ this.cell_v_1.Name = "cell_v_1";
+ this.cell_v_1.Visible = true;
+ this.cell_v_1.VisibleIndex = 16;
+ //
+ // cell_v_2
+ //
+ this.cell_v_2.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_2.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_2.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_2.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_2.Caption = "cell_v_2";
+ this.cell_v_2.DisplayFormat.FormatString = "0.000";
+ this.cell_v_2.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_2.FieldName = "cell_v_02";
+ this.cell_v_2.Name = "cell_v_2";
+ this.cell_v_2.Visible = true;
+ this.cell_v_2.VisibleIndex = 17;
+ //
+ // cell_v_3
+ //
+ this.cell_v_3.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_3.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_3.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_3.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_3.Caption = "cell_v_3";
+ this.cell_v_3.DisplayFormat.FormatString = "0.000";
+ this.cell_v_3.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_3.FieldName = "cell_v_03";
+ this.cell_v_3.Name = "cell_v_3";
+ this.cell_v_3.Visible = true;
+ this.cell_v_3.VisibleIndex = 18;
+ //
+ // cell_v_4
+ //
+ this.cell_v_4.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_4.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_4.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_4.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_4.Caption = "cell_v_4";
+ this.cell_v_4.DisplayFormat.FormatString = "0.000";
+ this.cell_v_4.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_4.FieldName = "cell_v_04";
+ this.cell_v_4.Name = "cell_v_4";
+ this.cell_v_4.Visible = true;
+ this.cell_v_4.VisibleIndex = 19;
+ //
+ // cell_v_5
+ //
+ this.cell_v_5.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_5.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_5.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_5.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_5.Caption = "cell_v_5";
+ this.cell_v_5.DisplayFormat.FormatString = "0.000";
+ this.cell_v_5.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_5.FieldName = "cell_v_05";
+ this.cell_v_5.Name = "cell_v_5";
+ this.cell_v_5.Visible = true;
+ this.cell_v_5.VisibleIndex = 20;
+ //
+ // cell_v_6
+ //
+ this.cell_v_6.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_6.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_6.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_6.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_6.Caption = "cell_v_6";
+ this.cell_v_6.DisplayFormat.FormatString = "0.000";
+ this.cell_v_6.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_6.FieldName = "cell_v_06";
+ this.cell_v_6.Name = "cell_v_6";
+ this.cell_v_6.Visible = true;
+ this.cell_v_6.VisibleIndex = 21;
+ //
+ // cell_v_7
+ //
+ this.cell_v_7.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_7.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_7.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_7.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_7.Caption = "cell_v_7";
+ this.cell_v_7.DisplayFormat.FormatString = "0.000";
+ this.cell_v_7.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_7.FieldName = "cell_v_07";
+ this.cell_v_7.Name = "cell_v_7";
+ this.cell_v_7.Visible = true;
+ this.cell_v_7.VisibleIndex = 22;
+ //
+ // cell_v_8
+ //
+ this.cell_v_8.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_8.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_8.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_8.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_8.Caption = "cell_v_8";
+ this.cell_v_8.DisplayFormat.FormatString = "0.000";
+ this.cell_v_8.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_8.FieldName = "cell_v_08";
+ this.cell_v_8.Name = "cell_v_8";
+ this.cell_v_8.Visible = true;
+ this.cell_v_8.VisibleIndex = 23;
+ //
+ // cell_v_9
+ //
+ this.cell_v_9.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_9.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_9.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_9.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_9.Caption = "cell_v_9";
+ this.cell_v_9.DisplayFormat.FormatString = "0.000";
+ this.cell_v_9.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_9.FieldName = "cell_v_09";
+ this.cell_v_9.Name = "cell_v_9";
+ this.cell_v_9.Visible = true;
+ this.cell_v_9.VisibleIndex = 24;
+ //
+ // cell_v_10
+ //
+ this.cell_v_10.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_10.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_10.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_10.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_10.Caption = "cell_v_10";
+ this.cell_v_10.DisplayFormat.FormatString = "0.000";
+ this.cell_v_10.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_10.FieldName = "cell_v_10";
+ this.cell_v_10.Name = "cell_v_10";
+ this.cell_v_10.Visible = true;
+ this.cell_v_10.VisibleIndex = 25;
+ //
+ // cell_v_11
+ //
+ this.cell_v_11.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_11.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_11.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_11.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_11.Caption = "cell_v_11";
+ this.cell_v_11.DisplayFormat.FormatString = "0.000";
+ this.cell_v_11.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_11.FieldName = "cell_v_11";
+ this.cell_v_11.Name = "cell_v_11";
+ this.cell_v_11.Visible = true;
+ this.cell_v_11.VisibleIndex = 26;
+ //
+ // cell_v_12
+ //
+ this.cell_v_12.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_12.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_12.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_12.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_12.Caption = "cell_v_12";
+ this.cell_v_12.DisplayFormat.FormatString = "0.000";
+ this.cell_v_12.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_12.FieldName = "cell_v_12";
+ this.cell_v_12.Name = "cell_v_12";
+ this.cell_v_12.Visible = true;
+ this.cell_v_12.VisibleIndex = 27;
+ //
+ // cell_v_13
+ //
+ this.cell_v_13.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_13.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_13.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_13.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_13.Caption = "cell_v_13";
+ this.cell_v_13.DisplayFormat.FormatString = "0.000";
+ this.cell_v_13.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_13.FieldName = "cell_v_13";
+ this.cell_v_13.Name = "cell_v_13";
+ this.cell_v_13.Visible = true;
+ this.cell_v_13.VisibleIndex = 28;
+ //
+ // cell_v_14
+ //
+ this.cell_v_14.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_14.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_14.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_14.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_14.Caption = "cell_v_14";
+ this.cell_v_14.DisplayFormat.FormatString = "0.000";
+ this.cell_v_14.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_14.FieldName = "cell_v_14";
+ this.cell_v_14.Name = "cell_v_14";
+ this.cell_v_14.Visible = true;
+ this.cell_v_14.VisibleIndex = 29;
+ //
+ // cell_v_15
+ //
+ this.cell_v_15.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_15.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_15.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_15.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_15.Caption = "cell_v_15";
+ this.cell_v_15.DisplayFormat.FormatString = "0.000";
+ this.cell_v_15.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_15.FieldName = "cell_v_15";
+ this.cell_v_15.Name = "cell_v_15";
+ this.cell_v_15.Visible = true;
+ this.cell_v_15.VisibleIndex = 30;
+ //
+ // cell_v_16
+ //
+ this.cell_v_16.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_16.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_16.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_16.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_16.Caption = "cell_v_16";
+ this.cell_v_16.DisplayFormat.FormatString = "0.000";
+ this.cell_v_16.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_16.FieldName = "cell_v_16";
+ this.cell_v_16.Name = "cell_v_16";
+ this.cell_v_16.Visible = true;
+ this.cell_v_16.VisibleIndex = 31;
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlGroup3,
+ this.layoutControlGroup4});
+ this.layoutControlGroup2.Name = "Root";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(903, 526);
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // layoutControlGroup3
+ //
+ this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.emptySpaceItem1,
+ this.layoutControlItem5});
+ this.layoutControlGroup3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup3.Name = "layoutControlGroup3";
+ this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup3.Size = new System.Drawing.Size(899, 64);
+ this.layoutControlGroup3.Text = "Command";
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 0);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(773, 35);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.btnBmsHistoryReq;
+ this.layoutControlItem5.Location = new System.Drawing.Point(773, 0);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(118, 35);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // layoutControlGroup4
+ //
+ this.layoutControlGroup4.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem4,
+ this.layoutControlItem6,
+ this.emptySpaceItem2});
+ this.layoutControlGroup4.Location = new System.Drawing.Point(0, 64);
+ this.layoutControlGroup4.Name = "layoutControlGroup4";
+ this.layoutControlGroup4.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup4.Size = new System.Drawing.Size(899, 458);
+ this.layoutControlGroup4.Text = "Result";
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.gcBmsHistory;
+ this.layoutControlItem4.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(104, 24);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(891, 392);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.btnExportExcel;
+ this.layoutControlItem6.Location = new System.Drawing.Point(774, 392);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(117, 37);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // emptySpaceItem2
+ //
+ this.emptySpaceItem2.AllowHotTrack = false;
+ this.emptySpaceItem2.Location = new System.Drawing.Point(0, 392);
+ this.emptySpaceItem2.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem2.Name = "emptySpaceItem2";
+ this.emptySpaceItem2.Size = new System.Drawing.Size(774, 37);
+ this.emptySpaceItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // btnClose
+ //
+ this.btnClose.Location = new System.Drawing.Point(3, 559);
+ this.btnClose.Name = "btnClose";
+ this.btnClose.Size = new System.Drawing.Size(905, 40);
+ this.btnClose.StyleController = this.layoutControl1;
+ this.btnClose.TabIndex = 5;
+ this.btnClose.Text = "Close";
+ this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem2,
+ this.layoutControlItem3});
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(911, 602);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.btnClose;
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 556);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(909, 44);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.tabHistory;
+ this.layoutControlItem3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(909, 556);
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // TmrCheckReq
+ //
+ this.TmrCheckReq.Interval = 500;
+ this.TmrCheckReq.Tick += new System.EventHandler(this.TmrCheckReq_Tick);
+ //
+ // fmxHistory
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(911, 602);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Image = ((System.Drawing.Image)(resources.GetObject("fmxHistory.IconOptions.Image")));
+ this.Name = "fmxHistory";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "History";
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.tabHistory)).EndInit();
+ this.tabHistory.ResumeLayout(false);
+ this.pgGuiHistory.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit();
+ this.layoutControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ this.pgBmsHistory.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit();
+ this.layoutControl3.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.gcBmsHistory)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gvBmsHistory)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private Controls.ucHistroy ucHistroy1;
+ private DevExpress.XtraEditors.SimpleButton btnClose;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraTab.XtraTabControl tabHistory;
+ private DevExpress.XtraTab.XtraTabPage pgGuiHistory;
+ private DevExpress.XtraLayout.LayoutControl layoutControl2;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraTab.XtraTabPage pgBmsHistory;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.LayoutControl layoutControl3;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraGrid.GridControl gcBmsHistory;
+ private DevExpress.XtraGrid.Views.Grid.GridView gvBmsHistory;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraEditors.SimpleButton btnBmsHistoryReq;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup4;
+ private DevExpress.XtraGrid.Columns.GridColumn gcHistDateTime;
+ private DevExpress.XtraGrid.Columns.GridColumn gcStatus;
+ private DevExpress.XtraGrid.Columns.GridColumn gcWarning;
+ private DevExpress.XtraGrid.Columns.GridColumn gcProtect;
+ private DevExpress.XtraGrid.Columns.GridColumn gcError;
+ private DevExpress.XtraGrid.Columns.GridColumn gcVoltage;
+ private DevExpress.XtraGrid.Columns.GridColumn gcCurrent;
+ private DevExpress.XtraGrid.Columns.GridColumn gcSOC;
+ private DevExpress.XtraGrid.Columns.GridColumn gcSOH;
+ private DevExpress.XtraGrid.Columns.GridColumn gcTemp1;
+ private DevExpress.XtraGrid.Columns.GridColumn gcTemp2;
+ private DevExpress.XtraGrid.Columns.GridColumn gcTemp3;
+ private DevExpress.XtraGrid.Columns.GridColumn gcTemp4;
+ private DevExpress.XtraGrid.Columns.GridColumn gcTemp5;
+ private DevExpress.XtraGrid.Columns.GridColumn gcTemp6;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_1;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_2;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_3;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_4;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_5;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_6;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_7;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_8;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_9;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_10;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_11;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_12;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_13;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_14;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_15;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_16;
+ private DevExpress.XtraEditors.SimpleButton btnExportExcel;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+ private DevExpress.XtraGrid.Columns.GridColumn gcNo;
+ private System.Windows.Forms.Timer TmrCheckReq;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxHistory.cs b/LFP_Manager/Forms/fmxHistory.cs
new file mode 100644
index 0000000..b6d8f8a
--- /dev/null
+++ b/LFP_Manager/Forms/fmxHistory.cs
@@ -0,0 +1,321 @@
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using System;
+using System.Data;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Forms
+{
+ public partial class fmxHistory : DevExpress.XtraEditors.XtraForm
+ {
+ #region VARIABLES
+
+ private int SystemId = 0;
+ private CommConfig Config;
+
+ private byte[] rData = null;
+ private ushort curr_addr = 0;
+ private int hist_no = 0;
+ private bool stopReq = true;
+
+ private DateTime ReqDateTime;
+
+ private DataTable BmsHistoryTable = null;
+
+ public event SendDataUartEvent OnSendUartData = null;
+
+ #endregion
+
+ #region CONTRUCTORS
+
+ //public fmxHistory()
+ //{
+ // InitializeComponent();
+ //}
+
+ public fmxHistory(CommConfig aConfig, int systemId)
+ {
+ InitializeComponent();
+
+ Config = aConfig;
+
+ ucHistroy1.SetCommCofig(Config);
+ SystemId = systemId;
+
+ CreateHistoryColomn(ref BmsHistoryTable);
+
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ pgBmsHistory.PageEnabled = true;
+ //tabHistory.TabPages.Remove(pgBmsHistory);
+ break;
+ case csConstData.CommType.COMM_RS485:
+ pgBmsHistory.PageEnabled = false;
+ tabHistory.TabPages.Remove(pgBmsHistory);
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ pgBmsHistory.PageEnabled = false;
+ tabHistory.TabPages.Remove(pgBmsHistory);
+ break;
+ default:
+ break;
+ }
+ }
+
+ #endregion
+
+ #region INITIALIZE COMPONENT
+
+ private void CreateHistoryColomn(ref DataTable hDT)
+ {
+ hDT = new DataTable();
+
+ hDT.Columns.Add("no", typeof(int));
+ hDT.Columns.Add("datetime", typeof(DateTime));
+ hDT.Columns.Add("status", typeof(int));
+ hDT.Columns.Add("warning", typeof(string));
+ hDT.Columns.Add("protect", typeof(string));
+ hDT.Columns.Add("error", typeof(string));
+
+ hDT.Columns.Add("voltage", typeof(float));
+ hDT.Columns.Add("current", typeof(float));
+ hDT.Columns.Add("SOC", typeof(float));
+ hDT.Columns.Add("SOH", typeof(float));
+
+ for (int i = 0; i < 6; i++)
+ {
+ hDT.Columns.Add(string.Format("temp_{0:00}", i + 1), typeof(float));
+ }
+ for (int i = 0; i < 16; i++)
+ {
+ hDT.Columns.Add(string.Format("cell_v_{0:00}", i + 1), typeof(float));
+ }
+ gcBmsHistory.DataSource = hDT;
+ }
+
+ #endregion
+
+ #region PUBLIC FUNCTIONS
+ private short[] ByteArrTo2Short(byte[] bytes)
+ {
+ short[] result = null;
+
+ if (bytes != null)
+ {
+ int len = bytes[2];
+ result = new short[len / 2];
+
+ for (int i = 0; i < result.Length; i++)
+ {
+ result[i] = (short)((bytes[3 + (i * 2) + 0] << 8) + bytes[3 + (i * 2) + 1]);
+ }
+ }
+ return result;
+ }
+ public void RecvUardData(byte[] data)
+ {
+ rData = data;
+
+ if ((rData != null) && (rData.Length > 58))
+ {
+ try
+ {
+ DataRow hRow = BmsHistoryTable.NewRow();
+
+ short[] shorts = ByteArrTo2Short(data);
+
+ int pos = 0;
+ int yy, MM, dd, HH, mm, ss;
+ Int32 iDateTime = (rData[3 + 2] << 24) | (rData[3 + 3] << 16) | (rData[3 + 0] << 8) | (rData[3 + 1] << 0);
+ //Int32 iDateTime = (Int32)((shorts[pos + 1] << 16) | (shorts[pos + 0] << 0));
+ yy = (iDateTime >> 26) & 0x003F;
+ MM = (iDateTime >> 22) & 0x000F;
+ dd = (iDateTime >> 17) & 0x001F;
+ HH = (iDateTime >> 12) & 0x001F;
+ mm = (iDateTime >> 6) & 0x003F;
+ ss = (iDateTime >> 0) & 0x003F;
+
+ hRow["no"] = hist_no;
+ string stDateTime = string.Format("{0}-{1:00}-{2:00} {3:00}:{4:00}:{5:00}"
+ , yy
+ , MM
+ , dd
+ , HH
+ , mm
+ , ss
+ );
+
+ DateTime aDateTime = Convert.ToDateTime(stDateTime);
+ hRow["datetime"] = aDateTime;
+
+ pos = 2;
+ hRow["status"] = shorts[pos++];
+ hRow["warning"] = string.Format("{0:X4}", shorts[pos++]);
+ hRow["protect"] = string.Format("{0:X4}", shorts[pos++]);
+ hRow["error"] = string.Format("{0:X4}", shorts[pos++]);
+ hRow["voltage"] = string.Format("{0:0.00}", Convert.ToDouble(shorts[pos++]) / 100);
+ hRow["current"] = string.Format("{0:0.00}", Convert.ToDouble(shorts[pos++]) / 100);
+ hRow["SOC"] = string.Format("{0:0.0}", Convert.ToDouble(shorts[pos++]) / 1);
+
+ // Temperature
+ for (int i = 0; i < 3; i++)
+ {
+ hRow[string.Format("temp_{0:00}", (i * 2) + 1)] = Convert.ToDouble((byte)(shorts[pos] >> 8));
+ hRow[string.Format("temp_{0:00}", (i * 2) + 2)] = Convert.ToDouble((byte)(shorts[pos++] >> 0));
+ }
+ // Cell Voltage
+ for (int i = 0; i < 16; i++)
+ {
+ hRow[string.Format("cell_v_{0:00}", i + 1)] = Convert.ToDouble(shorts[pos++]) / 1000;
+ }
+ hRow["SOH"] = string.Format("{0:0.0}", Convert.ToDouble(shorts[pos++]) / 1);
+
+ BmsHistoryTable.Rows.Add(hRow);
+ }
+ catch (Exception e)
+ {
+ MessageBox.Show(e.Message);
+ }
+ }
+ gvBmsHistory.BestFitColumns();
+ gvBmsHistory.ClearSelection();
+
+ hist_no++;
+ curr_addr += 0x20;
+ RequestHistoryData(curr_addr);
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+
+ private void btnClose_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+
+ private void btnBmsHistoryReq_Click(object sender, EventArgs e)
+ {
+ if (stopReq)
+ {
+ BmsHistoryTable.Rows.Clear();
+
+ stopReq = false;
+ hist_no = 1;
+ curr_addr = 0x0200;
+ TmrCheckReq.Enabled = true;
+
+ RequestHistoryData(curr_addr);
+
+ btnBmsHistoryReq.Text = "STOP";
+ }
+ else
+ {
+ stopReq = true;
+ //btnBmsHistoryReq.Text = "Request";
+ //TmrCheckReq.Enabled = false;
+ }
+ }
+
+ private void RequestHistoryData(ushort haddr)
+ {
+ byte[] crc;
+ ushort addr = haddr;
+
+ // Normal mode --> Bootloader mode
+ byte[] sdata = new byte[8];
+ sdata[0] = (byte)SystemId; // Dev Address
+ sdata[1] = 0x03; // Function Code
+ sdata[2] = (byte)(addr >> 8); // Address H
+ sdata[3] = (byte)(addr >> 0); // Address L
+ sdata[4] = 0x00; // Number of Register H
+ sdata[5] = 0x1D; // Number of Register L
+
+ crc = csSerialCommFunction.GetCRC(sdata, 6);
+
+ sdata[6] = crc[1]; // CRCH
+ sdata[7] = crc[0]; // CRCL
+
+ if (stopReq == false)
+ {
+ OnSendUartData?.Invoke(addr, sdata, false, 1);
+ ReqDateTime = DateTime.Now;
+ }
+ }
+
+ private void btnExportExcel_Click(object sender, EventArgs e)
+ {
+ SaveFileDialog sDialog = new SaveFileDialog();
+ sDialog.Title = "Select save file";
+ sDialog.DefaultExt = "xlsx";
+ sDialog.Filter = "Excel files 2003 (*.xls)|*.xls|All files (*.*)|*.*";
+
+ if (sDialog.ShowDialog() == DialogResult.OK)
+ {
+ string filename = sDialog.FileName;
+
+ try
+ {
+ csExcelExport.ExportToExcelExt(BmsHistoryTable, filename);
+
+ MessageBox.Show("Complete Export Excel File", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+ #endregion
+
+ #region GRID DISPLAY
+ private void gvBmsHistory_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)
+ {
+ if (e.Column.FieldName == "status")
+ {
+ int status = Convert.ToInt32(e.Value);
+ switch (status)
+ {
+ case 0:
+ e.DisplayText = "Standby";
+ break;
+ case 1:
+ e.DisplayText = "Charging";
+ break;
+ case 2:
+ e.DisplayText = "Discharging";
+ break;
+ case 4:
+ e.DisplayText = "Protect";
+ break;
+ case 8:
+ e.DisplayText = "Charging-Lmt";
+ break;
+ case 0x32:
+ e.DisplayText = "Power-On";
+ break;
+ default:
+ e.DisplayText = string.Format("Unknown({0:X4})", status);
+ break;
+ }
+ }
+ }
+ #endregion
+
+ #region TIMER EVENT
+ private void TmrCheckReq_Tick(object sender, EventArgs e)
+ {
+ DateTime nDateTime = ReqDateTime.AddSeconds(1);
+
+ if (nDateTime < DateTime.Now)
+ {
+ TmrCheckReq.Enabled = false;
+
+ MessageBox.Show("Finished BMS History Read", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ btnBmsHistoryReq.Text = "Request";
+ }
+ }
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Forms/fmxHistory.resx b/LFP_Manager/Forms/fmxHistory.resx
new file mode 100644
index 0000000..2e52af4
--- /dev/null
+++ b/LFP_Manager/Forms/fmxHistory.resx
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ vAAADrwBlbxySQAABMxJREFUWEflVWtsFVUQPrdtSvilMRIVY8T4h1/aoDGKqIWCIBXR+IgaAmriD/CR
+ SIyVYjSSPmhLrVVTBa6tQNGIBSqYCEEera34KCqFEmgLNa34qPRaeqHv23G+2Z3tXrp3u/iHGCeZnN09
+ M2e++WbOrKFLLP8dACMjI87qp2oTVAIBcB8Y8zncvRcUxEUxoIdGon3UdbbX0TPdvdR9vl/23HZBZFwA
+ euDQcEzedze00aSF79Ckx9+nKx8rc3Tyo2V0+GSn2AyzbVAgvgD0gFgsRsOsfQNDNPXZCjLpq8nc9xaZ
+ ucWW4vmuPJqZ9Rm8xDZIcEggBjT7VR8fJHNnLiUveNsKOr/EUn5Ovp+/MYhNe5vEFj5BWEgIQJ1BJ5qr
+ 5dcITcwsoZBmzIFDeBcA9jq7iK554gOK9PQJC8KEfVYiGbcEmv0Db1aTuTufkjKt7CXgvWu4BKw2C0lg
+ YUYevbTugPgM2iz4iScAzX5waFjePz/YSmZWgUWzBuJSLF+7nx7J3SlB5Rv2GMwEXrUhxyvFGABqiMaD
+ 87neAbrxqTCF5hRx9hbVoTlr6CrufDRly+kIpc4rpiQO6oCbWUDpWVvsJPxZGAsAyg5KffZHdXGNJ+s9
+ +bRhz1HZh7xa8bU0oGMDEPxeufeY7PuxEAdAjfQeH2/vsrJj9coOB6PRengITVmyXpjRxgzZDfk3Dy3Y
+ gFGN4RbPEgAAZP7r26zGc+rL2fEt+Kn1TweA9smWmuNim8pDCgxgxfsKZgeiLFwoDgBs6qGQ7fUtdtcn
+ 6HAOjMxgj17AikFk0t7gkuWRmZ5L5o4cMrfnUE1jB9uOMusGIgD0g0w8NoqeH6Api9eTySi06LQpvW7R
+ Ojp7rl8Cs5P4uAX/hWwGmF1RJ5mv3FBHr5Tto+pvWmXfi4U4BpTOrPLa+KuFldn4lGmGACSGTUPzH7Tn
+ 0C9UsfsIlWxtoPCXjfTF96dox7etcnWhO787SZ981UT1TactXwbvZsHoi9JztO0vuceotwTH4OGun51d
+ JVmrHcB2MxsdnT104HA7vcYZX79orVUCph2ApRQzuBTTc+jyh96l385ExzQkA7AecDAkY0UVB1w9mj0r
+ bsKRtk4ZyQrAS/C9fFcjXc1/RsNzI3VhKaXwORMetBpycfEusXOXgksw2nib9x3j+5vvTDy511wK3HMI
+ slZHrKrICnua2YmOCE19+kOrh7SJsc4qpP0/t4uNgjB4wAGo6bVPMoUZRaONx1ncsCRMUZ6GsIFCFARE
+ QejzwOCQPDfzz+syvopJ87SUDCC9gG5etpFt+AZxXAA2vf2Ww3LuXtTMoR4OXPtt9c2yr9m7g7tF9uy1
+ 3wZRWv3j2Gbm95Lth2Qf11duQeOpTmm8FM4agVMWlErN5q7cKoZe18dL1AaZwQd609KNMj1RTpydzP10
+ xcPv0e9dUbbjEuBeT3u+0upcrhmMETyFJ96Jjq64xgsKAmqBJqrlISQ3gumXs3memNtWUSZPWYjJCtdS
+ 2nObaNoLlQLk1hc3Uxo3UGHVD2Lg1/V+Ah/tmZfDNZT2TLmcjRi3sCLmDvzmUYdEguw1+MWAcPv4+aH/
+ nFGMYKryzvVR8TskkaiPnuUVA+JMQi+F6Ppv5MLzvNT5F1wq+b8DIPoHjJf5qaq9hPwAAAAASUVORK5C
+ YII=
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxInventoryConfig.Designer.cs b/LFP_Manager/Forms/fmxInventoryConfig.Designer.cs
new file mode 100644
index 0000000..5e4eae1
--- /dev/null
+++ b/LFP_Manager/Forms/fmxInventoryConfig.Designer.cs
@@ -0,0 +1,454 @@
+namespace LFP_Manager.Forms
+{
+ partial class fmxInventoryConfig
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxInventoryConfig));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.gbSerialNo = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
+ this.nSerialNo = new DevExpress.XtraEditors.TextEdit();
+ this.lbSerialNo = new DevExpress.XtraEditors.LabelControl();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.gbMDate = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl();
+ this.lbMDate = new DevExpress.XtraEditors.LabelControl();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.tmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.nManuDate = new DevExpress.XtraEditors.TextEdit();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.BtnManuDateWrite = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.BtnSerialNoWrite = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.gbSerialNo)).BeginInit();
+ this.gbSerialNo.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit();
+ this.layoutControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.nSerialNo.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbMDate)).BeginInit();
+ this.gbMDate.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit();
+ this.layoutControl3.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.nManuDate.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.btnClose);
+ this.layoutControl1.Controls.Add(this.gbSerialNo);
+ this.layoutControl1.Controls.Add(this.gbMDate);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(999, 164, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(720, 425);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // btnClose
+ //
+ this.btnClose.Appearance.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnClose.Appearance.Options.UseFont = true;
+ this.btnClose.Location = new System.Drawing.Point(4, 373);
+ this.btnClose.Name = "btnClose";
+ this.btnClose.Size = new System.Drawing.Size(712, 48);
+ this.btnClose.StyleController = this.layoutControl1;
+ this.btnClose.TabIndex = 7;
+ this.btnClose.Text = "Close";
+ this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+ //
+ // gbSerialNo
+ //
+ this.gbSerialNo.Controls.Add(this.layoutControl2);
+ this.gbSerialNo.Location = new System.Drawing.Point(4, 174);
+ this.gbSerialNo.Name = "gbSerialNo";
+ this.gbSerialNo.Size = new System.Drawing.Size(712, 165);
+ this.gbSerialNo.TabIndex = 5;
+ this.gbSerialNo.Text = "Serial Number";
+ //
+ // layoutControl2
+ //
+ this.layoutControl2.Controls.Add(this.BtnSerialNoWrite);
+ this.layoutControl2.Controls.Add(this.nSerialNo);
+ this.layoutControl2.Controls.Add(this.lbSerialNo);
+ this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl2.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl2.Name = "layoutControl2";
+ this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(993, 64, 650, 400);
+ this.layoutControl2.Root = this.layoutControlGroup1;
+ this.layoutControl2.Size = new System.Drawing.Size(708, 140);
+ this.layoutControl2.TabIndex = 0;
+ this.layoutControl2.Text = "layoutControl2";
+ //
+ // nSerialNo
+ //
+ this.nSerialNo.Location = new System.Drawing.Point(7, 70);
+ this.nSerialNo.Name = "nSerialNo";
+ this.nSerialNo.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 36F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.nSerialNo.Properties.Appearance.Options.UseFont = true;
+ this.nSerialNo.Properties.Appearance.Options.UseTextOptions = true;
+ this.nSerialNo.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.nSerialNo.Properties.MaxLength = 16;
+ this.nSerialNo.Size = new System.Drawing.Size(605, 64);
+ this.nSerialNo.StyleController = this.layoutControl2;
+ this.nSerialNo.TabIndex = 5;
+ //
+ // lbSerialNo
+ //
+ this.lbSerialNo.Appearance.Font = new System.Drawing.Font("Tahoma", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbSerialNo.Appearance.Options.UseFont = true;
+ this.lbSerialNo.Location = new System.Drawing.Point(7, 7);
+ this.lbSerialNo.Name = "lbSerialNo";
+ this.lbSerialNo.Size = new System.Drawing.Size(694, 59);
+ this.lbSerialNo.StyleController = this.layoutControl2;
+ this.lbSerialNo.TabIndex = 4;
+ this.lbSerialNo.Text = "Serial No:";
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "Root";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem3,
+ this.layoutControlItem4,
+ this.layoutControlItem10});
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(708, 140);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.lbSerialNo;
+ this.layoutControlItem3.CustomizationFormText = "layoutControlItem3";
+ this.layoutControlItem3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(698, 63);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.nSerialNo;
+ this.layoutControlItem4.CustomizationFormText = "layoutControlItem4";
+ this.layoutControlItem4.Location = new System.Drawing.Point(0, 63);
+ this.layoutControlItem4.MaxSize = new System.Drawing.Size(0, 67);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(171, 67);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(609, 67);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // gbMDate
+ //
+ this.gbMDate.Controls.Add(this.layoutControl3);
+ this.gbMDate.Location = new System.Drawing.Point(4, 4);
+ this.gbMDate.Name = "gbMDate";
+ this.gbMDate.Size = new System.Drawing.Size(712, 166);
+ this.gbMDate.TabIndex = 4;
+ this.gbMDate.Text = "Manufacture Date";
+ //
+ // layoutControl3
+ //
+ this.layoutControl3.Controls.Add(this.BtnManuDateWrite);
+ this.layoutControl3.Controls.Add(this.nManuDate);
+ this.layoutControl3.Controls.Add(this.lbMDate);
+ this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl3.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl3.Name = "layoutControl3";
+ this.layoutControl3.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(993, 0, 650, 400);
+ this.layoutControl3.Root = this.layoutControlGroup2;
+ this.layoutControl3.Size = new System.Drawing.Size(708, 141);
+ this.layoutControl3.TabIndex = 0;
+ this.layoutControl3.Text = "layoutControl3";
+ //
+ // lbMDate
+ //
+ this.lbMDate.Appearance.Font = new System.Drawing.Font("Tahoma", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbMDate.Appearance.Options.UseFont = true;
+ this.lbMDate.Location = new System.Drawing.Point(7, 7);
+ this.lbMDate.Name = "lbMDate";
+ this.lbMDate.Size = new System.Drawing.Size(694, 59);
+ this.lbMDate.StyleController = this.layoutControl3;
+ this.lbMDate.TabIndex = 6;
+ this.lbMDate.Text = "Manufacture Date:";
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.CustomizationFormText = "Root";
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem9,
+ this.layoutControlItem7,
+ this.layoutControlItem8});
+ this.layoutControlGroup2.Name = "Root";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(708, 141);
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // layoutControlItem9
+ //
+ this.layoutControlItem9.Control = this.lbMDate;
+ this.layoutControlItem9.CustomizationFormText = "layoutControlItem9";
+ this.layoutControlItem9.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem9.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem9.Name = "layoutControlItem9";
+ this.layoutControlItem9.Size = new System.Drawing.Size(698, 63);
+ this.layoutControlItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem9.TextVisible = false;
+ //
+ // Root
+ //
+ this.Root.CustomizationFormText = "Root";
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1,
+ this.layoutControlItem2,
+ this.layoutControlItem6,
+ this.emptySpaceItem1});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.Root.Size = new System.Drawing.Size(720, 425);
+ this.Root.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.gbMDate;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(716, 170);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.gbSerialNo;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 170);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(716, 169);
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.btnClose;
+ this.layoutControlItem6.CustomizationFormText = "layoutControlItem6";
+ this.layoutControlItem6.Location = new System.Drawing.Point(0, 369);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(716, 52);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1";
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 339);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(716, 30);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // tmrDisplay
+ //
+ this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick);
+ //
+ // nManuDate
+ //
+ this.nManuDate.Location = new System.Drawing.Point(7, 70);
+ this.nManuDate.Name = "nManuDate";
+ this.nManuDate.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 36F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.nManuDate.Properties.Appearance.Options.UseFont = true;
+ this.nManuDate.Properties.Appearance.Options.UseTextOptions = true;
+ this.nManuDate.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.nManuDate.Properties.MaxLength = 8;
+ this.nManuDate.Size = new System.Drawing.Size(605, 64);
+ this.nManuDate.StyleController = this.layoutControl3;
+ this.nManuDate.TabIndex = 7;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.nManuDate;
+ this.layoutControlItem7.Location = new System.Drawing.Point(0, 63);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(609, 68);
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // BtnManuDateWrite
+ //
+ this.BtnManuDateWrite.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.BtnManuDateWrite.Appearance.Options.UseFont = true;
+ this.BtnManuDateWrite.Location = new System.Drawing.Point(616, 70);
+ this.BtnManuDateWrite.Name = "BtnManuDateWrite";
+ this.BtnManuDateWrite.Size = new System.Drawing.Size(85, 64);
+ this.BtnManuDateWrite.StyleController = this.layoutControl3;
+ this.BtnManuDateWrite.TabIndex = 8;
+ this.BtnManuDateWrite.Text = "Apply";
+ this.BtnManuDateWrite.Click += new System.EventHandler(this.BtnManuDateWrite_Click);
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.BtnManuDateWrite;
+ this.layoutControlItem8.Location = new System.Drawing.Point(609, 63);
+ this.layoutControlItem8.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(89, 68);
+ this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem8.TextVisible = false;
+ //
+ // BtnSerialNoWrite
+ //
+ this.BtnSerialNoWrite.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.BtnSerialNoWrite.Appearance.Options.UseFont = true;
+ this.BtnSerialNoWrite.Location = new System.Drawing.Point(616, 70);
+ this.BtnSerialNoWrite.Name = "BtnSerialNoWrite";
+ this.BtnSerialNoWrite.Size = new System.Drawing.Size(85, 63);
+ this.BtnSerialNoWrite.StyleController = this.layoutControl2;
+ this.BtnSerialNoWrite.TabIndex = 6;
+ this.BtnSerialNoWrite.Text = "Apply";
+ this.BtnSerialNoWrite.Click += new System.EventHandler(this.BtnSerialNoWrite_Click);
+ //
+ // layoutControlItem10
+ //
+ this.layoutControlItem10.Control = this.BtnSerialNoWrite;
+ this.layoutControlItem10.Location = new System.Drawing.Point(609, 63);
+ this.layoutControlItem10.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem10.Name = "layoutControlItem10";
+ this.layoutControlItem10.Size = new System.Drawing.Size(89, 67);
+ this.layoutControlItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem10.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem10.TextVisible = false;
+ //
+ // fmxInventoryConfig
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(720, 425);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxInventoryConfig.IconOptions.Icon")));
+ this.Name = "fmxInventoryConfig";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Inventory Config";
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.gbSerialNo)).EndInit();
+ this.gbSerialNo.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit();
+ this.layoutControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.nSerialNo.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbMDate)).EndInit();
+ this.gbMDate.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit();
+ this.layoutControl3.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.nManuDate.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraEditors.GroupControl gbMDate;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraEditors.GroupControl gbSerialNo;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.LayoutControl layoutControl2;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.TextEdit nSerialNo;
+ private DevExpress.XtraEditors.LabelControl lbSerialNo;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraEditors.SimpleButton btnClose;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private System.Windows.Forms.Timer tmrDisplay;
+ private DevExpress.XtraLayout.LayoutControl layoutControl3;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraEditors.LabelControl lbMDate;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
+ private DevExpress.XtraEditors.SimpleButton BtnManuDateWrite;
+ private DevExpress.XtraEditors.TextEdit nManuDate;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ private DevExpress.XtraEditors.SimpleButton BtnSerialNoWrite;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxInventoryConfig.cs b/LFP_Manager/Forms/fmxInventoryConfig.cs
new file mode 100644
index 0000000..71cd196
--- /dev/null
+++ b/LFP_Manager/Forms/fmxInventoryConfig.cs
@@ -0,0 +1,232 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Controls;
+using LFP_Manager.Utils;
+
+namespace LFP_Manager.Forms
+{
+ public delegate void InvDataUpdateEvent(object sendor);
+ public delegate void InvDateCmdEvent(int sId, int mode, int index, int flag,
+ ref CsDeviceData.DeviceModuleData.DeviceInforation wData);
+ public delegate void InvDateCmdEventBySnmp(int mode, string wData);
+
+ public partial class fmxInventoryConfig : DevExpress.XtraEditors.XtraForm
+ {
+ #region VARIABLES
+
+ int SystemId = 0;
+ int CmdResult = 0;
+ CommConfig Config;
+ CsDeviceData.DeviceModuleData ModuleData;
+ DeviceInforation wInvData;
+
+ public event InvDataUpdateEvent OnUpdate = null;
+ public event InvDateCmdEvent OnCommand = null;
+
+ public event SendDataUartEvent OnSendUartData = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+ public fmxInventoryConfig()
+ {
+ InitializeComponent();
+ }
+ public fmxInventoryConfig(int sId, ref CommConfig aConfig, ref CsDeviceData.DeviceModuleData mData)
+ {
+ InitializeComponent();
+
+ SystemId = sId;
+ ModuleData = mData;
+ Config = aConfig;
+
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ nManuDate.Enabled = true;
+ BtnManuDateWrite.Enabled = true;
+ nSerialNo.Enabled = true;
+ BtnSerialNoWrite.Enabled = true;
+ break;
+ case csConstData.CommType.COMM_RS485:
+ nManuDate.Enabled = false;
+ BtnManuDateWrite.Enabled = false;
+ nSerialNo.Enabled = false;
+ BtnSerialNoWrite.Enabled = false;
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ nManuDate.Enabled = false;
+ BtnManuDateWrite.Enabled = false;
+ nSerialNo.Enabled = false;
+ BtnSerialNoWrite.Enabled = false;
+ break;
+ default:
+ break;
+ }
+
+ tmrDisplay.Enabled = true;
+ }
+ #endregion
+
+ #region INIT DATA
+ void InitData()
+ {
+ wInvData = new DeviceInforation
+ {
+ BMS_SN = new byte[16],
+ Module_SN = new byte[24]
+ }; //22.06.30 Byul 32->16, 32->24
+ }
+ #endregion
+
+ #region DISPLAY DATA
+
+ private void DisplayValue()
+ {
+ // Manufacture Date
+ lbMDate.Text = String.Format("Manufacture Date: {0}", ModuleData.Information.ManufacturingDate);
+
+ // Device Address%
+ lbSerialNo.Text = String.Format("Serial No: {0}", ModuleData.Information.HwSerialNumber);
+ }
+ #endregion
+
+ #region TIMER ENVENT
+ private void tmrDisplay_Tick(object sender, EventArgs e)
+ {
+ DisplayValue();
+ if (OnUpdate != null)
+ {
+ OnUpdate(this);
+ }
+ }
+ #endregion
+
+ #region PUBLIC FUCTIONS
+ public void UpdateData(ref CsDeviceData.DeviceModuleData mData)
+ {
+ ModuleData = mData;
+ }
+
+ public void RecvData(string result, bool error)
+ {
+ Cmd_Result(result, error);
+ }
+
+ public void Cmd_Result(string result, bool error)
+ {
+ if (this.InvokeRequired)
+ {
+ this.Invoke(new MethodInvoker(delegate ()
+ {
+ if (error)
+ MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ else
+ MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }));
+ }
+ else
+ {
+ if (error)
+ MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ else
+ MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+
+ private void btnClose_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+
+ private void BtnManuDateWrite_Click(object sender, EventArgs e)
+ {
+ if ((nManuDate.Text == "") || (nManuDate.Text.Length > 8))
+ {
+ MessageBox.Show("Check Manufacture Date Format", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+
+ byte[] crc;
+ ushort addr = 0x00A3;
+ int i = 0;
+ // Normal mode --> Bootloader mode
+ byte[] sdata = new byte[7 + 8 + 2];
+ sdata[i++] = (byte)SystemId; // Dev Address
+ sdata[i++] = 0x10; // Function Code
+ sdata[i++] = (byte)(addr >> 8); // Address H
+ sdata[i++] = (byte)(addr >> 0); // Address L
+ sdata[i++] = 0x00; // Number of Register H
+ sdata[i++] = 0x04; // Number of Register L
+ sdata[i++] = 0x08; // Byte Count
+
+ string str = nManuDate.Text;
+ byte[] aData = Encoding.UTF8.GetBytes(str);
+
+ for (int j = 0; j < 8; j++)
+ {
+ sdata[i++] = aData[j];
+ }
+ crc = csSerialCommFunction.GetCRC(sdata, i);
+
+ sdata[i++] = crc[1]; // CRCH
+ sdata[i++] = crc[0]; // CRCL
+
+ OnSendUartData?.Invoke(addr, sdata, false, 1);
+ }
+
+ private void BtnSerialNoWrite_Click(object sender, EventArgs e)
+ {
+ if ((nSerialNo.Text == "") || (nSerialNo.Text.Length > 16))
+ {
+ MessageBox.Show("Check Serial Number format", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+
+ byte[] crc;
+ ushort addr = 0x0078;
+ int i = 0;
+ // Normal mode --> Bootloader mode
+ byte[] sdata = new byte[7 + 16 + 2];
+ sdata[i++] = (byte)SystemId; // Dev Address
+ sdata[i++] = 0x10; // Function Code
+ sdata[i++] = (byte)(addr >> 8); // Address H
+ sdata[i++] = (byte)(addr >> 0); // Address L
+ sdata[i++] = 0x00; // Number of Register H
+ sdata[i++] = 0x08; // Number of Register L
+ sdata[i++] = 0x10; // Byte Count
+
+ string str = nSerialNo.Text;
+ byte[] aData = Encoding.UTF8.GetBytes(str);
+
+ for (int j = 0; j < aData.Length; j++)
+ {
+ sdata[i + j] = aData[j];
+ }
+ i += 16;
+ crc = csSerialCommFunction.GetCRC(sdata, i);
+
+ sdata[i++] = crc[1]; // CRCH
+ sdata[i++] = crc[0]; // CRCL
+
+ OnSendUartData?.Invoke(addr, sdata, false, 1);
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxInventoryConfig.resx b/LFP_Manager/Forms/fmxInventoryConfig.resx
new file mode 100644
index 0000000..eefd1cf
--- /dev/null
+++ b/LFP_Manager/Forms/fmxInventoryConfig.resx
@@ -0,0 +1,4574 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+
+ AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA
+ GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/
+ ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7/////////////////////
+ ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff/////////
+ ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+
+ /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7/////
+ ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc
+ x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7/////////////////////////////
+ ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt
+ e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP
+ SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7/////////
+ ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z
+ WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS
+ Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8
+ +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+
+ /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+
+ /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO
+ SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz
+ 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o
+ 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9
+ /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE
+ oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG
+ PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7/////
+ ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH
+ PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t
+ 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/
+ ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/
+ ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7/////////////////////////////
+ ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+
+ /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ
+ TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7/////////////////
+ ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ
+ TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+
+ /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7/////
+ ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP
+ SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7/////////////////////////////////////////
+ ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/
+ ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7/////////////////////////////
+ ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/
+ ///+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////+/v7////////+/v3////////////////////////+/v3////////+/v7/////////////////
+ ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7/////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ /////////v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v7////////+/v7/////////////////////////////////////
+ ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7/////////////////////
+ ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7
+ +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9
+ /Pz+/v7/////////////////////////////////////////////////////////////////////////
+ ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM
+ RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7/////////////////////////////////////
+ ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL
+ QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+
+ /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP
+ SgCOSQCPTAKFOwDVvaT////9/Pv+/v7/////////////////////////////////////////////////
+ ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8
+ +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7/////////
+ /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO
+ SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF
+ OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+
+ ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/
+ //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7/////////////////////////
+ ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/
+ mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79
+ /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN
+ RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ
+ TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7/////
+ ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7/////
+ ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+
+ /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ
+ TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP
+ SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH
+ PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/
+ ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5
+ 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+
+ /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ
+ QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE
+ oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/
+ ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7/////////////////////////
+ ///////////////////////////////////////////////////////+/v7+////////////////////
+ ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+
+ /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9
+ /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP
+ SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL
+ RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7/////////////////////////////////
+ ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/
+ ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7/////////
+ ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP
+ SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI
+ PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/
+ ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x
+ glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7/////////////////////////////
+ ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM
+ RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+
+ /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/
+ ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP
+ SgCOSgGLRQGTURDz7ef+/v39/f3+/v7/////////////////////////////////////////////////
+ ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+
+ /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7/////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN
+ RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9
+ /fz9/f3+/v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO
+ SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7/////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO
+ SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS
+ UA/y6+X+/v39/fz+/v7+/v7/////////////////////////////////////////////////////////
+ ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP
+ SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7/////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+
+ /v7/////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO
+ SQCOSQGJQQDi0cD////9/Pv+/v7/////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J
+ QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7/////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39
+ /fz+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz
+ hFazhFayhFazhVete1TWvqb////9/fz+/v7/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+
+ /f3+/f3/////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v7+////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////v7+
+ /f39////////////////////////////////////////////////////////////////////////////
+ ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39
+ /fz8/v79/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA
+ nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1////
+ x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV
+ i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC
+ jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC
+ hz8Ap3I//fz7/fz8/v79/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7
+ /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8
+ +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p
+ /v39/f38/v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+
+ ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb
+ 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+//7+/f39
+ /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7////
+ 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+
+ /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA
+ j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB
+ j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB
+ i0UAlVYZ8+3m/f79/f38/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+////////////////
+ /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39
+ /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+
+ sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+
+ /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+////////
+ /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+
+ /f39/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO
+ /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39
+ 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39
+ /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+////////////////////////////
+ /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+////
+ /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A
+ kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ jkoCikIC4tHA/////Pv7/v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC
+ hz4A1r6m/////Pz7/v7+/v7+/////v7+////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+
+ /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+////////////////////
+ /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM
+ /////Pv6/v7+/v7+/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA
+ j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+
+ /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7
+ /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq////
+ /Pv6/v7+/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A
+ j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA
+ kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA
+ j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6
+ /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+////////
+ /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+
+ /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA
+ xaJ//////Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU
+ /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA
+ j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+////////////
+ 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+
+ /////v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39
+ /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/
+ /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6
+ ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+
+ /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC
+ kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB
+ kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39////
+ /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA
+ hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA
+ iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A
+ j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU
+ z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+////////
+ /v7+/////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7//v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn
+ +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3
+ +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8
+ /fz8/v7+/////v7+/////v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v///v7+/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT
+ z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7
+ ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A
+ hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A
+ fS0AtIdb/f38/Pz8///+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D
+ kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL
+ jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA
+ jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3
+ iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA
+ jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA
+ jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK
+ 6t7S/v7+/fz8/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs////
+ /Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7
+ /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38
+ /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fz8
+ /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+////////////////////////////////////
+ /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+
+ /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA
+ jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A
+ pnA8/Pv6/fz7/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq
+ iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+
+ /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+////////////
+ /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+
+ //7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A
+ 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES
+ jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+////////////////
+ /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6
+ /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7
+ /v79/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v39
+ /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8
+ +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+
+ /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ
+ hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ
+ 8+3m/f39/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+
+ /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA
+ jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA
+ u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA
+ j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA
+ jkkCikQE49PC/v7//fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8
+ /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+
+ /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7////
+ t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA
+ jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU
+ hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD
+ /////fz8//7//v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA
+ oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC
+ hj0Az7SX/////fz7//7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+//7+
+ /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH
+ jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA
+ jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT////
+ /Pz8/v7//v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA
+ t4tf/////fz7/v7+/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs
+ mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6
+ /v7+/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v7+
+ /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx
+ +/n3/fz8/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+
+ rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA
+ jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW
+ k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV
+ kU8TmVoj8ejg/v39/fz7/v7//f39/v//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off
+ 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v////7+/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v39/v7+
+ ///+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/v//////
+ /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v79/////////v7+/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v79/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////9/Lt9/Pu
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2svnmMrzrGR/////fz7////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ
+ /v39/fz8/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h
+ /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0////
+ 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC
+ j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ jUgBlFIO7uTa/////f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB
+ jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+
+ /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38////////////////////
+ /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z
+ iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+
+ sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG////
+ /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ hz4Ar35J/v39/fz8/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+////////
+ /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38////////////////////////////////
+ /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+////////////////////////////////////////////
+ /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA
+ /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW
+ k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+
+ /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+////////////////////
+ /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iEAA176j/////fz7////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39////////////////////////////////////////////
+ ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38
+ /fz8/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEA1buf/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+////////////
+ /////////////////////////////////////////////////////////////////////fz7////yKaB
+ hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v///f38////sH9K
+ hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oBi0QAnmIj9vHs/v39/v39////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA
+ nWAf9vHs/v7+/v79////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo////
+ /fz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v///f38////
+ 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/v79+/n3omor
+ ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm
+ +PTw/v39/f39////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sBjEUAmVwb9e/p/v7+/f38////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A
+ vpVq/////fz7/v/+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8AyKaB/////fz7/v///v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39
+ //7/////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC
+ jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsCiD8Auo9h/////fz8/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE
+ iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB
+ 4tC+/////f38/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjUcBk1EN7+Xb/////f39/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj
+ n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f38////u5Jlhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkBjUgE4M66/////fz7/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR
+ 7+bd/v7+/f39////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv
+ +/n4/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0
+ rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6
+ ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC
+ hz4AtolZ/////fz8/v3+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA
+ j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ j0sBikIApGww+vj1/v39/f39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ
+ j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M
+ /////Pz7/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkCjkkG4c+7/////fz7/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+///+/v39
+ /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d////
+ /fz7/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/f38/f38
+ 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A
+ jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sBiD8AyKiE/////fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oBiUEApW4z+vj1/v39/v39////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ
+ /v7+/f38/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4
+ 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD
+ 49PB/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/Pz7////
+ 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6////
+ /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A
+ j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC
+ iUEAqHQ7+/j2/fz8/v39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jUgBkk8K7ODV/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL////
+ /f38/v7+///+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6////////
+ ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A
+ ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38
+ /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBiUEA1Lqd/////fv6////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38
+ sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////v7+/v39
+ /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq
+ 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38
+ /v39/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjUgBkU4J6NrM/////fz8////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA
+ jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEArnxG/v7+/f38/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO
+ 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i////
+ /Pz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA
+ hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr
+ vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g
+ 4M24/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY
+ llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+////////////////////////////
+ /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsCiUEArXpD/v7//f39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB
+ ikMA1bqf/////fz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39
+ /f38/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39
+ /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/////////v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI
+ iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8////
+ /fz8////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA
+ mVsZ8+zl/v38/fz8////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7
+ /v7+//7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz7/v7+
+ 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf
+ 9vHs/v79/fz8////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z
+ iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAi0YAl1gT8+3l/v7+/f39////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA
+ upFj/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC
+ hz4AwZty/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////f39
+ /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC
+ jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ
+ hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsChz4At4ta/////fz8/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjUgCkEwL6dzO/////fz7////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD
+ 38y3/////fz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v/+/f39/v79
+ +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////fz8
+ /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A
+ kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK
+ 5tbG/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBjUcB4M25/////f38/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos
+ +PTw/fz8/f39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v//////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA
+ kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB
+ iUAAq3dA/Pr4/fz7/f39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v///fz7
+ ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA
+ j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0oBikMAomgq+vf0/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////Pz7////4M24
+ i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiUEA0rea/////fz7/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7
+ /v38/v39/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////f38/v79
+ +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/f38
+ ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ kEwChz4AxaJ8/////fz7/v7+////////////////////////////////////////////////////////
+ ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA
+ 07mb/////Pz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU
+ /v7+/Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+////
+ //////////////////////////////////////////////////////////////////////////////7/
+ /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7/////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+////////////////////////////
+ /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jEQAm10b9O/p/v7+/f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+////////////////////////////////////////
+ /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7
+ /v7//v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jUgAklAK6dzO/////f38/v//////////////////////////////////////////////////////////
+ /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6
+ /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng
+ lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+
+ /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiD8Au5Jl/////fz8/v7+//7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+////////////////////
+ /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj
+ /v39/fz8/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+////////////////////////////
+ /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8
+ ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb////
+ /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A
+ upFj/////fz8/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+
+ /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7////////////////////////
+ /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf
+ llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA
+ kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkBjUcA49LA/////f38/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79
+ /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3
+ qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8////0baX
+ iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD
+ /////fz8/v//////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA
+ nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA
+ qHI4/Pv5/v39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+
+ iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ kEsChz8Az7KS/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7
+ /v39/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v39
+ /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////fz8////59jIj0oD
+ jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ
+ /////fz8////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB
+ llYW7+Xb/v7+/f38/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0wChz8AuIxc/v7+/fz7/v39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+
+ /v39/v//////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fv6
+ ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAjkkBjEYA4M24/////fz8/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa
+ /////f38////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v39/fz7
+ 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB
+ jUcE3sq2/////Pz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oBikMAomgq+fXy/v39/f39////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/fz7////
+ 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq
+ +vf1/f38/f39//7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39
+ tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS
+ yqqM38u2/////v79/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/v79////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v79/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxMain.Designer.cs b/LFP_Manager/Forms/fmxMain.Designer.cs
new file mode 100644
index 0000000..d33675f
--- /dev/null
+++ b/LFP_Manager/Forms/fmxMain.Designer.cs
@@ -0,0 +1,470 @@
+namespace LFP_Manager.Forms
+{
+ partial class fmxMain
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxMain));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.chbPolling = new DevExpress.XtraEditors.CheckEdit();
+ this.edModuleID = new DevExpress.XtraEditors.TextEdit();
+ this.statusStrip1 = new System.Windows.Forms.StatusStrip();
+ this.CommStatusBar = new System.Windows.Forms.ToolStripStatusLabel();
+ this.HeatBeatStatusBar = new System.Windows.Forms.ToolStripStatusLabel();
+ this.LogStatusBar = new System.Windows.Forms.ToolStripStatusLabel();
+ this.uDataLog = new LFP_Manager.Controls.ucDataLog();
+ this.uEventLog = new LFP_Manager.Controls.ucEventLog();
+ this.tabStatus = new DevExpress.XtraTab.XtraTabControl();
+ this.pgMain = new DevExpress.XtraTab.XtraTabPage();
+ this.uTarget = new LFP_Manager.Controls.ucTargetControl();
+ this.layoutControlMain = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcitemSystemId = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem16 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.tmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.mnMain = new System.Windows.Forms.MenuStrip();
+ this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.levelConfigToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.changeLeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.changePasswordToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.historyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.historyViewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.inventoryViewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.updateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.firmwareUpdateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.chbPolling.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edModuleID.Properties)).BeginInit();
+ this.statusStrip1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.tabStatus)).BeginInit();
+ this.tabStatus.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlMain)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemSystemId)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).BeginInit();
+ this.mnMain.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.AllowCustomization = false;
+ this.layoutControl1.Controls.Add(this.chbPolling);
+ this.layoutControl1.Controls.Add(this.edModuleID);
+ this.layoutControl1.Controls.Add(this.statusStrip1);
+ this.layoutControl1.Controls.Add(this.uDataLog);
+ this.layoutControl1.Controls.Add(this.uEventLog);
+ this.layoutControl1.Controls.Add(this.tabStatus);
+ this.layoutControl1.Controls.Add(this.uTarget);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 24);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(577, 118, 783, 350);
+ this.layoutControl1.Root = this.layoutControlMain;
+ this.layoutControl1.Size = new System.Drawing.Size(1314, 857);
+ this.layoutControl1.TabIndex = 1;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // chbPolling
+ //
+ this.chbPolling.Location = new System.Drawing.Point(1254, 660);
+ this.chbPolling.Name = "chbPolling";
+ this.chbPolling.Properties.Caption = "Polling";
+ this.chbPolling.Size = new System.Drawing.Size(57, 20);
+ this.chbPolling.StyleController = this.layoutControl1;
+ this.chbPolling.TabIndex = 5;
+ this.chbPolling.CheckedChanged += new System.EventHandler(this.chbPolling_CheckedChanged);
+ //
+ // edModuleID
+ //
+ this.edModuleID.EditValue = "1";
+ this.edModuleID.Location = new System.Drawing.Point(1181, 660);
+ this.edModuleID.Name = "edModuleID";
+ this.edModuleID.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.edModuleID.Properties.Appearance.Options.UseFont = true;
+ this.edModuleID.Properties.Appearance.Options.UseTextOptions = true;
+ this.edModuleID.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edModuleID.Size = new System.Drawing.Size(69, 22);
+ this.edModuleID.StyleController = this.layoutControl1;
+ this.edModuleID.TabIndex = 4;
+ this.edModuleID.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.edSystemId_KeyPress);
+ //
+ // statusStrip1
+ //
+ this.statusStrip1.AutoSize = false;
+ this.statusStrip1.Dock = System.Windows.Forms.DockStyle.None;
+ this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.CommStatusBar,
+ this.HeatBeatStatusBar,
+ this.LogStatusBar});
+ this.statusStrip1.Location = new System.Drawing.Point(3, 834);
+ this.statusStrip1.Name = "statusStrip1";
+ this.statusStrip1.Size = new System.Drawing.Size(1308, 20);
+ this.statusStrip1.TabIndex = 1;
+ this.statusStrip1.Text = "statusStrip1";
+ //
+ // CommStatusBar
+ //
+ this.CommStatusBar.AutoSize = false;
+ this.CommStatusBar.ForeColor = System.Drawing.Color.Black;
+ this.CommStatusBar.Name = "CommStatusBar";
+ this.CommStatusBar.Size = new System.Drawing.Size(200, 15);
+ this.CommStatusBar.Text = "Comm: OFF";
+ this.CommStatusBar.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // HeatBeatStatusBar
+ //
+ this.HeatBeatStatusBar.AutoSize = false;
+ this.HeatBeatStatusBar.ForeColor = System.Drawing.Color.Black;
+ this.HeatBeatStatusBar.Name = "HeatBeatStatusBar";
+ this.HeatBeatStatusBar.Size = new System.Drawing.Size(200, 15);
+ this.HeatBeatStatusBar.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // LogStatusBar
+ //
+ this.LogStatusBar.AutoSize = false;
+ this.LogStatusBar.Name = "LogStatusBar";
+ this.LogStatusBar.Size = new System.Drawing.Size(650, 15);
+ this.LogStatusBar.Text = "Log Stop";
+ this.LogStatusBar.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // uDataLog
+ //
+ this.uDataLog.Location = new System.Drawing.Point(1149, 686);
+ this.uDataLog.Name = "uDataLog";
+ this.uDataLog.Size = new System.Drawing.Size(162, 144);
+ this.uDataLog.TabIndex = 6;
+ //
+ // uEventLog
+ //
+ this.uEventLog.Location = new System.Drawing.Point(3, 660);
+ this.uEventLog.Name = "uEventLog";
+ this.uEventLog.Size = new System.Drawing.Size(1142, 170);
+ this.uEventLog.TabIndex = 3;
+ //
+ // tabStatus
+ //
+ this.tabStatus.Location = new System.Drawing.Point(3, 68);
+ this.tabStatus.Name = "tabStatus";
+ this.tabStatus.SelectedTabPage = this.pgMain;
+ this.tabStatus.Size = new System.Drawing.Size(1308, 588);
+ this.tabStatus.TabIndex = 2;
+ this.tabStatus.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] {
+ this.pgMain});
+ //
+ // pgMain
+ //
+ this.pgMain.Name = "pgMain";
+ this.pgMain.Size = new System.Drawing.Size(1306, 562);
+ this.pgMain.Text = "RealTime Data";
+ //
+ // uTarget
+ //
+ this.uTarget.Location = new System.Drawing.Point(3, 3);
+ this.uTarget.Name = "uTarget";
+ this.uTarget.Size = new System.Drawing.Size(1308, 61);
+ this.uTarget.TabIndex = 0;
+ //
+ // layoutControlMain
+ //
+ this.layoutControlMain.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlMain.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlMain.GroupBordersVisible = false;
+ this.layoutControlMain.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1,
+ this.layoutControlItem2,
+ this.layoutControlItem6,
+ this.layoutControlItem7,
+ this.layoutControlItem8,
+ this.lcitemSystemId,
+ this.layoutControlItem16});
+ this.layoutControlMain.Name = "Root";
+ this.layoutControlMain.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlMain.Size = new System.Drawing.Size(1314, 857);
+ this.layoutControlMain.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.uTarget;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.MaxSize = new System.Drawing.Size(0, 65);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(350, 65);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(1312, 65);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.tabStatus;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 65);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(1312, 592);
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.uEventLog;
+ this.layoutControlItem6.CustomizationFormText = "layoutControlItem6";
+ this.layoutControlItem6.Location = new System.Drawing.Point(0, 657);
+ this.layoutControlItem6.MaxSize = new System.Drawing.Size(0, 174);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(209, 174);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(1146, 174);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.uDataLog;
+ this.layoutControlItem7.CustomizationFormText = "layoutControlItem7";
+ this.layoutControlItem7.Location = new System.Drawing.Point(1146, 683);
+ this.layoutControlItem7.MaxSize = new System.Drawing.Size(166, 0);
+ this.layoutControlItem7.MinSize = new System.Drawing.Size(166, 24);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(166, 148);
+ this.layoutControlItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.statusStrip1;
+ this.layoutControlItem8.CustomizationFormText = "layoutControlItem8";
+ this.layoutControlItem8.Location = new System.Drawing.Point(0, 831);
+ this.layoutControlItem8.MaxSize = new System.Drawing.Size(0, 24);
+ this.layoutControlItem8.MinSize = new System.Drawing.Size(104, 24);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(1312, 24);
+ this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem8.TextVisible = false;
+ //
+ // lcitemSystemId
+ //
+ this.lcitemSystemId.Control = this.edModuleID;
+ this.lcitemSystemId.CustomizationFormText = "System Id";
+ this.lcitemSystemId.Location = new System.Drawing.Point(1146, 657);
+ this.lcitemSystemId.MinSize = new System.Drawing.Size(57, 26);
+ this.lcitemSystemId.Name = "lcitemSystemId";
+ this.lcitemSystemId.Size = new System.Drawing.Size(105, 26);
+ this.lcitemSystemId.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemSystemId.Text = " ID ";
+ this.lcitemSystemId.TextSize = new System.Drawing.Size(20, 14);
+ //
+ // layoutControlItem16
+ //
+ this.layoutControlItem16.Control = this.chbPolling;
+ this.layoutControlItem16.CustomizationFormText = "layoutControlItem16";
+ this.layoutControlItem16.Location = new System.Drawing.Point(1251, 657);
+ this.layoutControlItem16.Name = "layoutControlItem16";
+ this.layoutControlItem16.Size = new System.Drawing.Size(61, 26);
+ this.layoutControlItem16.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem16.TextVisible = false;
+ //
+ // tmrDisplay
+ //
+ this.tmrDisplay.Enabled = true;
+ this.tmrDisplay.Interval = 500;
+ this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick);
+ //
+ // mnMain
+ //
+ this.mnMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.fileToolStripMenuItem,
+ this.historyToolStripMenuItem,
+ this.updateToolStripMenuItem});
+ this.mnMain.Location = new System.Drawing.Point(0, 0);
+ this.mnMain.Name = "mnMain";
+ this.mnMain.Size = new System.Drawing.Size(1314, 24);
+ this.mnMain.TabIndex = 2;
+ this.mnMain.Text = "menuStrip1";
+ //
+ // fileToolStripMenuItem
+ //
+ this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.levelConfigToolStripMenuItem,
+ this.exitToolStripMenuItem});
+ this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
+ this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
+ this.fileToolStripMenuItem.Text = "File";
+ //
+ // levelConfigToolStripMenuItem
+ //
+ this.levelConfigToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.changeLeToolStripMenuItem,
+ this.changePasswordToolStripMenuItem});
+ this.levelConfigToolStripMenuItem.Name = "levelConfigToolStripMenuItem";
+ this.levelConfigToolStripMenuItem.Size = new System.Drawing.Size(141, 22);
+ this.levelConfigToolStripMenuItem.Text = "Level Config";
+ this.levelConfigToolStripMenuItem.Click += new System.EventHandler(this.levelConfigToolStripMenuItem_Click);
+ //
+ // changeLeToolStripMenuItem
+ //
+ this.changeLeToolStripMenuItem.Name = "changeLeToolStripMenuItem";
+ this.changeLeToolStripMenuItem.Size = new System.Drawing.Size(169, 22);
+ this.changeLeToolStripMenuItem.Text = "Change Level";
+ this.changeLeToolStripMenuItem.Click += new System.EventHandler(this.changeLeToolStripMenuItem_Click);
+ //
+ // changePasswordToolStripMenuItem
+ //
+ this.changePasswordToolStripMenuItem.Name = "changePasswordToolStripMenuItem";
+ this.changePasswordToolStripMenuItem.Size = new System.Drawing.Size(169, 22);
+ this.changePasswordToolStripMenuItem.Text = "Change Password";
+ this.changePasswordToolStripMenuItem.Click += new System.EventHandler(this.changePasswordToolStripMenuItem_Click);
+ //
+ // exitToolStripMenuItem
+ //
+ this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
+ this.exitToolStripMenuItem.Size = new System.Drawing.Size(141, 22);
+ this.exitToolStripMenuItem.Text = "Exit";
+ this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
+ //
+ // historyToolStripMenuItem
+ //
+ this.historyToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.historyViewToolStripMenuItem,
+ this.inventoryViewToolStripMenuItem});
+ this.historyToolStripMenuItem.Name = "historyToolStripMenuItem";
+ this.historyToolStripMenuItem.Size = new System.Drawing.Size(57, 20);
+ this.historyToolStripMenuItem.Text = "History";
+ //
+ // historyViewToolStripMenuItem
+ //
+ this.historyViewToolStripMenuItem.Name = "historyViewToolStripMenuItem";
+ this.historyViewToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.historyViewToolStripMenuItem.Text = "History View";
+ this.historyViewToolStripMenuItem.Click += new System.EventHandler(this.historyViewToolStripMenuItem_Click);
+ //
+ // inventoryViewToolStripMenuItem
+ //
+ this.inventoryViewToolStripMenuItem.Name = "inventoryViewToolStripMenuItem";
+ this.inventoryViewToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.inventoryViewToolStripMenuItem.Text = "Inventory View";
+ this.inventoryViewToolStripMenuItem.Click += new System.EventHandler(this.inventoryViewToolStripMenuItem_Click);
+ //
+ // updateToolStripMenuItem
+ //
+ this.updateToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.firmwareUpdateToolStripMenuItem});
+ this.updateToolStripMenuItem.Name = "updateToolStripMenuItem";
+ this.updateToolStripMenuItem.Size = new System.Drawing.Size(57, 20);
+ this.updateToolStripMenuItem.Text = "Update";
+ //
+ // firmwareUpdateToolStripMenuItem
+ //
+ this.firmwareUpdateToolStripMenuItem.Name = "firmwareUpdateToolStripMenuItem";
+ this.firmwareUpdateToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.firmwareUpdateToolStripMenuItem.Text = "Firmware Update";
+ this.firmwareUpdateToolStripMenuItem.Click += new System.EventHandler(this.firmwareUpdateToolStripMenuItem_Click);
+ //
+ // fmxMain
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(1314, 881);
+ this.Controls.Add(this.layoutControl1);
+ this.Controls.Add(this.mnMain);
+ this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxMain.IconOptions.Icon")));
+ this.Name = "fmxMain";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "LFP SYSTEM";
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.fmxMain_FormClosing);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.chbPolling.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edModuleID.Properties)).EndInit();
+ this.statusStrip1.ResumeLayout(false);
+ this.statusStrip1.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.tabStatus)).EndInit();
+ this.tabStatus.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlMain)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemSystemId)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).EndInit();
+ this.mnMain.ResumeLayout(false);
+ this.mnMain.PerformLayout();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlMain;
+ private Controls.ucTargetControl uTarget;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraTab.XtraTabControl tabStatus;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private Controls.ucEventLog uEventLog;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private Controls.ucDataLog uDataLog;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private System.Windows.Forms.StatusStrip statusStrip1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ private System.Windows.Forms.ToolStripStatusLabel CommStatusBar;
+ private System.Windows.Forms.ToolStripStatusLabel LogStatusBar;
+ private System.Windows.Forms.ToolStripStatusLabel HeatBeatStatusBar;
+ private DevExpress.XtraEditors.TextEdit edModuleID;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemSystemId;
+ private DevExpress.XtraTab.XtraTabPage pgMain;
+ //private Controls.ucMainStatus ucMsGraph;
+ private DevExpress.XtraEditors.CheckEdit chbPolling;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem16;
+ private System.Windows.Forms.Timer tmrDisplay;
+ private System.Windows.Forms.MenuStrip mnMain;
+ private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem historyToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem historyViewToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem updateToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem firmwareUpdateToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem inventoryViewToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem levelConfigToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem changeLeToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem changePasswordToolStripMenuItem;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxMain.cs b/LFP_Manager/Forms/fmxMain.cs
new file mode 100644
index 0000000..3bd7274
--- /dev/null
+++ b/LFP_Manager/Forms/fmxMain.cs
@@ -0,0 +1,1294 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+using LFP_Manager.Forms;
+using LFP_Manager.Controls;
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Threads;
+using LFP_Manager.Utils;
+using DevExpress.Utils.Drawing.Helpers;
+using System.Threading.Tasks;
+using static LFP_Manager.Threads.csDbThread;
+
+namespace LFP_Manager.Forms
+{
+ public partial class fmxMain : DevExpress.XtraEditors.XtraForm
+ {
+ #region VARIABLES
+
+ // Child form
+ private fmxInventoryConfig InventoryConfig = null;
+ private fmxModuleDetail ModuleDetailForm = null;
+ private fmxFwUpdate FwUpdateForm = null;
+ private fmxHistory HistoryForm = null;
+
+ // Static Variables
+ private CommConfig Config = new CommConfig();
+ private CsDeviceData DeviceData = new CsDeviceData();
+
+ // Thread Variables
+ private csUartThread uartThread = null;
+ private CsUartThreadSB rs485Thread = null;
+ private CsSnmpThread snmpThread = null;
+
+ private csDbThread dbThread = null;
+
+ private ucMainStatus MainStatus = null;
+ private ucShelfStatus ShelfStatus = null;
+
+ private int ModuleID = 1;
+
+ bool Active = false;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public fmxMain()
+ {
+ InitializeComponent();
+
+ IniLoad(ref Config);
+
+ uTarget.OnConfig += ConfigButtonClick;
+ uTarget.OnStart += StartButtonClick;
+
+ uDataLog.OnUpdate += LogStatusUpdate;
+
+ DisplaySystemFwVerModule();
+ }
+
+ private void IniLoad(ref CommConfig aConfig)
+ {
+ csIniControlFunction.IniLoad(Application.ExecutablePath, ref aConfig);
+
+ uTarget.UpdateConfig(ref aConfig);
+
+ TypeChangedUpdate(ref aConfig);
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+
+ private void ConfigButtonClick(object sender, EventArgs e)
+ {
+ foreach (Form frm in Application.OpenForms)
+ {
+ if (frm.Name == "fmxCommConfig")
+ {
+ frm.Activate();
+ return;
+ }
+ }
+ fmxCommConfig CommConfigForm = new fmxCommConfig
+ {
+ Owner = this
+ };
+
+ CommConfigForm.OnUpdate += UpdateConfig;
+ CommConfigForm.Show();
+ }
+
+ private void StartButtonClick(object sender, EventArgs e)
+ {
+ if (Active)
+ {
+ DeviceData.Reset();
+
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ if (uartThread != null)
+ {
+ StopUart(); // 내부에서 UnwireUart → Dispose 순서 수행
+ edModuleID.Enabled = true;
+ chbPolling.Enabled = true;
+ }
+ break;
+ case csConstData.CommType.COMM_RS485:
+ // DELTA Protocol
+ if (rs485Thread != null)
+ {
+ StopRS485(); // 내부에서 UnwireRs485 → Dispose 순서 수행
+ edModuleID.Enabled = true;
+ chbPolling.Enabled = true;
+ }
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ break;
+ default:
+ break;
+ }
+
+ if (snmpThread != null)
+ {
+ snmpThread.disposeThread();
+ snmpThread = null;
+ UpdateSnmpData(this, ref DeviceData.ModuleData[0]);
+ }
+
+ if (dbThread != null)
+ {
+ //dbThread.Stop();
+
+ dbThread.OnUpdateAlarmHistory -= UpdateAlarmHistory;
+ dbThread.OnPrint -= ErrorOnPrint;
+ dbThread.Dispose();
+ dbThread = null;
+ }
+
+ Active = false;
+ }
+ else
+ {
+ try
+ {
+ ModuleID = Convert.ToInt16(edModuleID.Text);
+ }
+ catch (Exception)
+ {
+ MessageBox.Show("Wrong Module ID - Please check module ID", "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ // UART MODE - RS-232
+ CommUARTStart();
+ break;
+ case csConstData.CommType.COMM_RS485:
+ // UART MODE - RS-485
+ CommRS485Start();
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ StartProcessSNMP();
+ break;
+ }
+ }
+ uTarget.UpdateStatus(Active);
+ uDataLog.UpdateActiveStatus(Active, Config, ref DeviceData);
+ DisplayCommStatus();
+ }
+
+ private void UartRecvData(byte[] data)
+ {
+ if (this.InvokeRequired)
+ {
+ this.Invoke(new MethodInvoker(delegate ()
+ {
+ FwUpdateForm?.RecvData(data);
+ HistoryForm?.RecvUardData(data);
+ }));
+ }
+ else
+ {
+ FwUpdateForm?.RecvData(data);
+ HistoryForm?.RecvUardData(data);
+ }
+ }
+
+ private void CommUARTStart()
+ {
+ try
+ {
+ int mId = string.IsNullOrEmpty(edModuleID.Text) ? 0 : Convert.ToInt32(edModuleID.Text);
+ if (mId == 0) { throw new Exception("System ID is zero."); }
+
+ // 혹시 기존 인스턴스가 남아 있다면 먼저 해제
+ StopUart();
+
+ if (dbThread != null)
+ {
+ dbThread.OnUpdateAlarmHistory -= UpdateAlarmHistory;
+ dbThread.OnPrint -= ErrorOnPrint;
+ dbThread.Dispose();
+ dbThread = null;
+ }
+
+ uartThread = new csUartThread(mId, Config, this, DeviceData.ModuleData[0]);
+ WireUart(uartThread); // ← 구독은 Start 전에
+ uartThread.SetPolling(chbPolling.Checked, mId, ref DeviceData.ModuleData[0]);
+
+ if (uartThread.Start(ref Config, mId, chbPolling.Checked))
+ {
+ Active = true;
+ chbPolling.Enabled = true;
+ edModuleID.Enabled = !chbPolling.Checked;
+ ShelfStatus?.UpdateSystemId(mId);
+
+ dbThread = new csDbThread(Config, this, DeviceData);
+ dbThread.OnUpdateAlarmHistory += UpdateAlarmHistory;
+ dbThread.OnPrint += ErrorOnPrint;
+ dbThread.Start(Config);
+ }
+ else
+ {
+ StopUart();
+
+ if (dbThread != null)
+ {
+ dbThread.OnUpdateAlarmHistory -= UpdateAlarmHistory;
+ dbThread.OnPrint -= ErrorOnPrint;
+ dbThread.Dispose();
+ dbThread = null;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ // 예외 시에도 반드시 해제 + Dispose
+ StopUart();
+
+ dbThread?.Dispose();
+ dbThread = null;
+
+ MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ private void StopUart()
+ {
+ if (uartThread != null)
+ {
+ UnwireUart(); // 1) 구독 해제
+ uartThread.Dispose(); // 2) 스레드/포트 정리(Stop 포함)
+ uartThread = null;
+ }
+ }
+
+ private void CommRS485Start()
+ {
+ try
+ {
+ int mId = string.IsNullOrEmpty(edModuleID.Text) ? 0 : Convert.ToInt32(edModuleID.Text);
+ if (mId == 0) { throw new Exception("System ID is zero."); }
+
+ StopRS485();
+
+ rs485Thread = new CsUartThreadSB(mId, Config, this, DeviceData.ModuleData);
+ WireRs485(rs485Thread); // ← 구독
+ rs485Thread.SetPolling(chbPolling.Checked, mId, ref DeviceData.ModuleData);
+
+ if (rs485Thread.Start(ref Config, ModuleID, chbPolling.Checked))
+ {
+ Active = true;
+ chbPolling.Enabled = true;
+ edModuleID.Enabled = !chbPolling.Checked;
+
+ //if (Config.ModuleQty > 1)
+ // MainStatus?.Start(Config, DeviceData);
+ //else
+ // ShelfStatus?.UpdateSystemId(ModuleID);
+
+ dbThread = new csDbThread(Config, this, DeviceData);
+ dbThread.OnUpdateAlarmHistory += UpdateAlarmHistory;
+ dbThread.OnPrint += ErrorOnPrint;
+ dbThread.Start(Config);
+ }
+ else
+ {
+ StopRS485();
+
+ if (dbThread != null)
+ {
+ dbThread.OnUpdateAlarmHistory -= UpdateAlarmHistory;
+ dbThread.OnPrint -= ErrorOnPrint;
+ dbThread.Dispose();
+ dbThread = null;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+
+ if (rs485Thread != null)
+ {
+ rs485Thread.Dispose();
+ rs485Thread = null;
+ }
+ if (dbThread != null)
+ {
+ dbThread.Dispose();
+ dbThread = null;
+ }
+ }
+ }
+ private void StopRS485()
+ {
+ if (rs485Thread != null)
+ {
+ UnwireRs485(); // 1) 구독 해제
+ rs485Thread.Dispose(); // 2) 스레드/포트 정리(Stop 포함)
+ rs485Thread = null;
+ }
+ }
+
+ private void StartProcessSNMP()
+ {
+ try
+ {
+ snmpThread = new CsSnmpThread(Config, ref DeviceData.ModuleData[ModuleID - 1]);
+ snmpThread.OnUpdate += UpdateSnmpData;
+ snmpThread.OnSetResult += SnmpRecvData;
+ snmpThread.Start(Config.SnmpIP, chbPolling.Checked);
+
+ Active = true;
+
+ dbThread = new csDbThread(Config, this, DeviceData);
+ dbThread.OnUpdateAlarmHistory += UpdateAlarmHistory;
+ dbThread.OnPrint += ErrorOnPrint;
+ dbThread.Start(Config);
+ }
+ catch (Exception)
+ {
+ if (snmpThread == null)
+ {
+ snmpThread.disposeThread();
+ snmpThread = null;
+ }
+
+ if (dbThread != null)
+ {
+ dbThread.OnUpdateAlarmHistory -= UpdateAlarmHistory;
+ dbThread.OnPrint -= ErrorOnPrint;
+ dbThread.Dispose();
+ dbThread = null;
+ }
+ }
+ }
+ #endregion
+
+ #region UPDATE FUNCTIONS
+
+ private void TypeChangeUpdateUart(ref CommConfig aConfig)
+ {
+ tabStatus.TabPages[0].PageVisible = true;
+ for (int i = 1; i < tabStatus.TabPages.Count; i++)
+ {
+ tabStatus.TabPages[i].PageVisible = false;
+ }
+ tabStatus.TabPages[0].Text = String.Format("LFP Module [{0}.{1}.{2}.{3}]"
+ , 0
+ , 0
+ , 0
+ , 0
+ );
+ ShelfStatus = new ucShelfStatus();
+ ShelfStatus.OnCommand += SetCmdEvent;
+ ShelfStatus.Dock = DockStyle.Fill;
+
+ tabStatus.TabPages[0].PageVisible = true;
+ tabStatus.TabPages[0].Controls.Add(ShelfStatus);
+
+ ShelfStatus.Start(Convert.ToInt32(edModuleID.Text), ref aConfig, ref DeviceData.ModuleData);
+
+ edModuleID.Enabled = true;
+ chbPolling.Enabled = true;
+ }
+ private void TypeChangeUpdateRS485(ref CommConfig aConfig)
+ {
+ // Display Screen Delete
+ if (MainStatus != null)
+ {
+ MainStatus.Dispose();
+ MainStatus = null;
+ }
+
+ if (ShelfStatus != null)
+ {
+ ShelfStatus.Dispose();
+ ShelfStatus = null;
+ }
+
+ if (aConfig.ModuleQty > 1)
+ {
+ // All disable first
+ for (int i = 0; i < tabStatus.TabPages.Count; i++)
+ {
+ tabStatus.TabPages[i].PageVisible = false;
+ }
+
+ MainStatus = new ucMainStatus();
+ MainStatus.OnCommand += SetCmdEvent;
+
+ tabStatus.TabPages[0].Text = string.Format("LFP System");
+ tabStatus.TabPages[0].PageVisible = true;
+ tabStatus.TabPages[0].Controls.Add(MainStatus);
+ MainStatus.Dock = DockStyle.Fill;
+ MainStatus.UpdateMainConfig(Config, DeviceData);
+
+ MainStatus.Start(aConfig, DeviceData);
+
+ edModuleID.Enabled = false;
+ chbPolling.Enabled = false;
+ }
+ else
+ {
+ tabStatus.TabPages[0].PageVisible = true;
+ for (int i = 1; i < tabStatus.TabPages.Count; i++)
+ {
+ tabStatus.TabPages[i].PageVisible = false;
+ }
+ tabStatus.TabPages[0].Text = String.Format("LFP Module [{0}.{1}.{2}.{3}]"
+ , 0
+ , 0
+ , 0
+ , 0
+ );
+ ShelfStatus = new ucShelfStatus();
+ ShelfStatus.OnCommand += SetCmdEvent;
+ ShelfStatus.OnSendUartData += SetWriteData;
+ ShelfStatus.Dock = DockStyle.Fill;
+
+ tabStatus.TabPages[0].PageVisible = true;
+ tabStatus.TabPages[0].Controls.Add(ShelfStatus);
+
+ ShelfStatus.Start(ModuleID, ref aConfig, ref DeviceData.ModuleData);
+
+ edModuleID.Enabled = true;
+ chbPolling.Enabled = true;
+ }
+ }
+ private void TypeChangeUpdateSnmp(ref CommConfig aConfig)
+ {
+ tabStatus.TabPages[0].PageVisible = true;
+ for (int i = 1; i < tabStatus.TabPages.Count; i++)
+ {
+ tabStatus.TabPages[i].PageVisible = false;
+ }
+ tabStatus.TabPages[0].Text = String.Format("LFP Module [{0}.{1}.{2}.{3}]"
+ , 0
+ , 0
+ , 0
+ , 0
+ );
+ ShelfStatus = new ucShelfStatus();
+ ShelfStatus.OnCommand += SetCmdEvent;
+ ShelfStatus.Dock = DockStyle.Fill;
+
+ tabStatus.TabPages[0].PageVisible = true;
+ tabStatus.TabPages[0].Controls.Add(ShelfStatus);
+
+ ShelfStatus.Start(ModuleID, ref aConfig, ref DeviceData.ModuleData);
+
+ edModuleID.Enabled = false;
+ chbPolling.Enabled = true;
+ }
+
+ private void TypeChangedUpdate(ref CommConfig aConfig)
+ {
+ tabStatus.TabPages[0].Controls.Clear();
+
+ // Display Screen Deletes
+ if (ShelfStatus != null)
+ {
+ ShelfStatus.Dispose();
+ ShelfStatus = null;
+ }
+
+ SetCellTempQty(aConfig, ref DeviceData.ModuleData);
+ try
+ {
+ ModuleID = Convert.ToInt16(edModuleID.Text);
+ }
+ catch (Exception)
+ {
+ ModuleID = 1;
+ }
+
+ switch (aConfig.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ TypeChangeUpdateUart(ref aConfig);
+ historyToolStripMenuItem.Visible = true;
+ inventoryViewToolStripMenuItem.Visible = true;
+ updateToolStripMenuItem.Visible = false;
+ break;
+ case csConstData.CommType.COMM_RS485:
+ TypeChangeUpdateRS485(ref aConfig);
+ historyToolStripMenuItem.Visible = true;
+ inventoryViewToolStripMenuItem.Visible = false;
+ updateToolStripMenuItem.Visible = true;
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ TypeChangeUpdateSnmp(ref aConfig);
+ historyToolStripMenuItem.Visible = true;
+ inventoryViewToolStripMenuItem.Visible = false;
+ updateToolStripMenuItem.Visible = false;
+ break;
+ default:
+ break;
+ }
+ //DisplayCommStatus();
+ }
+
+ private void SetCellTempQty(CommConfig aConfig, ref CsDeviceData.DeviceModuleData[] mData)
+ {
+ switch (aConfig.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ case csConstData.CommType.COMM_RS485:
+ switch (aConfig.UartModelIndex)
+ {
+ case csConstData.UART_MODEL_INDEX.LFPM_48100D:
+ case csConstData.UART_MODEL_INDEX.LFPM_48150D:
+ case csConstData.UART_MODEL_INDEX.LFPM_48200D:
+ case csConstData.UART_MODEL_INDEX.LFPM_48250D:
+ case csConstData.UART_MODEL_INDEX.LFPM_48300D:
+ for (int i = 0; i < mData.Length; i++)
+ {
+ mData[i].cellQty = 15;
+ mData[i].tempQty = 4;
+ }
+ break;
+ case csConstData.UART_MODEL_INDEX.LFPM_124050D:
+ for (int i = 0; i < mData.Length; i++)
+ {
+ mData[i].cellQty = csConstData.SystemInfo.MAX_MODULE_CELL_SIZE;
+ mData[i].tempQty = csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE;
+ }
+ break;
+ default:
+ break;
+ }
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ switch (aConfig.SnmpModelIndex)
+ {
+ case csConstData.UART_MODEL_INDEX.LFPM_48100D:
+ case csConstData.UART_MODEL_INDEX.LFPM_48150D:
+ case csConstData.UART_MODEL_INDEX.LFPM_48200D:
+ case csConstData.UART_MODEL_INDEX.LFPM_48250D:
+ case csConstData.UART_MODEL_INDEX.LFPM_48300D:
+ for (int i = 0; i < mData.Length; i++)
+ {
+ mData[i].cellQty = 15;
+ mData[i].tempQty = 4;
+ }
+ break;
+ case csConstData.UART_MODEL_INDEX.LFPM_124050D:
+ for (int i = 0; i < mData.Length; i++)
+ {
+ mData[i].cellQty = csConstData.SystemInfo.MAX_MODULE_CELL_SIZE;
+ mData[i].tempQty = csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE;
+ }
+ break;
+ default:
+ break;
+ }
+ break;
+ default:
+ for (int i = 0; i < mData.Length; i++)
+ {
+ mData[i].cellQty = 15;
+ mData[i].tempQty = 4;
+ }
+ break;
+ }
+ }
+
+ private void DisplaySystemFwVerModule()
+ {
+ switch (Config.ControlLevel)
+ {
+ case 0: // User Level
+ inventoryViewToolStripMenuItem.Visible = false;
+ break;
+ case 1: // Technician Level
+ inventoryViewToolStripMenuItem.Visible = false;
+ break;
+ case 2: // Engineer Level
+ inventoryViewToolStripMenuItem.Visible = false;
+ break;
+ case 3: // Master Level
+ inventoryViewToolStripMenuItem.Visible = true;
+ break;
+ default: // User Level
+ inventoryViewToolStripMenuItem.Visible = false;
+ break;
+ }
+
+ switch (Config.ControlLevel)
+ {
+ case 0: // User Level
+ this.Text = String.Format("LFP SYSTEM [{0}] -- SB - User Level", Application.ProductVersion);
+ break;
+ case 1: // Technician Level
+ this.Text = String.Format("LFP SYSTEM [{0}] -- SB - Technician Level", Application.ProductVersion);
+ break;
+ case 2: // Engineer Level
+ this.Text = String.Format("LFP SYSTEM [{0}] -- SB - Engineer Level", Application.ProductVersion);
+ break;
+ case 3: // Master Level
+ this.Text = String.Format("LFP SYSTEM [{0}] -- SB - Master Level", Application.ProductVersion);
+ break;
+ default:
+ this.Text = String.Format("LFP SYSTEM [{0}] -- SB - User Level", Application.ProductVersion);
+ break;
+ }
+
+ if (this.InvokeRequired)
+ {
+ this.Invoke(new MethodInvoker(delegate ()
+ {
+ if (DeviceData.ModuleData[0].ValueData.fw_ver[0] != 0x00)
+ {
+ byte[] sn = new byte[33];
+ for (int i = 0; i < 32; i++)
+ sn[i] = DeviceData.ModuleData[0].Information.BMS_SN[i];
+ sn[32] = 0;
+
+ tabStatus.TabPages[0].Text = String.Format("{0} [{1}] - {2}", "LFP MODULE"
+ , Encoding.UTF8.GetString(DeviceData.ModuleData[0].ValueData.fw_ver)
+ , Encoding.Default.GetString(sn).Trim('\0')
+ );
+ }
+ else
+ {
+ tabStatus.TabPages[0].Text = String.Format("LFP MODULE");
+ }
+ }));
+ }
+ else
+ {
+ if (DeviceData.ModuleData[0].ValueData.fw_ver[0] != 0x00)
+ {
+ byte[] sn = new byte[17];
+ for (int i = 0; i < 16; i++)
+ sn[i] = DeviceData.ModuleData[0].Information.BMS_SN[i]; //22.06.30 Byul 32->16
+ sn[16] = 0;
+
+ tabStatus.TabPages[0].Text = String.Format("{0} [{1}] - {2}", "LFP MODULE"
+ , Encoding.UTF8.GetString(DeviceData.ModuleData[0].ValueData.fw_ver).Trim('\0')
+ , Encoding.Default.GetString(sn).Trim('\0')
+ );
+ }
+ else
+ {
+ tabStatus.TabPages[0].Text = String.Format("LFP MODULE");
+ }
+ }
+ }
+
+ private void UpdateSnmpData(object sender, ref CsDeviceData.DeviceModuleData mData)
+ {
+ DeviceData.ModuleData[0] = mData;
+ uDataLog.UpdateData(DeviceData);
+ }
+
+ private void UpdateConfig(object aConfig)
+ {
+ Config = (CommConfig)aConfig;
+
+ IniLoad(ref Config);
+ }
+
+ #endregion
+
+ #region MENU EVENT
+
+ private void commConfigToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ ConfigButtonClick(sender, e);
+ }
+
+ private void exitToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+
+ private void testSendToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ csHistoryFunction.DbCreate(System.IO.Path.GetDirectoryName(Application.ExecutablePath));
+ }
+
+ private void firmwareUpdateToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ if (rs485Thread == null) return;
+
+ FwUpdateForm = new fmxFwUpdate(rs485Thread.ModuleID);
+
+ FwUpdateForm.OnAutoTxSet += SetAutoTx;
+ FwUpdateForm.OnSendUartData += SetWriteData;
+ FwUpdateForm.ShowDialog();
+ }
+
+ private void historyViewToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ foreach (Form frm in Application.OpenForms)
+ {
+ if (frm.Name == "fmxHistory")
+ {
+ frm.Activate();
+ return;
+ }
+ }
+ HistoryForm = new fmxHistory(Config, ModuleID);
+
+ HistoryForm.OnSendUartData += SetWriteData;
+ HistoryForm.ShowDialog();
+ }
+
+ private void inventoryViewToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ foreach (Form frm in Application.OpenForms)
+ {
+ if (frm.Name == "fmxInventoryConfig")
+ {
+ frm.Activate();
+ return;
+ }
+ }
+ InventoryConfig = new fmxInventoryConfig(ModuleID, ref Config, ref DeviceData.ModuleData[ModuleID - 1]);
+
+ InventoryConfig.OnSendUartData += SetWriteData;
+ InventoryConfig.Show();
+ }
+
+ #endregion
+
+ #region FORM EVENT
+
+ private void fmxMain_FormClosing(object sender, FormClosingEventArgs e)
+ {
+ if (uartThread != null)
+ {
+ uartThread.Dispose();
+ uartThread = null;
+ }
+ if (rs485Thread != null)
+ {
+ rs485Thread.Dispose();
+ rs485Thread = null;
+ }
+ if (snmpThread != null)
+ {
+ snmpThread.disposeThread();
+ snmpThread = null;
+ }
+ if (dbThread != null)
+ {
+ dbThread.Dispose();
+ dbThread = null;
+ }
+ }
+
+ #endregion
+
+ #region STATUS BAR EVENT
+
+ void DisplayCommStatus()
+ {
+ if (Active == true)
+ CommStatusBar.Text = "Comm: On";
+ else
+ CommStatusBar.Text = "Comm: Off";
+ }
+
+ void DisplayCommStatus(string msg)
+ {
+ if (msg != "")
+ CommStatusBar.Text = String.Format("Comm: {0}", msg);
+ }
+
+ void LogStatusUpdate(object sender, string msg, bool active, int aLogTime)
+ {
+ LogStatusBar.Text = msg;
+
+ }
+
+ #endregion
+
+ #region COMMAND AND SET
+
+ private void CommDataPrint(object sender, int id, string msg)
+ {
+ if (msg != "")
+ {
+ uEventLog.EventUpdate(id, msg + "\r\n");
+ }
+ }
+
+ private void SetWriteData(ushort WriteAddr, byte[] WriteData, bool RelyFlag, int type)
+ {
+ uartThread?.SetWriteReg(WriteAddr, WriteData, RelyFlag, type);
+ rs485Thread?.SetWriteReg(WriteAddr, WriteData, RelyFlag, type);
+ }
+
+ private void SetCmdEvent(int sId, int cmd, int index, int flag,
+ ref CsDeviceData.DeviceModuleData.DeviceParamData aParam,
+ ref CsDeviceData.DeviceModuleData.DeviceCalibration aCalib)
+ {
+ if (MainStatus != null)
+ {
+ switch (cmd)
+ {
+ case 1: // Module quatity set
+ break;
+ case 2:
+ CreateModuleDetailForm(sId);
+ break;
+ }
+ }
+ uartThread?.SendProcessFromApp(sId, cmd, index, flag, ref aParam, ref aCalib);
+ }
+
+ private void CreateModuleDetailForm(int sID)
+ {
+ foreach (Form frm in Application.OpenForms)
+ {
+ if (frm.Name == "fmxModuleDetail")
+ {
+ ((fmxModuleDetail)frm).SetModuleID(sID);
+ frm.Activate();
+ return;
+ }
+ }
+ ModuleDetailForm = new fmxModuleDetail(sID, ref Config, ref DeviceData.ModuleData);
+
+ //ModuleDetailForm.OnAutoTxCanSet += SetAutoTxCan;
+ //ModuleDetailForm.OnSendDataCan += SendDataToCan;
+ ModuleDetailForm.Show();
+ }
+
+ private void chbPolling_CheckedChanged(object sender, EventArgs e)
+ {
+ if (edModuleID.Text != "")
+ {
+ ModuleID = Convert.ToInt32(edModuleID.Text);
+
+ if (uartThread != null)
+ {
+ uartThread.SetPolling(chbPolling.Checked, ModuleID, ref DeviceData.ModuleData[ModuleID - 1]);
+ ShelfStatus?.UpdateSystemId(ModuleID);
+ }
+ if (rs485Thread != null)
+ {
+ rs485Thread.SetPolling(chbPolling.Checked, ModuleID, ref DeviceData.ModuleData);
+ ShelfStatus?.UpdateSystemId(ModuleID);
+ }
+ snmpThread?.SetAutoTx(chbPolling.Checked);
+
+ uDataLog.UpdateActiveStatus(Active, Config, ref DeviceData);
+
+ edModuleID.Enabled = !chbPolling.Checked;
+ }
+ }
+
+ private void SnmpRecvData(string result, bool error)
+ {
+ if (result != "")
+ {
+ uEventLog.EventUpdate(0, result + "\r\n");
+ }
+ }
+
+ private void SetAutoTx(bool autoTx)
+ {
+ uartThread?.SetAutoTx(autoTx);
+ }
+ #endregion
+
+ #region KEYBOARD HOOK
+ private void edSystemId_KeyPress(object sender, KeyPressEventArgs e)
+ {
+ csUtils.TypingOnlyNumber(sender, e, false, false);
+ }
+ #endregion
+
+ #region MENU COMMAND
+ private void inventoryControlToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ foreach (Form frm in Application.OpenForms)
+ {
+ if (frm.Name == "fmxInventoryConfig")
+ {
+ frm.Activate();
+ return;
+ }
+ }
+ InventoryConfig = new fmxInventoryConfig(0, ref Config, ref DeviceData.ModuleData[0]);
+
+ InventoryConfig.OnUpdate += UpdateInformation;
+ InventoryConfig.OnCommand += InvDataSetCmd;
+ //InventoryConfig.OnCommandBySnmp += SetInvEventBySnmp;
+ InventoryConfig.Show();
+ }
+
+ private void InvDataSetCmd(int sId, int mode, int index, int flag, ref CsDeviceData.DeviceModuleData.DeviceInforation aInvData)
+ {
+ DeviceData.ModuleData[0].Information = aInvData;
+ //OnCommand?.Invoke(sId, mode, index, flag, ref DeviceData.ModuleData[0].ParamData, ref DeviceData.ModuleData[0].CalibriationData);
+ //SetCmdToCan(sId, mode, index, flag, ref DeviceData.ModuleData[0].ParamData, ref DeviceData.ModuleData[0].CalibriationData);
+ }
+
+ private void UpdateInformation(object sendor)
+ {
+ ((fmxInventoryConfig)sendor).UpdateData(ref DeviceData.ModuleData[0]);
+ }
+
+ private void checkDBToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ foreach (Form frm in Application.OpenForms)
+ {
+ if (frm.Name == "fmxExcelFile")
+ {
+ frm.Activate();
+ return;
+ }
+ }
+ fmxExcelFile DbControl = new fmxExcelFile(Config);
+
+ DbControl.Show();
+ }
+
+ private void levelConfigToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ }
+
+ private void changeLeToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ foreach (Form frm in Application.OpenForms)
+ {
+ if (frm.Name == "FmxLevelConfig")
+ {
+ frm.Activate();
+ return;
+ }
+ }
+ FmxLevelConfig LevelControl = new FmxLevelConfig(Config);
+
+ LevelControl.ShowDialog();
+ }
+
+ private void changePasswordToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ foreach (Form frm in Application.OpenForms)
+ {
+ if (frm.Name == "FmxPasswordChange")
+ {
+ frm.Activate();
+ return;
+ }
+ }
+ FmxPasswordChange ChangePassword = new FmxPasswordChange(Config);
+
+ ChangePassword.ShowDialog();
+ }
+ #endregion
+
+ #region TIMER EVENT
+ private void tmrDisplay_Tick(object sender, EventArgs e)
+ {
+ uTarget.UpdateStatus(Active);
+ DisplaySystemFwVerModule();
+ }
+ #endregion
+
+ #region MAKE TOTAL DATA
+ private void MakeTotalDataAndStatus()
+ {
+ if (Config.CommType == csConstData.CommType.COMM_RS485)
+ {
+ MakeTotalDataRS485();
+ MakeTotalStatusRS485();
+ MakeTotalAlarmRS485();
+ }
+ }
+
+ private void MakeTotalDataRS485()
+ {
+ int j = 0;
+ int vsum, csum, ssum, hsum, tsum;
+ int mQty = csUtils.GetModuleQty(Config);
+
+ vsum = csum = ssum = hsum = tsum = 0;
+ for (int i = 0; i < mQty; i++)
+ {
+ if (DeviceData.ModuleData[i].ShelfCommFail == false)
+ {
+ vsum += DeviceData.ModuleData[i].ValueData.voltage;
+ csum += DeviceData.ModuleData[i].ValueData.current;
+ ssum += DeviceData.ModuleData[i].ValueData.SOC;
+ hsum += DeviceData.ModuleData[i].ValueData.SOH;
+ tsum += DeviceData.ModuleData[i].AvgData.avgTemp;
+ j++;
+ }
+ }
+
+ if (j > 0)
+ {
+ DeviceData.TotalData.ValueData.TotalVoltage = (short)(vsum / j);
+ DeviceData.TotalData.ValueData.TotalCurrent = (short)(csum);
+ DeviceData.TotalData.ValueData.TotalSOC = (short)(ssum / j);
+ DeviceData.TotalData.ValueData.TotalSOH = (short)(hsum / j);
+ DeviceData.TotalData.ValueData.TotalTemp = (short)(tsum / j);
+ }
+ else
+ {
+ DeviceData.TotalData.ValueData.TotalVoltage = 0;
+ DeviceData.TotalData.ValueData.TotalCurrent = 0;
+ DeviceData.TotalData.ValueData.TotalSOC = 0;
+ DeviceData.TotalData.ValueData.TotalSOH = 0;
+ DeviceData.TotalData.ValueData.TotalTemp = 0;
+ }
+ }
+
+ private void MakeTotalStatusRS485()
+ {
+ int mQty = csUtils.GetModuleQty(Config);
+
+ switch (DeviceData.TotalData.StatusData.status)
+ {
+ case 0: // Standby
+ if (DeviceData.TotalData.ValueData.TotalCurrent > 50) // Discharging 5.0A
+ {
+ DeviceData.TotalData.StatusData.status = 2; // Discharging
+ }
+ else if (DeviceData.TotalData.ValueData.TotalCurrent < -50) // Charging -5.0A
+ {
+ DeviceData.TotalData.StatusData.status = 1; // Charging
+ }
+ else
+ {
+ bool flag = true;
+ for (int i = 0; i < mQty; i++)
+ {
+ if (DeviceData.ModuleData[i].StatusData.status != 3)
+ {
+ flag = false;
+ break;
+ }
+ }
+ if (flag == true)
+ {
+ DeviceData.TotalData.StatusData.status = 3; // Floating
+ }
+ }
+ break;
+ case 1: // Charging
+ if (DeviceData.TotalData.ValueData.TotalCurrent > 50) // Discharge -5.0A
+ {
+ DeviceData.TotalData.StatusData.status = 2; // Discharging
+ }
+ else if (DeviceData.TotalData.ValueData.TotalCurrent > -30) // Charging > -3.0A
+ {
+ DeviceData.TotalData.StatusData.status = 0; // Standby
+ }
+ else
+ {
+ bool flag = true;
+ for (int i = 0; i < mQty; i++)
+ {
+ if (DeviceData.ModuleData[i].StatusData.status != 3)
+ {
+ flag = false;
+ break;
+ }
+ }
+ if (flag == true)
+ {
+ DeviceData.TotalData.StatusData.status = 3; // Floating
+ }
+ }
+ break;
+ case 2: // Discharging
+ if (DeviceData.TotalData.ValueData.TotalCurrent < -50) // Charging -5.0A
+ {
+ DeviceData.TotalData.StatusData.status = 1; // Charging
+ }
+ else if (DeviceData.TotalData.ValueData.TotalCurrent < 30) // Discharge 3.0A
+ {
+ DeviceData.TotalData.StatusData.status = 0; // Standby
+ }
+ else
+ {
+ bool flag = true;
+ for (int i = 0; i < mQty; i++)
+ {
+ if (DeviceData.ModuleData[i].StatusData.status != 3)
+ {
+ flag = false;
+ break;
+ }
+ }
+ if (flag == true)
+ {
+ DeviceData.TotalData.StatusData.status = 3; // Floating
+ }
+ }
+ break;
+ case 3: // Floating
+ if (DeviceData.TotalData.ValueData.TotalCurrent < -50) // Charging -5.0A
+ {
+ DeviceData.TotalData.StatusData.status = 1; // Charging
+ }
+ else if (DeviceData.TotalData.ValueData.TotalCurrent > 50) // Discharge 5.0A
+ {
+ DeviceData.TotalData.StatusData.status = 2; // Discharge
+ }
+ else
+ {
+ bool flag = true;
+ for (int i = 0; i < mQty; i++)
+ {
+ if (DeviceData.ModuleData[i].StatusData.status != 3)
+ {
+ flag = false;
+ break;
+ }
+ }
+ if (flag == false)
+ {
+ DeviceData.TotalData.StatusData.status = 0; // Standby
+ }
+ }
+ break;
+ }
+ }
+
+ private void MakeTotalAlarmRS485()
+ {
+ int mQty = csUtils.GetModuleQty(Config);
+
+ bool aTrip, aWarning;
+
+ aTrip = aWarning = false;
+
+ for (int i = 0; i < mQty; i++)
+ {
+ if (DeviceData.ModuleData[i].StatusData.batteryStatus == 2)
+ {
+ aTrip = true;
+ }
+ else if ((DeviceData.ModuleData[i].StatusData.batteryStatus == 1) || (DeviceData.ModuleData[i].ShelfCommFail))
+ {
+ aWarning = true;
+ }
+ }
+ if (aTrip)
+ {
+ DeviceData.TotalData.StatusData.batteryStatus = 2;
+ }
+ else if (aWarning)
+ {
+ DeviceData.TotalData.StatusData.batteryStatus = 1;
+ }
+ else
+ {
+ DeviceData.TotalData.StatusData.batteryStatus = 0;
+ }
+ }
+ #endregion
+
+ #region EVENT CONNECT AND DISCONNECT
+ // UART 이벤트 연결/해제
+ private void WireUart(csUartThread t)
+ {
+ if (t == null) return;
+ t.OnUpdate += UpdateDataUart; // EventHandler
+ t.OnDataRecv += UartRecvData; // EventHandler
+ t.OnPrint += CommDataPrint; // EventHandler
+ }
+
+ private void UnwireUart()
+ {
+ if (uartThread == null) return;
+ uartThread.OnUpdate -= UpdateDataUart;
+ uartThread.OnDataRecv -= UartRecvData;
+ uartThread.OnPrint -= CommDataPrint;
+ }
+
+ // RS485(Delta) 이벤트 연결/해제
+ private void WireRs485(CsUartThreadSB t)
+ {
+ if (t == null) return;
+ t.OnUpdate += UpdateDataRS485; // EventHandler
+ t.OnDataRecv += UartRecvData; // EventHandler
+ t.OnPrint += CommDataPrint; // EventHandler
+ }
+
+ private void UnwireRs485()
+ {
+ if (rs485Thread == null) return;
+ rs485Thread.OnUpdate -= UpdateDataRS485;
+ rs485Thread.OnDataRecv -= UartRecvData;
+ rs485Thread.OnPrint -= CommDataPrint;
+ }
+ #endregion
+
+ #region EVENT HANDLER
+ private void UpdateDataUart(object sender, csUartThread.ModuleDataEventArgs e)
+ {
+ // 필요시 깊은 복사(바인딩 대상이 스레드 모두에서 변경될 여지가 있으면)
+ // var snapshot = e.Modules.Select(m => m.DeepCopy()).ToArray();
+ // DeviceData.ModuleData = snapshot;
+
+ DeviceData.ModuleData[0] = e.Module; // 참조 재할당만으로 충분하면 이대로
+
+ // ref 제거: UpdateData 시그니처도 ref 없이 받도록 변경 권장
+ ShelfStatus?.UpdateData(DeviceData.ModuleData);
+ uDataLog.UpdateData(DeviceData);
+ }
+
+ private void UpdateDataRS485(object sender, CsUartThreadSB.ModuleDataEventArgs e)
+ {
+ // 필요시 깊은 복사(바인딩 대상이 스레드 모두에서 변경될 여지가 있으면)
+ // var snapshot = e.Modules.Select(m => m.DeepCopy()).ToArray();
+ // DeviceData.ModuleData = snapshot;
+
+ DeviceData.ModuleData = e.Modules; // 참조 재할당만으로 충분하면 이대로
+
+ // ref 제거: UpdateData 시그니처도 ref 없이 받도록 변경 권장
+ ShelfStatus?.UpdateData(DeviceData.ModuleData);
+
+ MakeTotalDataAndStatus();
+ MainStatus?.UpdateData(DeviceData);
+ uDataLog.UpdateData(DeviceData);
+ }
+
+ // 핸들러 (대응되는 형태)
+ private void UartRecvData(object sender, DataRecvEventArgs e)
+ {
+ // e.Data 사용
+ FwUpdateForm?.RecvData(e.Data);
+ //HistoryForm?.RecvUartData(e.Data); // 메서드명 확인 (오타 주의)
+ }
+
+ // 핸들러 (대응되는 형태)
+ private void CommDataPrint(object sender, PrintEventArgs e)
+ {
+ var id = e.Id;
+ var msg = e.Message;
+ if (!string.IsNullOrEmpty(msg))
+ uEventLog.EventUpdate(id, msg + "\r\n");
+ }
+
+ private void ErrorOnPrint(object sender, PrintEventArgs e)
+ {
+ var id = e.Id;
+ var msg = e.Message;
+ if (!string.IsNullOrEmpty(e.Message))
+ uEventLog.ErrorUpdate(id, msg + "\r\n");
+ }
+ #endregion
+
+ #region EVENT DB COMMAND TO THREAD
+ private void UpdateAlarmHistory(DataTable aAlarmHistory)
+ {
+ uEventLog.AlarmHistoryUpdate1(aAlarmHistory);
+ }
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxMain.resx b/LFP_Manager/Forms/fmxMain.resx
new file mode 100644
index 0000000..4a82c22
--- /dev/null
+++ b/LFP_Manager/Forms/fmxMain.resx
@@ -0,0 +1,4583 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ 225, 17
+
+
+ 342, 17
+
+
+ 94, 16
+
+
+ 51
+
+
+
+
+ AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA
+ GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/
+ ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7/////////////////////
+ ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff/////////
+ ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+
+ /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7/////
+ ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc
+ x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7/////////////////////////////
+ ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt
+ e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP
+ SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7/////////
+ ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z
+ WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS
+ Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8
+ +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+
+ /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+
+ /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO
+ SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz
+ 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o
+ 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9
+ /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE
+ oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG
+ PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7/////
+ ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH
+ PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t
+ 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/
+ ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/
+ ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7/////////////////////////////
+ ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+
+ /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ
+ TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7/////////////////
+ ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ
+ TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+
+ /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7/////
+ ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP
+ SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7/////////////////////////////////////////
+ ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/
+ ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7/////////////////////////////
+ ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/
+ ///+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////+/v7////////+/v3////////////////////////+/v3////////+/v7/////////////////
+ ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7/////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ /////////v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v7////////+/v7/////////////////////////////////////
+ ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7/////////////////////
+ ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7
+ +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9
+ /Pz+/v7/////////////////////////////////////////////////////////////////////////
+ ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM
+ RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7/////////////////////////////////////
+ ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL
+ QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+
+ /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP
+ SgCOSQCPTAKFOwDVvaT////9/Pv+/v7/////////////////////////////////////////////////
+ ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8
+ +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7/////////
+ /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO
+ SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF
+ OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+
+ ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/
+ //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7/////////////////////////
+ ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/
+ mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79
+ /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN
+ RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ
+ TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7/////
+ ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7/////
+ ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+
+ /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ
+ TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP
+ SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH
+ PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/
+ ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5
+ 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+
+ /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ
+ QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE
+ oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/
+ ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7/////////////////////////
+ ///////////////////////////////////////////////////////+/v7+////////////////////
+ ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+
+ /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9
+ /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP
+ SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL
+ RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7/////////////////////////////////
+ ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/
+ ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7/////////
+ ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP
+ SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI
+ PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/
+ ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x
+ glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7/////////////////////////////
+ ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM
+ RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+
+ /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/
+ ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP
+ SgCOSgGLRQGTURDz7ef+/v39/f3+/v7/////////////////////////////////////////////////
+ ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+
+ /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7/////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN
+ RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9
+ /fz9/f3+/v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO
+ SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7/////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO
+ SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS
+ UA/y6+X+/v39/fz+/v7+/v7/////////////////////////////////////////////////////////
+ ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP
+ SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7/////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+
+ /v7/////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO
+ SQCOSQGJQQDi0cD////9/Pv+/v7/////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J
+ QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7/////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39
+ /fz+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz
+ hFazhFayhFazhVete1TWvqb////9/fz+/v7/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+
+ /f3+/f3/////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v7+////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////v7+
+ /f39////////////////////////////////////////////////////////////////////////////
+ ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39
+ /fz8/v79/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA
+ nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1////
+ x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV
+ i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC
+ jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC
+ hz8Ap3I//fz7/fz8/v79/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7
+ /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8
+ +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p
+ /v39/f38/v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+
+ ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb
+ 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+//7+/f39
+ /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7////
+ 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+
+ /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA
+ j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB
+ j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB
+ i0UAlVYZ8+3m/f79/f38/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+////////////////
+ /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39
+ /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+
+ sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+
+ /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+////////
+ /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+
+ /f39/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO
+ /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39
+ 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39
+ /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+////////////////////////////
+ /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+////
+ /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A
+ kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ jkoCikIC4tHA/////Pv7/v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC
+ hz4A1r6m/////Pz7/v7+/v7+/////v7+////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+
+ /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+////////////////////
+ /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM
+ /////Pv6/v7+/v7+/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA
+ j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+
+ /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7
+ /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq////
+ /Pv6/v7+/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A
+ j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA
+ kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA
+ j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6
+ /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+////////
+ /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+
+ /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA
+ xaJ//////Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU
+ /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA
+ j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+////////////
+ 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+
+ /////v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39
+ /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/
+ /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6
+ ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+
+ /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC
+ kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB
+ kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39////
+ /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA
+ hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA
+ iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A
+ j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU
+ z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+////////
+ /v7+/////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7//v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn
+ +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3
+ +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8
+ /fz8/v7+/////v7+/////v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v///v7+/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT
+ z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7
+ ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A
+ hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A
+ fS0AtIdb/f38/Pz8///+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D
+ kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL
+ jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA
+ jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3
+ iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA
+ jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA
+ jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK
+ 6t7S/v7+/fz8/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs////
+ /Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7
+ /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38
+ /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fz8
+ /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+////////////////////////////////////
+ /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+
+ /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA
+ jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A
+ pnA8/Pv6/fz7/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq
+ iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+
+ /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+////////////
+ /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+
+ //7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A
+ 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES
+ jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+////////////////
+ /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6
+ /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7
+ /v79/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v39
+ /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8
+ +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+
+ /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ
+ hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ
+ 8+3m/f39/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+
+ /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA
+ jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA
+ u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA
+ j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA
+ jkkCikQE49PC/v7//fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8
+ /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+
+ /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7////
+ t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA
+ jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU
+ hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD
+ /////fz8//7//v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA
+ oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC
+ hj0Az7SX/////fz7//7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+//7+
+ /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH
+ jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA
+ jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT////
+ /Pz8/v7//v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA
+ t4tf/////fz7/v7+/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs
+ mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6
+ /v7+/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v7+
+ /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx
+ +/n3/fz8/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+
+ rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA
+ jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW
+ k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV
+ kU8TmVoj8ejg/v39/fz7/v7//f39/v//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off
+ 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v////7+/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v39/v7+
+ ///+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/v//////
+ /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v79/////////v7+/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v79/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////9/Lt9/Pu
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2svnmMrzrGR/////fz7////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ
+ /v39/fz8/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h
+ /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0////
+ 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC
+ j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ jUgBlFIO7uTa/////f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB
+ jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+
+ /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38////////////////////
+ /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z
+ iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+
+ sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG////
+ /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ hz4Ar35J/v39/fz8/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+////////
+ /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38////////////////////////////////
+ /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+////////////////////////////////////////////
+ /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA
+ /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW
+ k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+
+ /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+////////////////////
+ /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iEAA176j/////fz7////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39////////////////////////////////////////////
+ ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38
+ /fz8/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEA1buf/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+////////////
+ /////////////////////////////////////////////////////////////////////fz7////yKaB
+ hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v///f38////sH9K
+ hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oBi0QAnmIj9vHs/v39/v39////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA
+ nWAf9vHs/v7+/v79////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo////
+ /fz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v///f38////
+ 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/v79+/n3omor
+ ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm
+ +PTw/v39/f39////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sBjEUAmVwb9e/p/v7+/f38////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A
+ vpVq/////fz7/v/+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8AyKaB/////fz7/v///v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39
+ //7/////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC
+ jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsCiD8Auo9h/////fz8/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE
+ iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB
+ 4tC+/////f38/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjUcBk1EN7+Xb/////f39/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj
+ n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f38////u5Jlhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkBjUgE4M66/////fz7/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR
+ 7+bd/v7+/f39////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv
+ +/n4/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0
+ rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6
+ ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC
+ hz4AtolZ/////fz8/v3+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA
+ j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ j0sBikIApGww+vj1/v39/f39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ
+ j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M
+ /////Pz7/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkCjkkG4c+7/////fz7/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+///+/v39
+ /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d////
+ /fz7/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/f38/f38
+ 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A
+ jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sBiD8AyKiE/////fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oBiUEApW4z+vj1/v39/v39////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ
+ /v7+/f38/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4
+ 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD
+ 49PB/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/Pz7////
+ 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6////
+ /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A
+ j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC
+ iUEAqHQ7+/j2/fz8/v39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jUgBkk8K7ODV/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL////
+ /f38/v7+///+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6////////
+ ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A
+ ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38
+ /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBiUEA1Lqd/////fv6////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38
+ sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////v7+/v39
+ /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq
+ 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38
+ /v39/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjUgBkU4J6NrM/////fz8////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA
+ jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEArnxG/v7+/f38/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO
+ 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i////
+ /Pz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA
+ hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr
+ vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g
+ 4M24/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY
+ llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+////////////////////////////
+ /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsCiUEArXpD/v7//f39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB
+ ikMA1bqf/////fz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39
+ /f38/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39
+ /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/////////v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI
+ iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8////
+ /fz8////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA
+ mVsZ8+zl/v38/fz8////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7
+ /v7+//7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz7/v7+
+ 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf
+ 9vHs/v79/fz8////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z
+ iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAi0YAl1gT8+3l/v7+/f39////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA
+ upFj/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC
+ hz4AwZty/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////f39
+ /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC
+ jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ
+ hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsChz4At4ta/////fz8/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjUgCkEwL6dzO/////fz7////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD
+ 38y3/////fz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v/+/f39/v79
+ +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////fz8
+ /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A
+ kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK
+ 5tbG/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBjUcB4M25/////f38/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos
+ +PTw/fz8/f39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v//////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA
+ kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB
+ iUAAq3dA/Pr4/fz7/f39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v///fz7
+ ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA
+ j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0oBikMAomgq+vf0/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////Pz7////4M24
+ i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiUEA0rea/////fz7/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7
+ /v38/v39/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////f38/v79
+ +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/f38
+ ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ kEwChz4AxaJ8/////fz7/v7+////////////////////////////////////////////////////////
+ ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA
+ 07mb/////Pz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU
+ /v7+/Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+////
+ //////////////////////////////////////////////////////////////////////////////7/
+ /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7/////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+////////////////////////////
+ /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jEQAm10b9O/p/v7+/f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+////////////////////////////////////////
+ /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7
+ /v7//v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jUgAklAK6dzO/////f38/v//////////////////////////////////////////////////////////
+ /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6
+ /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng
+ lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+
+ /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiD8Au5Jl/////fz8/v7+//7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+////////////////////
+ /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj
+ /v39/fz8/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+////////////////////////////
+ /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8
+ ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb////
+ /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A
+ upFj/////fz8/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+
+ /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7////////////////////////
+ /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf
+ llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA
+ kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkBjUcA49LA/////f38/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79
+ /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3
+ qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8////0baX
+ iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD
+ /////fz8/v//////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA
+ nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA
+ qHI4/Pv5/v39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+
+ iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ kEsChz8Az7KS/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7
+ /v39/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v39
+ /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////fz8////59jIj0oD
+ jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ
+ /////fz8////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB
+ llYW7+Xb/v7+/f38/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0wChz8AuIxc/v7+/fz7/v39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+
+ /v39/v//////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fv6
+ ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAjkkBjEYA4M24/////fz8/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa
+ /////f38////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v39/fz7
+ 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB
+ jUcE3sq2/////Pz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oBikMAomgq+fXy/v39/f39////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/fz7////
+ 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq
+ +vf1/f38/f39//7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39
+ tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS
+ yqqM38u2/////v79/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/v79////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v79/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxModuleDetail.Designer.cs b/LFP_Manager/Forms/fmxModuleDetail.Designer.cs
new file mode 100644
index 0000000..53ce0ad
--- /dev/null
+++ b/LFP_Manager/Forms/fmxModuleDetail.Designer.cs
@@ -0,0 +1,210 @@
+
+namespace LFP_Manager.Forms
+{
+ partial class fmxModuleDetail
+ {
+ ///
+ /// 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(fmxModuleDetail));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.btnNext = new DevExpress.XtraEditors.SimpleButton();
+ this.btnPrev = new DevExpress.XtraEditors.SimpleButton();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.ShelfStatus = new LFP_Manager.Controls.ucShelfStatus();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.btnClose);
+ this.layoutControl1.Controls.Add(this.btnNext);
+ this.layoutControl1.Controls.Add(this.btnPrev);
+ this.layoutControl1.Controls.Add(this.ShelfStatus);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1270, 387, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(1198, 648);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // btnClose
+ //
+ this.btnClose.Location = new System.Drawing.Point(1032, 604);
+ this.btnClose.Name = "btnClose";
+ this.btnClose.Size = new System.Drawing.Size(163, 41);
+ this.btnClose.StyleController = this.layoutControl1;
+ this.btnClose.TabIndex = 7;
+ this.btnClose.Text = "CLOSE";
+ this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+ //
+ // btnNext
+ //
+ this.btnNext.Location = new System.Drawing.Point(170, 604);
+ this.btnNext.Name = "btnNext";
+ this.btnNext.Size = new System.Drawing.Size(163, 41);
+ this.btnNext.StyleController = this.layoutControl1;
+ this.btnNext.TabIndex = 6;
+ this.btnNext.Text = "NEXT";
+ this.btnNext.Click += new System.EventHandler(this.btnNext_Click);
+ //
+ // btnPrev
+ //
+ this.btnPrev.Location = new System.Drawing.Point(3, 604);
+ this.btnPrev.Name = "btnPrev";
+ this.btnPrev.Size = new System.Drawing.Size(163, 41);
+ this.btnPrev.StyleController = this.layoutControl1;
+ this.btnPrev.TabIndex = 5;
+ this.btnPrev.Text = "PREV";
+ this.btnPrev.Click += new System.EventHandler(this.btnPrev_Click);
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1,
+ this.layoutControlItem2,
+ this.emptySpaceItem1,
+ this.layoutControlItem3,
+ this.layoutControlItem4});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(1198, 648);
+ this.Root.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.btnPrev;
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 601);
+ this.layoutControlItem2.MaxSize = new System.Drawing.Size(0, 45);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(89, 45);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(167, 45);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(334, 601);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(695, 45);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.btnNext;
+ this.layoutControlItem3.Location = new System.Drawing.Point(167, 601);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(167, 45);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.btnClose;
+ this.layoutControlItem4.Location = new System.Drawing.Point(1029, 601);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(167, 45);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // ShelfStatus
+ //
+ this.ShelfStatus.Location = new System.Drawing.Point(3, 3);
+ this.ShelfStatus.Name = "ShelfStatus";
+ this.ShelfStatus.Size = new System.Drawing.Size(1192, 597);
+ this.ShelfStatus.TabIndex = 4;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.ShelfStatus;
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(772, 247);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(1196, 601);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // fmxModuleDetail
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(1198, 648);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Image = ((System.Drawing.Image)(resources.GetObject("fmxModuleDetail.IconOptions.Image")));
+ this.Name = "fmxModuleDetail";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "fmxModuleDetail";
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private Controls.ucShelfStatus ShelfStatus;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraEditors.SimpleButton btnClose;
+ private DevExpress.XtraEditors.SimpleButton btnNext;
+ private DevExpress.XtraEditors.SimpleButton btnPrev;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxModuleDetail.cs b/LFP_Manager/Forms/fmxModuleDetail.cs
new file mode 100644
index 0000000..eb948b2
--- /dev/null
+++ b/LFP_Manager/Forms/fmxModuleDetail.cs
@@ -0,0 +1,114 @@
+using DevExpress.XtraEditors;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+using LFP_Manager.DataStructure;
+
+namespace LFP_Manager.Forms
+{
+ public partial class fmxModuleDetail : DevExpress.XtraEditors.XtraForm
+ {
+ #region VARIABLES
+ private int ModuleID = 1;
+ private CommConfig Config;
+ private CsDeviceData.DeviceModuleData[] ModuleDatas;
+
+ #endregion
+
+ #region COSTRUCTORS
+
+ public fmxModuleDetail(int mID, ref CommConfig aConfig, ref CsDeviceData.DeviceModuleData[] mData)
+ {
+ InitializeComponent();
+
+ ModuleID = mID;
+ Config = aConfig;
+ ModuleDatas = mData;
+
+ this.Text = String.Format("MODULE [#{0:00}]"
+ , mID
+ );
+ ShelfStatus.Start(mID, ref aConfig, ref ModuleDatas);
+ }
+
+ #endregion
+
+ #region PUBLIC FUNCTION
+
+ public void SetModuleID(int mID)
+ {
+ ShelfStatus.ModuleIDSet(mID);
+
+ if (this.InvokeRequired)
+ {
+ this.Invoke(new MethodInvoker(delegate ()
+ {
+ this.Text = String.Format("MODULE [#{0:00}]", mID);
+ }));
+ }
+ else
+ {
+ this.Text = String.Format("MODULE [#{0:00}]", mID);
+ }
+ }
+
+ public int GetModuleID()
+ {
+ return ShelfStatus.ModuleIDGet();
+ }
+ #endregion
+
+ #region UPDATE DATA
+
+ public void UpdateData(ref CsDeviceData.DeviceModuleData[] mData)
+ {
+ ShelfStatus.UpdateData(mData);
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+ private void btnPrev_Click(object sender, EventArgs e)
+ {
+ if (ModuleID == 1)
+ {
+ ModuleID = Config.ModuleQty;
+ }
+ else
+ {
+ ModuleID--;
+ }
+ ShelfStatus.ModuleIDSet(ModuleID);
+ ShelfStatus.UpdateData(ModuleDatas);
+ Text = string.Format("Module Status [#{0:00}]", ModuleID);
+ }
+
+ private void btnNext_Click(object sender, EventArgs e)
+ {
+ if (ModuleID == Config.ModuleQty)
+ {
+ ModuleID = 1;
+ }
+ else
+ {
+ ModuleID++;
+ }
+ ShelfStatus.ModuleIDSet(ModuleID);
+ ShelfStatus.UpdateData(ModuleDatas);
+ Text = string.Format("Module Status [#{0:00}]", ModuleID);
+ }
+
+ private void btnClose_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxModuleDetail.resx b/LFP_Manager/Forms/fmxModuleDetail.resx
new file mode 100644
index 0000000..8415941
--- /dev/null
+++ b/LFP_Manager/Forms/fmxModuleDetail.resx
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ vAAADrwBlbxySQAABNdJREFUWEftVWtsFFUUvn2kxF8aI/EVI8Y//NIGjUFaaKGtfYHVKEQNATHxh4om
+ EmOlGIyk26XdbretptpSugJFI5RSwUQIAn2Kj6KyUFLaQk0XfFS6lm4fu+1OP3POzJ3OdrfT0R/4x5Pc
+ 3Jm5597zne98547Af2xi9oebbZYBTE9P67PZMPpaMUsAjAcqJocb16yCsASAzJihzz+BoRvj+rg+PI7h
+ sUCEnxWbF4A8cCqk8Pvxzn4szKvEwuc+wh3rqvRxz9oqnLs8yD6hkGIZiCkAeYCiKAgpCiaCU1j8shsi
+ dSdEdhlEplMd9Ly8CCvzD9Iu9rUSnMwUAJkx+x2fnoFIsiFuTbkaNMeljuwyxK0uZxD7TnaxL+2xwsKc
+ AORmopPE1XvVh1tyXYiRGee4EEPvDECb0x24+/mP4RuZYBaYiXkEOScAMmP2T77fBLHCjthcNXsO+EQp
+ RGapzkIssZBchDdrmnnPpMaCmUUFILOfnArx+xdn+iBWFas0y0BJNmypPo1nbUc5KH+jtRwXFmSX6YKc
+ rxQRAIzCo82j40E8+GItYjIciNUoj8koxZ3rqliUvdd8SMhyIpbKIsGtLEZq/gEtCXMWIgHMor7gk/Yw
+ 4fGcYseeExf0Pe+421iAuo8myPqTF3ndjIUwAEbh0dw9MKRml6UKb3Z2dDAJbWQsgEUbdzEzUpgxmiD/
+ 8quCJEZlDKNFMqABIMvZ3qgKT69vGeIynfip7w8dgNTJgZZu9k3Iq2QGaKb3re42XpcszDYdgMxeUn+4
+ o1dT/RwKnwpxZuRPWqCZLiKR+B5EUhHEMhvE44UQSwvR4vEipMwwawTCAOQHvvFCCvxjQSzasAsirUSl
+ U6P0vvU1uDEa4MCIkg39FwpqmlHgbufMt+1px9tVp9D0TR+vR2MhjAFJZ35da3hr0bzCjs9bunmdQNJl
+ 09nzO06c/QXu4+fhOtSJ2q88+PL7KzjybR+3Lo2j313GZ193oaPrmrpXu6YlECFfJD0X+v/kPqZ6c3C6
+ eFLsSC9o4KylH4EdHg3AOziC5nMDeNfdhvvXV6slWFrIgLkUyTaIZYW47ekP8Ot1f4QgBQGRAMjStjZA
+ pOycyT67jDvhfP8gX8kSQDSj73XHPLhrbRVEhgMJeRWIX12OBU+pgtzgPMZ+xlII6nwpvP2nLkIst+s3
+ Hvd1chH3ORllLTdK5hi8onaDzOyS14fFm3arGpIipnlVCU7/PBAGQsheppre+0I1RJpjRngZDjywsRb+
+ 8aD+c5HBpUkQ8jk4OcXPPVd9uDWvErFZspQuiNRiPPzqXgQnQ+pPTlEgxgPqhi01zVwznXrakGJHY0cP
+ r8vszeiXt2hAA1HR9GOkmJOL4Dp8ltepfbkLPFcGWXjxOS4OHL+mgmuWue0QO0Zrn2gmfeR/hMZDr+zl
+ 25PKSWfHZTlx+zMf4rchPxRlGoL6esnmelW5aSXsTMHjM5245B0KE55VEDRU0ECrx6t2RGqxena6A+Kx
+ Hcjd3sj+Ir+2FYmv7cOS1+sZyKNv7Efipt0oafiBHcxUb2a0R2rmrdoWJL5Ux2dTjEc213PMI/SbpzrM
+ ZZS9UWBWzbjHbB/pT7+KKZgc/K6EK/2fmhEEnRUtBpl+E0YbxoP+jc0+L9qI+B3fbPsfwN+Ml/mpJunQ
+ YAAAAABJRU5ErkJggg==
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxParamConfig.Designer.cs b/LFP_Manager/Forms/fmxParamConfig.Designer.cs
new file mode 100644
index 0000000..1222f6a
--- /dev/null
+++ b/LFP_Manager/Forms/fmxParamConfig.Designer.cs
@@ -0,0 +1,818 @@
+namespace LFP_Manager.Forms
+{
+ partial class fmxParamConfig
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxParamConfig));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.gbDefaultParam = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl7 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnDefaultSet = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlGroup7 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem22 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem4 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.gbCurrentParam = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl5 = new DevExpress.XtraLayout.LayoutControl();
+ this.layoutControlGroup5 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.gbDchTempParam = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl4 = new DevExpress.XtraLayout.LayoutControl();
+ this.layoutControlGroup4 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.gbChaTempParam = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl();
+ this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.gbVoltageParamSet = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.btnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem19 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem3 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlGroup6 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.tmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.ucSocParam = new LFP_Manager.Controls.ucParamSet();
+ this.ucDOCParam = new LFP_Manager.Controls.ucParamSet();
+ this.ucCOCParam = new LFP_Manager.Controls.ucParamSet();
+ this.layoutControlItem14 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem15 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.ucDLTParam = new LFP_Manager.Controls.ucParamSet();
+ this.ucDHTParam = new LFP_Manager.Controls.ucParamSet();
+ this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.ucCLTParam = new LFP_Manager.Controls.ucParamSet();
+ this.ucCHTParam = new LFP_Manager.Controls.ucParamSet();
+ this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.ucSUVParam = new LFP_Manager.Controls.ucParamSet();
+ this.ucSOVParam = new LFP_Manager.Controls.ucParamSet();
+ this.ucCUVParam = new LFP_Manager.Controls.ucParamSet();
+ this.ucCOVParam = new LFP_Manager.Controls.ucParamSet();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem16 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.gbDefaultParam)).BeginInit();
+ this.gbDefaultParam.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl7)).BeginInit();
+ this.layoutControl7.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbCurrentParam)).BeginInit();
+ this.gbCurrentParam.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl5)).BeginInit();
+ this.layoutControl5.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbDchTempParam)).BeginInit();
+ this.gbDchTempParam.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl4)).BeginInit();
+ this.layoutControl4.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbChaTempParam)).BeginInit();
+ this.gbChaTempParam.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit();
+ this.layoutControl3.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbVoltageParamSet)).BeginInit();
+ this.gbVoltageParamSet.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit();
+ this.layoutControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.ucSocParam);
+ this.layoutControl1.Controls.Add(this.gbDefaultParam);
+ this.layoutControl1.Controls.Add(this.gbCurrentParam);
+ this.layoutControl1.Controls.Add(this.gbDchTempParam);
+ this.layoutControl1.Controls.Add(this.gbChaTempParam);
+ this.layoutControl1.Controls.Add(this.gbVoltageParamSet);
+ this.layoutControl1.Controls.Add(this.btnClose);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1155, 88, 654, 350);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(925, 777);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // gbDefaultParam
+ //
+ this.gbDefaultParam.Controls.Add(this.layoutControl7);
+ this.gbDefaultParam.Location = new System.Drawing.Point(694, 645);
+ this.gbDefaultParam.Name = "gbDefaultParam";
+ this.gbDefaultParam.Size = new System.Drawing.Size(228, 62);
+ this.gbDefaultParam.TabIndex = 13;
+ this.gbDefaultParam.Text = " Default Paramter";
+ //
+ // layoutControl7
+ //
+ this.layoutControl7.Controls.Add(this.btnDefaultSet);
+ this.layoutControl7.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl7.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl7.Name = "layoutControl7";
+ this.layoutControl7.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1212, 252, 614, 350);
+ this.layoutControl7.Root = this.layoutControlGroup7;
+ this.layoutControl7.Size = new System.Drawing.Size(224, 37);
+ this.layoutControl7.TabIndex = 0;
+ this.layoutControl7.Text = "layoutControl7";
+ //
+ // btnDefaultSet
+ //
+ this.btnDefaultSet.Location = new System.Drawing.Point(130, 5);
+ this.btnDefaultSet.Name = "btnDefaultSet";
+ this.btnDefaultSet.Size = new System.Drawing.Size(89, 27);
+ this.btnDefaultSet.StyleController = this.layoutControl7;
+ this.btnDefaultSet.TabIndex = 5;
+ this.btnDefaultSet.Text = "Set";
+ this.btnDefaultSet.Click += new System.EventHandler(this.btnDefaultSet_Click);
+ //
+ // layoutControlGroup7
+ //
+ this.layoutControlGroup7.CustomizationFormText = "layoutControlGroup7";
+ this.layoutControlGroup7.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup7.GroupBordersVisible = false;
+ this.layoutControlGroup7.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem22,
+ this.emptySpaceItem4});
+ this.layoutControlGroup7.Name = "Root";
+ this.layoutControlGroup7.Padding = new DevExpress.XtraLayout.Utils.Padding(3, 3, 3, 3);
+ this.layoutControlGroup7.Size = new System.Drawing.Size(224, 37);
+ this.layoutControlGroup7.TextVisible = false;
+ //
+ // layoutControlItem22
+ //
+ this.layoutControlItem22.Control = this.btnDefaultSet;
+ this.layoutControlItem22.CustomizationFormText = "layoutControlItem22";
+ this.layoutControlItem22.Location = new System.Drawing.Point(125, 0);
+ this.layoutControlItem22.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem22.Name = "layoutControlItem22";
+ this.layoutControlItem22.Size = new System.Drawing.Size(93, 31);
+ this.layoutControlItem22.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem22.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem22.TextVisible = false;
+ //
+ // emptySpaceItem4
+ //
+ this.emptySpaceItem4.AllowHotTrack = false;
+ this.emptySpaceItem4.Location = new System.Drawing.Point(0, 0);
+ this.emptySpaceItem4.Name = "emptySpaceItem4";
+ this.emptySpaceItem4.Size = new System.Drawing.Size(125, 31);
+ this.emptySpaceItem4.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // gbCurrentParam
+ //
+ this.gbCurrentParam.Controls.Add(this.layoutControl5);
+ this.gbCurrentParam.Location = new System.Drawing.Point(3, 431);
+ this.gbCurrentParam.Name = "gbCurrentParam";
+ this.gbCurrentParam.Size = new System.Drawing.Size(455, 210);
+ this.gbCurrentParam.TabIndex = 10;
+ this.gbCurrentParam.Text = "Current Parameter";
+ //
+ // layoutControl5
+ //
+ this.layoutControl5.Controls.Add(this.ucDOCParam);
+ this.layoutControl5.Controls.Add(this.ucCOCParam);
+ this.layoutControl5.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl5.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl5.Name = "layoutControl5";
+ this.layoutControl5.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(757, 268, 250, 350);
+ this.layoutControl5.Root = this.layoutControlGroup5;
+ this.layoutControl5.Size = new System.Drawing.Size(451, 185);
+ this.layoutControl5.TabIndex = 0;
+ this.layoutControl5.Text = "layoutControl5";
+ //
+ // layoutControlGroup5
+ //
+ this.layoutControlGroup5.CustomizationFormText = "layoutControlGroup5";
+ this.layoutControlGroup5.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup5.GroupBordersVisible = false;
+ this.layoutControlGroup5.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem14,
+ this.layoutControlItem15});
+ this.layoutControlGroup5.Name = "layoutControlGroup5";
+ this.layoutControlGroup5.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.layoutControlGroup5.Size = new System.Drawing.Size(451, 185);
+ this.layoutControlGroup5.TextVisible = false;
+ //
+ // gbDchTempParam
+ //
+ this.gbDchTempParam.Controls.Add(this.layoutControl4);
+ this.gbDchTempParam.Location = new System.Drawing.Point(462, 217);
+ this.gbDchTempParam.Name = "gbDchTempParam";
+ this.gbDchTempParam.Size = new System.Drawing.Size(460, 210);
+ this.gbDchTempParam.TabIndex = 9;
+ this.gbDchTempParam.Text = "Discharge Temp Parameter";
+ //
+ // layoutControl4
+ //
+ this.layoutControl4.Controls.Add(this.ucDLTParam);
+ this.layoutControl4.Controls.Add(this.ucDHTParam);
+ this.layoutControl4.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl4.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl4.Name = "layoutControl4";
+ this.layoutControl4.Root = this.layoutControlGroup4;
+ this.layoutControl4.Size = new System.Drawing.Size(456, 185);
+ this.layoutControl4.TabIndex = 0;
+ this.layoutControl4.Text = "layoutControl4";
+ //
+ // layoutControlGroup4
+ //
+ this.layoutControlGroup4.CustomizationFormText = "layoutControlGroup4";
+ this.layoutControlGroup4.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup4.GroupBordersVisible = false;
+ this.layoutControlGroup4.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem12,
+ this.layoutControlItem13});
+ this.layoutControlGroup4.Name = "layoutControlGroup4";
+ this.layoutControlGroup4.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.layoutControlGroup4.Size = new System.Drawing.Size(456, 185);
+ this.layoutControlGroup4.TextVisible = false;
+ //
+ // gbChaTempParam
+ //
+ this.gbChaTempParam.Controls.Add(this.layoutControl3);
+ this.gbChaTempParam.Location = new System.Drawing.Point(3, 217);
+ this.gbChaTempParam.Name = "gbChaTempParam";
+ this.gbChaTempParam.Size = new System.Drawing.Size(455, 210);
+ this.gbChaTempParam.TabIndex = 8;
+ this.gbChaTempParam.Text = "Charge Temp Parameter";
+ //
+ // layoutControl3
+ //
+ this.layoutControl3.Controls.Add(this.ucCLTParam);
+ this.layoutControl3.Controls.Add(this.ucCHTParam);
+ this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl3.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl3.Name = "layoutControl3";
+ this.layoutControl3.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1273, 246, 250, 350);
+ this.layoutControl3.Root = this.layoutControlGroup3;
+ this.layoutControl3.Size = new System.Drawing.Size(451, 185);
+ this.layoutControl3.TabIndex = 0;
+ this.layoutControl3.Text = "layoutControl3";
+ //
+ // layoutControlGroup3
+ //
+ this.layoutControlGroup3.CustomizationFormText = "layoutControlGroup3";
+ this.layoutControlGroup3.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup3.GroupBordersVisible = false;
+ this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem9,
+ this.layoutControlItem10});
+ this.layoutControlGroup3.Name = "layoutControlGroup3";
+ this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.layoutControlGroup3.Size = new System.Drawing.Size(451, 185);
+ this.layoutControlGroup3.TextVisible = false;
+ //
+ // gbVoltageParamSet
+ //
+ this.gbVoltageParamSet.Controls.Add(this.layoutControl2);
+ this.gbVoltageParamSet.Location = new System.Drawing.Point(3, 3);
+ this.gbVoltageParamSet.Name = "gbVoltageParamSet";
+ this.gbVoltageParamSet.Size = new System.Drawing.Size(919, 210);
+ this.gbVoltageParamSet.TabIndex = 7;
+ this.gbVoltageParamSet.Text = "-";
+ //
+ // layoutControl2
+ //
+ this.layoutControl2.Controls.Add(this.ucSUVParam);
+ this.layoutControl2.Controls.Add(this.ucSOVParam);
+ this.layoutControl2.Controls.Add(this.ucCUVParam);
+ this.layoutControl2.Controls.Add(this.ucCOVParam);
+ this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl2.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl2.Name = "layoutControl2";
+ this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1218, 0, 650, 400);
+ this.layoutControl2.Root = this.layoutControlGroup2;
+ this.layoutControl2.Size = new System.Drawing.Size(915, 185);
+ this.layoutControl2.TabIndex = 0;
+ this.layoutControl2.Text = "layoutControl2";
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2";
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem4,
+ this.layoutControlItem5,
+ this.layoutControlItem6,
+ this.layoutControlItem7});
+ this.layoutControlGroup2.Name = "Root";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(915, 185);
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // btnClose
+ //
+ this.btnClose.Location = new System.Drawing.Point(3, 711);
+ this.btnClose.Name = "btnClose";
+ this.btnClose.Size = new System.Drawing.Size(919, 63);
+ this.btnClose.StyleController = this.layoutControl1;
+ this.btnClose.TabIndex = 6;
+ this.btnClose.Text = "CLOSE";
+ this.btnClose.Click += new System.EventHandler(this.btnCancel_Click);
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem3,
+ this.layoutControlItem1,
+ this.layoutControlItem8,
+ this.layoutControlItem11,
+ this.layoutControlItem2,
+ this.emptySpaceItem1,
+ this.emptySpaceItem2,
+ this.layoutControlItem19,
+ this.emptySpaceItem3,
+ this.layoutControlGroup6});
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(925, 777);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.btnClose;
+ this.layoutControlItem3.CustomizationFormText = "layoutControlItem3";
+ this.layoutControlItem3.Location = new System.Drawing.Point(0, 708);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(923, 67);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.gbVoltageParamSet;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.MaxSize = new System.Drawing.Size(0, 214);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(424, 214);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(923, 214);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.gbChaTempParam;
+ this.layoutControlItem8.CustomizationFormText = "layoutControlItem8";
+ this.layoutControlItem8.Location = new System.Drawing.Point(0, 214);
+ this.layoutControlItem8.MaxSize = new System.Drawing.Size(0, 214);
+ this.layoutControlItem8.MinSize = new System.Drawing.Size(216, 214);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(459, 214);
+ this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem8.TextVisible = false;
+ //
+ // layoutControlItem11
+ //
+ this.layoutControlItem11.Control = this.gbDchTempParam;
+ this.layoutControlItem11.CustomizationFormText = "layoutControlItem11";
+ this.layoutControlItem11.Location = new System.Drawing.Point(459, 214);
+ this.layoutControlItem11.Name = "layoutControlItem11";
+ this.layoutControlItem11.Size = new System.Drawing.Size(464, 214);
+ this.layoutControlItem11.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem11.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.gbCurrentParam;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 428);
+ this.layoutControlItem2.MaxSize = new System.Drawing.Size(0, 214);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(216, 214);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(459, 214);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1";
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 642);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(459, 66);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // emptySpaceItem2
+ //
+ this.emptySpaceItem2.AllowHotTrack = false;
+ this.emptySpaceItem2.CustomizationFormText = "emptySpaceItem2";
+ this.emptySpaceItem2.Location = new System.Drawing.Point(459, 642);
+ this.emptySpaceItem2.Name = "emptySpaceItem2";
+ this.emptySpaceItem2.Size = new System.Drawing.Size(232, 66);
+ this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem19
+ //
+ this.layoutControlItem19.Control = this.gbDefaultParam;
+ this.layoutControlItem19.CustomizationFormText = "layoutControlItem19";
+ this.layoutControlItem19.Location = new System.Drawing.Point(691, 642);
+ this.layoutControlItem19.Name = "layoutControlItem19";
+ this.layoutControlItem19.Size = new System.Drawing.Size(232, 66);
+ this.layoutControlItem19.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem19.TextVisible = false;
+ //
+ // emptySpaceItem3
+ //
+ this.emptySpaceItem3.AllowHotTrack = false;
+ this.emptySpaceItem3.Location = new System.Drawing.Point(459, 428);
+ this.emptySpaceItem3.Name = "emptySpaceItem3";
+ this.emptySpaceItem3.Size = new System.Drawing.Size(232, 214);
+ this.emptySpaceItem3.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlGroup6
+ //
+ this.layoutControlGroup6.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem16});
+ this.layoutControlGroup6.Location = new System.Drawing.Point(691, 428);
+ this.layoutControlGroup6.Name = "layoutControlGroup6";
+ this.layoutControlGroup6.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup6.Size = new System.Drawing.Size(232, 214);
+ this.layoutControlGroup6.Text = "SOC Parameter";
+ //
+ // tmrDisplay
+ //
+ this.tmrDisplay.Interval = 500;
+ this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick);
+ //
+ // ucSocParam
+ //
+ this.ucSocParam.Location = new System.Drawing.Point(698, 456);
+ this.ucSocParam.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.ucSocParam.Name = "ucSocParam";
+ this.ucSocParam.Size = new System.Drawing.Size(220, 181);
+ this.ucSocParam.TabIndex = 14;
+ //
+ // ucDOCParam
+ //
+ this.ucDOCParam.Location = new System.Drawing.Point(227, 2);
+ this.ucDOCParam.Name = "ucDOCParam";
+ this.ucDOCParam.Size = new System.Drawing.Size(222, 181);
+ this.ucDOCParam.TabIndex = 5;
+ //
+ // ucCOCParam
+ //
+ this.ucCOCParam.Location = new System.Drawing.Point(2, 2);
+ this.ucCOCParam.Name = "ucCOCParam";
+ this.ucCOCParam.Size = new System.Drawing.Size(221, 181);
+ this.ucCOCParam.TabIndex = 4;
+ //
+ // layoutControlItem14
+ //
+ this.layoutControlItem14.Control = this.ucCOCParam;
+ this.layoutControlItem14.CustomizationFormText = "layoutControlItem14";
+ this.layoutControlItem14.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem14.Name = "layoutControlItem14";
+ this.layoutControlItem14.Size = new System.Drawing.Size(225, 185);
+ this.layoutControlItem14.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem14.TextVisible = false;
+ //
+ // layoutControlItem15
+ //
+ this.layoutControlItem15.Control = this.ucDOCParam;
+ this.layoutControlItem15.CustomizationFormText = "layoutControlItem15";
+ this.layoutControlItem15.Location = new System.Drawing.Point(225, 0);
+ this.layoutControlItem15.Name = "layoutControlItem15";
+ this.layoutControlItem15.Size = new System.Drawing.Size(226, 185);
+ this.layoutControlItem15.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem15.TextVisible = false;
+ //
+ // ucDLTParam
+ //
+ this.ucDLTParam.Location = new System.Drawing.Point(229, 2);
+ this.ucDLTParam.Name = "ucDLTParam";
+ this.ucDLTParam.Size = new System.Drawing.Size(225, 181);
+ this.ucDLTParam.TabIndex = 5;
+ //
+ // ucDHTParam
+ //
+ this.ucDHTParam.Location = new System.Drawing.Point(2, 2);
+ this.ucDHTParam.Name = "ucDHTParam";
+ this.ucDHTParam.Size = new System.Drawing.Size(223, 181);
+ this.ucDHTParam.TabIndex = 4;
+ //
+ // layoutControlItem12
+ //
+ this.layoutControlItem12.Control = this.ucDHTParam;
+ this.layoutControlItem12.CustomizationFormText = "layoutControlItem12";
+ this.layoutControlItem12.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem12.Name = "layoutControlItem12";
+ this.layoutControlItem12.Size = new System.Drawing.Size(227, 185);
+ this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem12.TextVisible = false;
+ //
+ // layoutControlItem13
+ //
+ this.layoutControlItem13.Control = this.ucDLTParam;
+ this.layoutControlItem13.CustomizationFormText = "layoutControlItem13";
+ this.layoutControlItem13.Location = new System.Drawing.Point(227, 0);
+ this.layoutControlItem13.Name = "layoutControlItem13";
+ this.layoutControlItem13.Size = new System.Drawing.Size(229, 185);
+ this.layoutControlItem13.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem13.TextVisible = false;
+ //
+ // ucCLTParam
+ //
+ this.ucCLTParam.Location = new System.Drawing.Point(227, 2);
+ this.ucCLTParam.Name = "ucCLTParam";
+ this.ucCLTParam.Size = new System.Drawing.Size(222, 181);
+ this.ucCLTParam.TabIndex = 5;
+ //
+ // ucCHTParam
+ //
+ this.ucCHTParam.Location = new System.Drawing.Point(2, 2);
+ this.ucCHTParam.Name = "ucCHTParam";
+ this.ucCHTParam.Size = new System.Drawing.Size(221, 181);
+ this.ucCHTParam.TabIndex = 4;
+ //
+ // layoutControlItem9
+ //
+ this.layoutControlItem9.Control = this.ucCHTParam;
+ this.layoutControlItem9.CustomizationFormText = "layoutControlItem9";
+ this.layoutControlItem9.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem9.Name = "layoutControlItem9";
+ this.layoutControlItem9.Size = new System.Drawing.Size(225, 185);
+ this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem9.TextVisible = false;
+ //
+ // layoutControlItem10
+ //
+ this.layoutControlItem10.Control = this.ucCLTParam;
+ this.layoutControlItem10.CustomizationFormText = "layoutControlItem10";
+ this.layoutControlItem10.Location = new System.Drawing.Point(225, 0);
+ this.layoutControlItem10.Name = "layoutControlItem10";
+ this.layoutControlItem10.Size = new System.Drawing.Size(226, 185);
+ this.layoutControlItem10.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem10.TextVisible = false;
+ //
+ // ucSUVParam
+ //
+ this.ucSUVParam.Location = new System.Drawing.Point(687, 2);
+ this.ucSUVParam.Name = "ucSUVParam";
+ this.ucSUVParam.Size = new System.Drawing.Size(226, 181);
+ this.ucSUVParam.TabIndex = 7;
+ //
+ // ucSOVParam
+ //
+ this.ucSOVParam.Location = new System.Drawing.Point(460, 2);
+ this.ucSOVParam.Name = "ucSOVParam";
+ this.ucSOVParam.Size = new System.Drawing.Size(223, 181);
+ this.ucSOVParam.TabIndex = 6;
+ //
+ // ucCUVParam
+ //
+ this.ucCUVParam.Location = new System.Drawing.Point(231, 2);
+ this.ucCUVParam.Name = "ucCUVParam";
+ this.ucCUVParam.Size = new System.Drawing.Size(225, 181);
+ this.ucCUVParam.TabIndex = 5;
+ //
+ // ucCOVParam
+ //
+ this.ucCOVParam.Location = new System.Drawing.Point(2, 2);
+ this.ucCOVParam.Name = "ucCOVParam";
+ this.ucCOVParam.Size = new System.Drawing.Size(225, 181);
+ this.ucCOVParam.TabIndex = 4;
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.ucCOVParam;
+ this.layoutControlItem4.CustomizationFormText = "layoutControlItem4";
+ this.layoutControlItem4.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(229, 185);
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.ucCUVParam;
+ this.layoutControlItem5.CustomizationFormText = "layoutControlItem5";
+ this.layoutControlItem5.Location = new System.Drawing.Point(229, 0);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(229, 185);
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.ucSOVParam;
+ this.layoutControlItem6.CustomizationFormText = "layoutControlItem6";
+ this.layoutControlItem6.Location = new System.Drawing.Point(458, 0);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(227, 185);
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.ucSUVParam;
+ this.layoutControlItem7.CustomizationFormText = "layoutControlItem7";
+ this.layoutControlItem7.Location = new System.Drawing.Point(685, 0);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(230, 185);
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // layoutControlItem16
+ //
+ this.layoutControlItem16.Control = this.ucSocParam;
+ this.layoutControlItem16.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem16.Name = "layoutControlItem16";
+ this.layoutControlItem16.Size = new System.Drawing.Size(224, 185);
+ this.layoutControlItem16.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem16.TextVisible = false;
+ //
+ // fmxParamConfig
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(925, 777);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxParamConfig.IconOptions.Icon")));
+ this.Name = "fmxParamConfig";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Parameter Config";
+ this.Load += new System.EventHandler(this.fmxParamConfig_Load);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.gbDefaultParam)).EndInit();
+ this.gbDefaultParam.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl7)).EndInit();
+ this.layoutControl7.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbCurrentParam)).EndInit();
+ this.gbCurrentParam.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl5)).EndInit();
+ this.layoutControl5.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbDchTempParam)).EndInit();
+ this.gbDchTempParam.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl4)).EndInit();
+ this.layoutControl4.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbChaTempParam)).EndInit();
+ this.gbChaTempParam.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit();
+ this.layoutControl3.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbVoltageParamSet)).EndInit();
+ this.gbVoltageParamSet.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit();
+ this.layoutControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraEditors.SimpleButton btnClose;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private System.Windows.Forms.Timer tmrDisplay;
+ private DevExpress.XtraEditors.GroupControl gbVoltageParamSet;
+ private DevExpress.XtraLayout.LayoutControl layoutControl2;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private Controls.ucParamSet ucCOVParam;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private Controls.ucParamSet ucCUVParam;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private Controls.ucParamSet ucSUVParam;
+ private Controls.ucParamSet ucSOVParam;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private DevExpress.XtraEditors.GroupControl gbChaTempParam;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ private DevExpress.XtraLayout.LayoutControl layoutControl3;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3;
+ private Controls.ucParamSet ucCLTParam;
+ private Controls.ucParamSet ucCHTParam;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
+ private DevExpress.XtraEditors.GroupControl gbDchTempParam;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11;
+ private DevExpress.XtraLayout.LayoutControl layoutControl4;
+ private Controls.ucParamSet ucDLTParam;
+ private Controls.ucParamSet ucDHTParam;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup4;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13;
+ private DevExpress.XtraEditors.GroupControl gbCurrentParam;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.LayoutControl layoutControl5;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup5;
+ private Controls.ucParamSet ucDOCParam;
+ private Controls.ucParamSet ucCOCParam;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem14;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem15;
+ private DevExpress.XtraEditors.GroupControl gbDefaultParam;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem19;
+ private DevExpress.XtraLayout.LayoutControl layoutControl7;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup7;
+ private DevExpress.XtraEditors.SimpleButton btnDefaultSet;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem22;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem3;
+ private Controls.ucParamSet ucSocParam;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup6;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem16;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem4;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxParamConfig.cs b/LFP_Manager/Forms/fmxParamConfig.cs
new file mode 100644
index 0000000..18b84ef
--- /dev/null
+++ b/LFP_Manager/Forms/fmxParamConfig.cs
@@ -0,0 +1,396 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Controls;
+
+namespace LFP_Manager.Forms
+{
+ public partial class fmxParamConfig : DevExpress.XtraEditors.XtraForm
+ {
+ #region DELEGATE
+ public delegate void ParamUpdateEvent(object sendor);
+ public delegate void ParamCmdEvent(int sId, int mode, int index, int flag,
+ ref CsDeviceData.DeviceModuleData.DeviceParamData aParam,
+ ref CsDeviceData.DeviceModuleData.DeviceCalibration aCalib);
+ #endregion
+
+ #region VARIABLES
+
+ private int SystemId = 0;
+ private CommConfig Config = null;
+ private CsDeviceData.DeviceModuleData.DeviceParamData Param;
+ private CsDeviceData.DeviceModuleData.DeviceCalibration Calib;
+
+ private ucParamSet[] ParamSet = null;
+
+ private int PasswordResult = 0;
+
+ public event ParamUpdateEvent OnUpdate = null;
+ public event ParamCmdEvent OnCommand = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public fmxParamConfig(int sId, CommConfig aConfig, CsDeviceData.DeviceModuleData.DeviceParamData aParam)
+ {
+ InitializeComponent();
+
+ Config = aConfig;
+ SystemId = sId;
+ Param = aParam;
+
+ InitComponent();
+
+ gbVoltageParamSet.Text = "Parameter Config";
+
+ tmrDisplay.Enabled = true;
+ }
+
+ public void InitComponent()
+ {
+ ParamSet = new ucParamSet[11];
+
+
+ // Cell Voltage Parameter
+ ParamSet[0] = ucCOVParam;
+ ParamSet[0].SetParamName(0, "Cell Over Voltage");
+ ParamSet[0].SetParamName(1, "mV");
+ ParamSet[0].SetId(0);
+ ParamSet[0].OnCommand += OnCmdEvent;
+
+ ParamSet[1] = ucCUVParam;
+ ParamSet[1].SetParamName(0, "Cell Under Voltage");
+ ParamSet[1].SetParamName(1, "mV");
+ ParamSet[1].SetId(1);
+ ParamSet[1].OnCommand += OnCmdEvent;
+ //ucCUVParam.EnableItem(0, false);
+
+ // System Voltage Parameter
+ ParamSet[2] = ucSOVParam;
+ ParamSet[2].SetParamName(0, "System Over Voltage");
+ ParamSet[2].SetParamName(1, "V");
+ ParamSet[2].SetId(2);
+ ParamSet[2].OnCommand += OnCmdEvent;
+
+ ParamSet[3] = ucSUVParam;
+ ParamSet[3].SetParamName(0, "System Under Voltage");
+ ParamSet[3].SetParamName(1, "V");
+ ParamSet[3].SetId(3);
+ ParamSet[3].OnCommand += OnCmdEvent;
+ //ucSUVParam.EnableItem(0, false);
+
+ // Charge Temperature Parameter
+ ParamSet[4] = ucCHTParam;
+ ParamSet[4].SetParamName(0, "Charge High Temp");
+ ParamSet[4].SetParamName(1, "C");
+ ParamSet[4].SetId(4);
+ ParamSet[4].OnCommand += OnCmdEvent;
+
+ ParamSet[5] = ucCLTParam;
+ ParamSet[5].SetParamName(0, "Charge Low Temp");
+ ParamSet[5].SetParamName(1, "C");
+ ParamSet[5].SetId(5);
+ ParamSet[5].OnCommand += OnCmdEvent;
+
+ // Discharge Temperature Parameter
+ ParamSet[6] = ucDHTParam;
+ ParamSet[6].SetParamName(0, "Discharge High Temp");
+ ParamSet[6].SetParamName(1, "C");
+ ParamSet[6].SetId(6);
+ ParamSet[6].OnCommand += OnCmdEvent;
+ //ucDHTParam.EnableItem(0, false);
+
+ ParamSet[7] = ucDLTParam;
+ ParamSet[7].SetParamName(0, "Discharge Low Temp");
+ ParamSet[7].SetParamName(1, "C");
+ ParamSet[7].SetId(7);
+ ParamSet[7].OnCommand += OnCmdEvent;
+ //ucDLTParam.EnableItem(0, false);
+
+ // Over Current Parameter
+ ParamSet[8] = ucCOCParam;
+ ParamSet[8].SetParamName(0, "Charge Over Current");
+ ParamSet[8].SetParamName(1, "A");
+ ParamSet[8].SetId(8);
+ ParamSet[8].OnCommand += OnCmdEvent;
+ //ucCOCParam.EnableItem(2, false);
+
+ ParamSet[9] = ucDOCParam;
+ ParamSet[9].SetParamName(0, "Discharge Over Current");
+ ParamSet[9].SetParamName(1, "A");
+ ParamSet[9].SetId(9);
+ ParamSet[9].OnCommand += OnCmdEvent;
+ //ucDOCParam.EnableItem(2, false);
+
+ // Low Capacity Parameter
+ ParamSet[10] = ucSocParam;
+ ParamSet[10].SetParamName(0, "SOC");
+ ParamSet[10].SetParamName(1, "%");
+ ParamSet[10].SetId(10);
+ ParamSet[10].OnCommand += OnCmdEvent;
+ ParamSet[10].VisibleItem(0, false);
+ ParamSet[10].VisibleItem(2, false);
+ }
+
+ #endregion
+
+ #region COMMAND EVENT
+
+ private void OnCmdEvent(int mode, int flag, ParamData aParam)
+ {
+ int cmd = 0;
+ CsDeviceData.DeviceModuleData.DeviceParamData wParam = Param.DeepCopy();
+
+ switch (mode)
+ {
+ case 0: // Cell Over Voltage
+ cmd = csConstData.UART_PARAM_LIST.CELL_OVER_VOLTAGE;
+ wParam.CellOverVoltageTrip = aParam.Fault;
+ wParam.CellOverVoltageWarning = aParam.Warning;
+ wParam.CellOverVoltageRelease = aParam.Release;
+ break;
+ case 1: // Cell Under Voltage
+ cmd = csConstData.UART_PARAM_LIST.CELL_UNDER_VOLTAGE;
+ wParam.CellUnderVoltageTrip = aParam.Fault;
+ wParam.CellUnderVoltageWarning = aParam.Warning;
+ wParam.CellUnderVoltageRelease = aParam.Release;
+ break;
+ case 2: // System Over Voltage
+ cmd = csConstData.UART_PARAM_LIST.PACK_OVER_VOLTAGE;
+ wParam.SysOverVoltageTrip = aParam.Fault;
+ wParam.SysOverVoltageWarning = aParam.Warning;
+ wParam.SysOverVoltageRelease = aParam.Release;
+ break;
+ case 3: // System Under Voltage
+ cmd = csConstData.UART_PARAM_LIST.PACK_UNDER_VOLTAGE;
+ wParam.SysUnderVoltageTrip = aParam.Fault;
+ wParam.SysUnderVoltageWarning = aParam.Warning;
+ wParam.SysUnderVoltageRelease = aParam.Release;
+ break;
+ case 4: // Charge High Temperature
+ cmd = csConstData.UART_PARAM_LIST.CHG_HIGH_TEMPERATURE;
+ wParam.ChaHighTempTrip = aParam.Fault;
+ wParam.ChaHighTempWarning = aParam.Warning;
+ wParam.ChaHighTempRelease = aParam.Release;
+ break;
+ case 5: // Charge Low Temperature
+ cmd = csConstData.UART_PARAM_LIST.CHG_LOW_TEMPERATURE;
+ wParam.ChaLowTempTrip = aParam.Fault;
+ wParam.ChaLowTempWarning = aParam.Warning;
+ wParam.ChaLowTempRelease = aParam.Release;
+ break;
+ case 6: // Discharge High Temperature
+ cmd = csConstData.UART_PARAM_LIST.DCH_HIGH_TEMPERATURE;
+ wParam.DchHighTempTrip = aParam.Fault;
+ wParam.DchHighTempWarning = aParam.Warning;
+ wParam.DchHighTempRelease = aParam.Release;
+ break;
+ case 7: // Discharge Low Temperature
+ cmd = csConstData.UART_PARAM_LIST.DCH_LOW_TEMPERATURE;
+ wParam.DchLowTempTrip = aParam.Fault;
+ wParam.DchLowTempWarning = aParam.Warning;
+ wParam.DchLowTempRelease = aParam.Release;
+ break;
+ case 8: // Charge Over Current
+ cmd = csConstData.UART_PARAM_LIST.CHG_OVER_CURRENT;
+ wParam.ChaOverCurrentTrip2 = aParam.Fault;
+ wParam.ChaOverCurrentTrip1 = aParam.Warning;
+ wParam.ChaOverCurrentReleaseTime = aParam.Release;
+ break;
+ case 9: // Discharge Over Current
+ cmd = csConstData.UART_PARAM_LIST.DCH_OVER_CURRENT;
+ wParam.DchOverCurrentTrip2 = aParam.Fault;
+ wParam.DchOverCurrentTrip1 = aParam.Warning;
+ wParam.DchOverCurrentReleaseTime = aParam.Release;
+ break;
+ case 10:
+ cmd = csConstData.UART_PARAM_LIST.LOW_CAPACITY;
+ wParam.LowSocTrip = aParam.Fault;
+ wParam.LowSocWarning = aParam.Warning;
+ wParam.LowSocRelease = aParam.Release;
+ break;
+ case 16: // Default Parameter
+ cmd = 0;
+ wParam.DefalutParamOption = aParam.Fault;
+ wParam.DefalutParamAll = aParam.Release;
+ break;
+ case 0x2D:
+ wParam.ReadParamAll = 0x002D;
+ cmd = 0x2D;
+ break;
+ case 99:
+ cmd = 200; // All parameter read
+ break;
+ }
+ OnCommand?.Invoke(SystemId, cmd, 6, flag, ref wParam, ref Calib);
+ }
+
+ #endregion
+
+ #region UPDATE DATA
+ public void UpdateData(CsDeviceData.DeviceModuleData.DeviceParamData aParam, CsDeviceData.DeviceModuleData.DeviceCalibration aCalib)
+ {
+ Param = aParam;
+ Calib = aCalib;
+ }
+ #endregion
+
+ #region TIMER EVENT
+ private void tmrDisplay_Tick(object sender, EventArgs e)
+ {
+ DisplayValue();
+
+ OnUpdate?.Invoke(this);
+ }
+ #endregion
+
+ private void DisplayValue()
+ {
+ ParamData pData = new ParamData();
+
+ // Cell Voltage Parameter
+ pData.Fault = Param.CellOverVoltageTrip;
+ pData.Warning = Param.CellOverVoltageWarning;
+ pData.Release = Param.CellOverVoltageRelease;
+ ucCOVParam.UpdateData(pData);
+
+ pData.Fault = Param.CellUnderVoltageTrip;
+ pData.Warning = Param.CellUnderVoltageWarning;
+ pData.Release = Param.CellUnderVoltageRelease;
+ ucCUVParam.UpdateData(pData);
+
+ // System Voltage Parameter
+ pData.Fault = Param.SysOverVoltageTrip;
+ pData.Warning = Param.SysOverVoltageWarning;
+ pData.Release = Param.SysOverVoltageRelease;
+ ucSOVParam.UpdateData(pData);
+
+ pData.Fault = Param.SysUnderVoltageTrip;
+ pData.Warning = Param.SysUnderVoltageWarning;
+ pData.Release = Param.SysUnderVoltageRelease;
+ ucSUVParam.UpdateData(pData);
+
+ // Charge Temp Parameter
+ pData.Fault = Param.ChaHighTempTrip;
+ pData.Warning = Param.ChaHighTempWarning;
+ pData.Release = Param.ChaHighTempRelease;
+ ucCHTParam.UpdateData(pData);
+
+ pData.Fault = Param.ChaLowTempTrip;
+ pData.Warning = Param.ChaLowTempWarning;
+ pData.Release = Param.ChaLowTempRelease;
+ ucCLTParam.UpdateData(pData);
+
+ // Discharge Temp Parameter
+ pData.Fault = Param.DchHighTempTrip;
+ pData.Warning = Param.DchHighTempWarning;
+ pData.Release = Param.DchHighTempRelease;
+ ucDHTParam.UpdateData(pData);
+
+ pData.Fault = Param.DchLowTempTrip;
+ pData.Warning = Param.DchLowTempWarning;
+ pData.Release = Param.DchLowTempRelease;
+ ucDLTParam.UpdateData(pData);
+
+ // Charge Over Current
+ pData.Fault = Param.ChaOverCurrentTrip2;
+ pData.Warning = Param.ChaOverCurrentTrip1;
+ pData.Release = Param.ChaOverCurrentReleaseTime;
+ ucCOCParam.UpdateData(pData);
+
+ // Discharge Over Current
+ pData.Fault = Param.DchOverCurrentTrip2;
+ pData.Warning = Param.DchOverCurrentTrip1;
+ pData.Release = Param.DchOverCurrentReleaseTime;
+ ucDOCParam.UpdateData(pData);
+
+ // SOC Parameter
+ pData.Fault = Param.LowSocTrip;
+ pData.Warning = Param.LowSocWarning;
+ pData.Release = Param.LowSocRelease;
+ ucSocParam.UpdateData(pData);
+ }
+
+ #region BUTTON EVENT
+ private void btnCancel_Click(object sender, EventArgs e)
+ {
+ this.Close();
+ }
+
+ private void btnGetAll_Click(object sender, EventArgs e)
+ {
+ ParamData aa = new ParamData();
+ OnCmdEvent(0x2D, 0, aa);
+ }
+
+ private void btnDefaultSet_Click(object sender, EventArgs e)
+ {
+ ParamData aa = new ParamData();
+
+ OnCmdEvent(16, 1, aa);
+
+ //DefaultTempAlarm();
+ }
+ #endregion
+
+ #region FORM EVENT
+ private void fmxParamConfig_Load(object sender, EventArgs e)
+ {
+ ParamConfig_ReLoad();
+ }
+
+ private void ParamConfig_ReLoad()
+ {
+ switch (Config.ControlLevel)
+ {
+ case 0: // User Level
+ for (int i = 0; i < ParamSet.Length; i++)
+ {
+ ParamSet[i].EnableDisableSetBtn(false);
+ }
+ btnDefaultSet.Enabled = false;
+ break;
+ case 1: // Technician Level
+ for (int i = 0; i < ParamSet.Length; i++)
+ {
+ ParamSet[i].EnableDisableSetBtn(false);
+ }
+ btnDefaultSet.Enabled = false;
+ break;
+ case 2: // Engineer Level
+ for (int i = 0; i < ParamSet.Length; i++)
+ {
+ ParamSet[i].EnableDisableSetBtn(true);
+ }
+ btnDefaultSet.Enabled = true;
+ break;
+ case 3: // Master Level
+ for (int i = 0; i < ParamSet.Length; i++)
+ {
+ ParamSet[i].EnableDisableSetBtn(true);
+ }
+ btnDefaultSet.Enabled = true;
+ break;
+ default: // User Level
+ for (int i = 0; i < ParamSet.Length; i++)
+ {
+ ParamSet[i].EnableDisableSetBtn(false);
+ }
+ btnDefaultSet.Enabled = false;
+ break;
+ }
+ }
+ #endregion
+
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxParamConfig.resx b/LFP_Manager/Forms/fmxParamConfig.resx
new file mode 100644
index 0000000..d0a61cc
--- /dev/null
+++ b/LFP_Manager/Forms/fmxParamConfig.resx
@@ -0,0 +1,4574 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+
+ AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA
+ GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/
+ ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7/////////////////////
+ ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff/////////
+ ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+
+ /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7/////
+ ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc
+ x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7/////////////////////////////
+ ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt
+ e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP
+ SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7/////////
+ ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z
+ WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS
+ Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8
+ +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+
+ /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+
+ /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO
+ SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz
+ 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o
+ 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9
+ /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE
+ oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG
+ PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7/////
+ ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH
+ PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t
+ 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/
+ ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/
+ ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7/////////////////////////////
+ ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+
+ /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ
+ TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7/////////////////
+ ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ
+ TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+
+ /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7/////
+ ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP
+ SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7/////////////////////////////////////////
+ ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/
+ ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7/////////////////////////////
+ ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/
+ ///+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////+/v7////////+/v3////////////////////////+/v3////////+/v7/////////////////
+ ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7/////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ /////////v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v7////////+/v7/////////////////////////////////////
+ ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7/////////////////////
+ ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7
+ +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9
+ /Pz+/v7/////////////////////////////////////////////////////////////////////////
+ ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM
+ RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7/////////////////////////////////////
+ ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL
+ QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+
+ /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP
+ SgCOSQCPTAKFOwDVvaT////9/Pv+/v7/////////////////////////////////////////////////
+ ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8
+ +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7/////////
+ /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO
+ SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF
+ OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+
+ ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/
+ //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7/////////////////////////
+ ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/
+ mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79
+ /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN
+ RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ
+ TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7/////
+ ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7/////
+ ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+
+ /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ
+ TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP
+ SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH
+ PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/
+ ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5
+ 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+
+ /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ
+ QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE
+ oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/
+ ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7/////////////////////////
+ ///////////////////////////////////////////////////////+/v7+////////////////////
+ ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+
+ /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9
+ /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP
+ SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL
+ RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7/////////////////////////////////
+ ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/
+ ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7/////////
+ ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP
+ SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI
+ PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/
+ ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x
+ glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7/////////////////////////////
+ ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM
+ RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+
+ /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/
+ ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP
+ SgCOSgGLRQGTURDz7ef+/v39/f3+/v7/////////////////////////////////////////////////
+ ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+
+ /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7/////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN
+ RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9
+ /fz9/f3+/v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO
+ SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7/////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO
+ SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS
+ UA/y6+X+/v39/fz+/v7+/v7/////////////////////////////////////////////////////////
+ ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP
+ SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7/////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+
+ /v7/////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO
+ SQCOSQGJQQDi0cD////9/Pv+/v7/////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J
+ QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7/////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39
+ /fz+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz
+ hFazhFayhFazhVete1TWvqb////9/fz+/v7/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+
+ /f3+/f3/////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v7+////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////v7+
+ /f39////////////////////////////////////////////////////////////////////////////
+ ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39
+ /fz8/v79/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA
+ nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1////
+ x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV
+ i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC
+ jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC
+ hz8Ap3I//fz7/fz8/v79/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7
+ /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8
+ +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p
+ /v39/f38/v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+
+ ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb
+ 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+//7+/f39
+ /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7////
+ 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+
+ /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA
+ j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB
+ j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB
+ i0UAlVYZ8+3m/f79/f38/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+////////////////
+ /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39
+ /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+
+ sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+
+ /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+////////
+ /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+
+ /f39/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO
+ /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39
+ 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39
+ /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+////////////////////////////
+ /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+////
+ /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A
+ kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ jkoCikIC4tHA/////Pv7/v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC
+ hz4A1r6m/////Pz7/v7+/v7+/////v7+////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+
+ /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+////////////////////
+ /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM
+ /////Pv6/v7+/v7+/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA
+ j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+
+ /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7
+ /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq////
+ /Pv6/v7+/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A
+ j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA
+ kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA
+ j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6
+ /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+////////
+ /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+
+ /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA
+ xaJ//////Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU
+ /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA
+ j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+////////////
+ 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+
+ /////v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39
+ /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/
+ /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6
+ ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+
+ /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC
+ kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB
+ kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39////
+ /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA
+ hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA
+ iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A
+ j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU
+ z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+////////
+ /v7+/////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7//v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn
+ +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3
+ +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8
+ /fz8/v7+/////v7+/////v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v///v7+/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT
+ z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7
+ ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A
+ hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A
+ fS0AtIdb/f38/Pz8///+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D
+ kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL
+ jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA
+ jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3
+ iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA
+ jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA
+ jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK
+ 6t7S/v7+/fz8/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs////
+ /Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7
+ /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38
+ /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fz8
+ /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+////////////////////////////////////
+ /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+
+ /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA
+ jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A
+ pnA8/Pv6/fz7/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq
+ iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+
+ /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+////////////
+ /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+
+ //7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A
+ 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES
+ jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+////////////////
+ /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6
+ /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7
+ /v79/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v39
+ /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8
+ +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+
+ /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ
+ hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ
+ 8+3m/f39/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+
+ /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA
+ jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA
+ u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA
+ j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA
+ jkkCikQE49PC/v7//fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8
+ /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+
+ /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7////
+ t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA
+ jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU
+ hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD
+ /////fz8//7//v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA
+ oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC
+ hj0Az7SX/////fz7//7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+//7+
+ /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH
+ jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA
+ jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT////
+ /Pz8/v7//v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA
+ t4tf/////fz7/v7+/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs
+ mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6
+ /v7+/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v7+
+ /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx
+ +/n3/fz8/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+
+ rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA
+ jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW
+ k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV
+ kU8TmVoj8ejg/v39/fz7/v7//f39/v//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off
+ 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v////7+/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v39/v7+
+ ///+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/v//////
+ /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v79/////////v7+/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v79/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////9/Lt9/Pu
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2svnmMrzrGR/////fz7////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ
+ /v39/fz8/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h
+ /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0////
+ 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC
+ j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ jUgBlFIO7uTa/////f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB
+ jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+
+ /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38////////////////////
+ /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z
+ iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+
+ sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG////
+ /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ hz4Ar35J/v39/fz8/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+////////
+ /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38////////////////////////////////
+ /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+////////////////////////////////////////////
+ /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA
+ /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW
+ k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+
+ /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+////////////////////
+ /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iEAA176j/////fz7////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39////////////////////////////////////////////
+ ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38
+ /fz8/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEA1buf/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+////////////
+ /////////////////////////////////////////////////////////////////////fz7////yKaB
+ hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v///f38////sH9K
+ hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oBi0QAnmIj9vHs/v39/v39////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA
+ nWAf9vHs/v7+/v79////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo////
+ /fz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v///f38////
+ 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/v79+/n3omor
+ ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm
+ +PTw/v39/f39////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sBjEUAmVwb9e/p/v7+/f38////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A
+ vpVq/////fz7/v/+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8AyKaB/////fz7/v///v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39
+ //7/////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC
+ jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsCiD8Auo9h/////fz8/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE
+ iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB
+ 4tC+/////f38/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjUcBk1EN7+Xb/////f39/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj
+ n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f38////u5Jlhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkBjUgE4M66/////fz7/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR
+ 7+bd/v7+/f39////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv
+ +/n4/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0
+ rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6
+ ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC
+ hz4AtolZ/////fz8/v3+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA
+ j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ j0sBikIApGww+vj1/v39/f39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ
+ j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M
+ /////Pz7/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkCjkkG4c+7/////fz7/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+///+/v39
+ /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d////
+ /fz7/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/f38/f38
+ 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A
+ jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sBiD8AyKiE/////fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oBiUEApW4z+vj1/v39/v39////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ
+ /v7+/f38/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4
+ 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD
+ 49PB/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/Pz7////
+ 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6////
+ /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A
+ j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC
+ iUEAqHQ7+/j2/fz8/v39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jUgBkk8K7ODV/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL////
+ /f38/v7+///+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6////////
+ ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A
+ ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38
+ /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBiUEA1Lqd/////fv6////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38
+ sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////v7+/v39
+ /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq
+ 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38
+ /v39/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjUgBkU4J6NrM/////fz8////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA
+ jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEArnxG/v7+/f38/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO
+ 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i////
+ /Pz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA
+ hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr
+ vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g
+ 4M24/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY
+ llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+////////////////////////////
+ /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsCiUEArXpD/v7//f39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB
+ ikMA1bqf/////fz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39
+ /f38/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39
+ /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/////////v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI
+ iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8////
+ /fz8////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA
+ mVsZ8+zl/v38/fz8////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7
+ /v7+//7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz7/v7+
+ 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf
+ 9vHs/v79/fz8////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z
+ iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAi0YAl1gT8+3l/v7+/f39////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA
+ upFj/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC
+ hz4AwZty/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////f39
+ /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC
+ jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ
+ hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsChz4At4ta/////fz8/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjUgCkEwL6dzO/////fz7////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD
+ 38y3/////fz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v/+/f39/v79
+ +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////fz8
+ /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A
+ kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK
+ 5tbG/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBjUcB4M25/////f38/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos
+ +PTw/fz8/f39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v//////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA
+ kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB
+ iUAAq3dA/Pr4/fz7/f39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v///fz7
+ ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA
+ j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0oBikMAomgq+vf0/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////Pz7////4M24
+ i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiUEA0rea/////fz7/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7
+ /v38/v39/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////f38/v79
+ +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/f38
+ ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ kEwChz4AxaJ8/////fz7/v7+////////////////////////////////////////////////////////
+ ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA
+ 07mb/////Pz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU
+ /v7+/Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+////
+ //////////////////////////////////////////////////////////////////////////////7/
+ /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7/////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+////////////////////////////
+ /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jEQAm10b9O/p/v7+/f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+////////////////////////////////////////
+ /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7
+ /v7//v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jUgAklAK6dzO/////f38/v//////////////////////////////////////////////////////////
+ /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6
+ /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng
+ lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+
+ /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiD8Au5Jl/////fz8/v7+//7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+////////////////////
+ /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj
+ /v39/fz8/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+////////////////////////////
+ /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8
+ ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb////
+ /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A
+ upFj/////fz8/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+
+ /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7////////////////////////
+ /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf
+ llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA
+ kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkBjUcA49LA/////f38/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79
+ /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3
+ qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8////0baX
+ iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD
+ /////fz8/v//////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA
+ nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA
+ qHI4/Pv5/v39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+
+ iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ kEsChz8Az7KS/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7
+ /v39/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v39
+ /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////fz8////59jIj0oD
+ jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ
+ /////fz8////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB
+ llYW7+Xb/v7+/f38/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0wChz8AuIxc/v7+/fz7/v39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+
+ /v39/v//////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fv6
+ ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAjkkBjEYA4M24/////fz8/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa
+ /////f38////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v39/fz7
+ 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB
+ jUcE3sq2/////Pz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oBikMAomgq+fXy/v39/f39////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/fz7////
+ 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq
+ +vf1/f38/f39//7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39
+ tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS
+ yqqM38u2/////v79/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/v79////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v79/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxWait.Designer.cs b/LFP_Manager/Forms/fmxWait.Designer.cs
new file mode 100644
index 0000000..56ddeb2
--- /dev/null
+++ b/LFP_Manager/Forms/fmxWait.Designer.cs
@@ -0,0 +1,94 @@
+namespace LFP_Manager.Forms
+{
+ partial class fmxWait
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.progressPanel1 = new DevExpress.XtraWaitForm.ProgressPanel();
+ this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
+ this.tableLayoutPanel1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // progressPanel1
+ //
+ this.progressPanel1.Appearance.BackColor = System.Drawing.Color.Transparent;
+ this.progressPanel1.Appearance.Options.UseBackColor = true;
+ this.progressPanel1.AppearanceCaption.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F);
+ this.progressPanel1.AppearanceCaption.Options.UseFont = true;
+ this.progressPanel1.AppearanceDescription.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F);
+ this.progressPanel1.AppearanceDescription.Options.UseFont = true;
+ this.progressPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.progressPanel1.ImageHorzOffset = 20;
+ this.progressPanel1.Location = new System.Drawing.Point(0, 16);
+ this.progressPanel1.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
+ this.progressPanel1.Name = "progressPanel1";
+ this.progressPanel1.Size = new System.Drawing.Size(287, 35);
+ this.progressPanel1.TabIndex = 0;
+ this.progressPanel1.Text = "progressPanel1";
+ //
+ // tableLayoutPanel1
+ //
+ this.tableLayoutPanel1.AutoSize = true;
+ this.tableLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+ this.tableLayoutPanel1.BackColor = System.Drawing.Color.Transparent;
+ this.tableLayoutPanel1.ColumnCount = 1;
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel1.Controls.Add(this.progressPanel1, 0, 0);
+ this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
+ this.tableLayoutPanel1.Name = "tableLayoutPanel1";
+ this.tableLayoutPanel1.Padding = new System.Windows.Forms.Padding(0, 13, 0, 13);
+ this.tableLayoutPanel1.RowCount = 1;
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel1.Size = new System.Drawing.Size(287, 67);
+ this.tableLayoutPanel1.TabIndex = 1;
+ //
+ // fmxWait
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.AutoSize = true;
+ this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+ this.ClientSize = new System.Drawing.Size(287, 67);
+ this.Controls.Add(this.tableLayoutPanel1);
+ this.DoubleBuffered = true;
+ this.Name = "fmxWait";
+ this.ShowOnTopMode = DevExpress.XtraWaitForm.ShowFormOnTopMode.AboveAll;
+ this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
+ this.Text = "Form1";
+ this.tableLayoutPanel1.ResumeLayout(false);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraWaitForm.ProgressPanel progressPanel1;
+ private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
+ }
+}
diff --git a/LFP_Manager/Forms/fmxWait.cs b/LFP_Manager/Forms/fmxWait.cs
new file mode 100644
index 0000000..d7060f6
--- /dev/null
+++ b/LFP_Manager/Forms/fmxWait.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Windows.Forms;
+using DevExpress.XtraWaitForm;
+
+namespace LFP_Manager.Forms
+{
+ public partial class fmxWait : WaitForm
+ {
+ public fmxWait()
+ {
+ InitializeComponent();
+ this.progressPanel1.AutoHeight = true;
+ }
+
+ #region Overrides
+
+ public override void SetCaption(string caption)
+ {
+ base.SetCaption(caption);
+ this.progressPanel1.Caption = caption;
+ }
+ public override void SetDescription(string description)
+ {
+ base.SetDescription(description);
+ this.progressPanel1.Description = description;
+ }
+ public override void ProcessCommand(Enum cmd, object arg)
+ {
+ base.ProcessCommand(cmd, arg);
+ }
+
+ #endregion
+
+ public enum WaitFormCommand
+ {
+ }
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxWait.resx b/LFP_Manager/Forms/fmxWait.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Forms/fmxWait.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Function/CsCryptoHelper.cs b/LFP_Manager/Function/CsCryptoHelper.cs
new file mode 100644
index 0000000..65b5cbb
--- /dev/null
+++ b/LFP_Manager/Function/CsCryptoHelper.cs
@@ -0,0 +1,54 @@
+using System;
+using System.IO;
+using System.Security.Cryptography;
+using System.Text;
+
+namespace LFP_Manager.Function
+{
+ class CsCryptoHelper
+ {
+ // 고정 키 및 IV (보안상 실제 사용 시 안전하게 관리 필요)
+ private static readonly string key = "1234567890123456"; // 16글자 = 128bit
+ private static readonly string iv = "6543210987654321"; // 16글자 = 128bit
+
+ public static string Encrypt(string plainText)
+ {
+ using (Aes aesAlg = Aes.Create())
+ {
+ aesAlg.Key = Encoding.UTF8.GetBytes(key);
+ aesAlg.IV = Encoding.UTF8.GetBytes(iv);
+
+ ICryptoTransform encryptor = aesAlg.CreateEncryptor();
+
+ using (MemoryStream msEncrypt = new MemoryStream())
+ using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
+ using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
+ {
+ swEncrypt.Write(plainText);
+ swEncrypt.Close();
+ return Convert.ToBase64String(msEncrypt.ToArray());
+ }
+ }
+ }
+
+ public static string Decrypt(string cipherText)
+ {
+ using (Aes aesAlg = Aes.Create())
+ {
+ aesAlg.Key = Encoding.UTF8.GetBytes(key);
+ aesAlg.IV = Encoding.UTF8.GetBytes(iv);
+
+ ICryptoTransform decryptor = aesAlg.CreateDecryptor();
+
+ byte[] buffer = Convert.FromBase64String(cipherText);
+
+ using (MemoryStream msDecrypt = new MemoryStream(buffer))
+ using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
+ using (StreamReader srDecrypt = new StreamReader(csDecrypt))
+ {
+ return srDecrypt.ReadToEnd();
+ }
+ }
+ }
+ }
+}
diff --git a/LFP_Manager/Function/CsModbusFunction.cs b/LFP_Manager/Function/CsModbusFunction.cs
new file mode 100644
index 0000000..59a1e33
--- /dev/null
+++ b/LFP_Manager/Function/CsModbusFunction.cs
@@ -0,0 +1,62 @@
+using LFP_Manager.Utils;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace LFP_Manager.Function
+{
+ internal class CsModbusFunction
+ {
+ static public byte[] MakeWriteRegisterData(ushort devId, ushort writeAddr, short[] writeData)
+ {
+ if (writeData == null || writeData.Length == 0)
+ return Array.Empty();
+
+ // 부호 확장 없이 캐스팅 (2’s complement 그대로 0..65535 범위로 들어갑니다)
+ Span regs = writeData.Length <= 16
+ ? stackalloc ushort[writeData.Length]
+ : new ushort[writeData.Length]; // 길면 힙 사용
+
+ for (int k = 0; k < writeData.Length; k++)
+ regs[k] = unchecked((ushort)writeData[k]);
+
+ return MakeWriteRegisterData(devId, writeAddr, regs);
+ }
+ static private byte[] MakeWriteRegisterData(ushort devId, ushort writeAddr, ReadOnlySpan writeData)
+ {
+ if (writeData.Length <= 0)
+ return Array.Empty();
+
+ const byte Func = 0x10; // PRESET_MULTI_REG
+ int regCount = writeData.Length;
+ int payloadLen = 7 + regCount * 2; // CRC 제외 길이
+ byte[] frame = new byte[payloadLen + 2];
+
+ int i = 0;
+ frame[i++] = (byte)devId; // Device ID
+ frame[i++] = Func; // Function Code (0x10)
+ frame[i++] = (byte)(writeAddr >> 8); // Addr Hi
+ frame[i++] = (byte)writeAddr; // Addr Lo
+ frame[i++] = (byte)(regCount >> 8); // Count Hi
+ frame[i++] = (byte)regCount; // Count Lo
+ frame[i++] = (byte)(regCount * 2); // ByteCount
+
+ // 데이터: 각 레지스터를 Hi → Lo 바이트로
+ for (int j = 0; j < regCount; j++)
+ {
+ ushort v = writeData[j];
+ frame[i++] = (byte)(v >> 8);
+ frame[i++] = (byte)v;
+ }
+
+ // CRC (CRCL → CRCH) 부착
+ if (!CsCRC16.TryAppendCrcLowHigh(frame, payloadLen, 0))
+ return Array.Empty();
+
+ return frame;
+ }
+
+ }
+}
diff --git a/LFP_Manager/Function/CsSerialCommFunctionDelta.cs b/LFP_Manager/Function/CsSerialCommFunctionDelta.cs
new file mode 100644
index 0000000..0f2fbae
--- /dev/null
+++ b/LFP_Manager/Function/CsSerialCommFunctionDelta.cs
@@ -0,0 +1,1007 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Utils;
+using LFP_Manager.Controls;
+using System.Web.Services.Description;
+using DevExpress.XtraTreeList;
+using SnmpSharpNet;
+using DevExpress.XtraGrid.Views.BandedGrid.Handler;
+using static DevExpress.Xpo.Helpers.AssociatedCollectionCriteriaHelper;
+
+namespace LFP_Manager.Function
+{
+ class CsSerialCommFunctionDelta
+ {
+ public const byte READ_COIL_STATUS = 0x01;
+ public const byte READ_HOLDING_REG = 0x03;
+ public const byte READ_INPUT_REG = 0x04; //Byul 구문 추가 필요
+ public const byte FORCE_SINGLE_COIL = 0x05;
+ public const byte PRESET_SINGLE_REG = 0x06;
+ public const byte PRESET_MULTI_REG = 0x10;
+ public const byte WRITE_COIL_REG = 0x0F;
+ public const byte ERROR_REG = 0x90;
+
+ public const byte READ_WRITE_REG = 0x17;
+ public const byte SPECIAL_REG_02 = 0x19;
+ public const byte READ_DEV_ID = 0x2B;
+
+ public const byte FW_FLASH_ERASE_CMD = 0x43;
+ public const byte FW_FLASH_WRITE_CMD = 0x31;
+
+ public const byte NO_CMD = 0xFF;
+
+ public static byte[] GetCRC(byte[] pby, int nSize)
+ {
+ ushort uIndex, i;
+ ushort crc;
+ byte uchCRCHi = 0xff;
+ byte uchCRCLo = 0xff;
+ byte[] result = new byte[2];
+
+ for (i = 0; i < nSize; i++)
+ {
+ uIndex = (ushort)((int)uchCRCLo ^ (int)pby[i]);
+ uchCRCLo = (byte)(uchCRCHi ^ csConstData.CRC_Data.auchCRCHi[uIndex]);
+ uchCRCHi = csConstData.CRC_Data.auchCRCLo[uIndex];
+ }
+ crc = (ushort)((uchCRCHi << 8) | uchCRCLo);
+
+ result[0] = (byte)(crc >> 8);
+ result[1] = (byte)(crc >> 0);
+
+ return result;
+ }
+
+ static public byte[] MakeReadRegisterData(ushort DevID, ushort cmd, ushort ReadAddr, ushort Size)
+ {
+ byte[] result = new byte[8];
+ byte[] crc;
+
+ result[0] = (byte)DevID; // Device ID
+ result[1] = (byte)cmd; // Command
+ result[2] = (byte)(ReadAddr >> 8); // Register Address MSB
+ result[3] = (byte)(ReadAddr >> 0); // Register Address LSB
+ result[4] = (byte)(Size >> 8); // Count of Register MSB
+ result[5] = (byte)(Size >> 0); // Count of Register LSB
+
+ crc = GetCRC(result, 6);
+
+ result[6] = crc[1]; // CRCH
+ result[7] = crc[0]; // CRCL
+
+ return result;
+ }
+
+ static public byte[] MakeWriteCoilData(ushort DevID, ushort WriteAddr, short WriteData)
+ {
+ byte[] result = new byte[7 + (1 * 1) + 2];
+ byte[] crc;
+ ushort i = 0;
+
+ result[i++] = (byte)DevID; // Device ID
+ result[i++] = (byte)WRITE_COIL_REG; // Command
+ result[i++] = (byte)(WriteAddr >> 8); // Register Address MSB
+ result[i++] = (byte)(WriteAddr >> 0); // Register Address LSB
+ result[i++] = (byte)(1 >> 8); // Count of Register MSB
+ result[i++] = (byte)(1 >> 0); // Count of Register LSB
+ result[i++] = (byte)(1 * 1); // Byte Count - [2 * (Num of register)]
+
+ result[i++] = (byte)(WriteData >> 0);
+
+ crc = GetCRC(result, i);
+
+ result[i++] = crc[1]; // CRCH
+ result[i++] = crc[0]; // CRCL
+
+ return result;
+ }
+
+ static public byte[] MakeWriteRegisterData(ushort devId, ushort writeAddr, short[] writeData)
+ {
+ if (writeData == null || writeData.Length == 0)
+ return Array.Empty();
+
+ // 부호 확장 없이 캐스팅 (2’s complement 그대로 0..65535 범위로 들어갑니다)
+ Span regs = writeData.Length <= 16
+ ? stackalloc ushort[writeData.Length]
+ : new ushort[writeData.Length]; // 길면 힙 사용
+
+ for (int k = 0; k < writeData.Length; k++)
+ regs[k] = unchecked((ushort)writeData[k]);
+
+ return MakeWriteRegisterData(devId, writeAddr, regs);
+ }
+
+ static private byte[] MakeWriteRegisterData(ushort devId, ushort writeAddr, ReadOnlySpan writeData)
+ {
+ if (writeData.Length <= 0)
+ return Array.Empty();
+
+ const byte Func = 0x10; // PRESET_MULTI_REG
+ int regCount = writeData.Length;
+ int payloadLen = 7 + regCount * 2; // CRC 제외 길이
+ byte[] frame = new byte[payloadLen + 2];
+
+ int i = 0;
+ frame[i++] = (byte)devId; // Device ID
+ frame[i++] = Func; // Function Code (0x10)
+ frame[i++] = (byte)(writeAddr >> 8); // Addr Hi
+ frame[i++] = (byte)writeAddr; // Addr Lo
+ frame[i++] = (byte)(regCount >> 8); // Count Hi
+ frame[i++] = (byte)regCount; // Count Lo
+ frame[i++] = (byte)(regCount * 2); // ByteCount
+
+ // 데이터: 각 레지스터를 Hi → Lo 바이트로
+ for (int j = 0; j < regCount; j++)
+ {
+ ushort v = writeData[j];
+ frame[i++] = (byte)(v >> 8);
+ frame[i++] = (byte)v;
+ }
+
+ // CRC (CRCL → CRCH) 부착
+ if (!CsCRC16.TryAppendCrcLowHigh(frame, payloadLen, 0))
+ return Array.Empty();
+
+ return frame;
+ }
+
+ static public byte[] MakeWriteRegisterData(ushort DevID, ushort WriteAddr, short WriteData)
+ {
+ byte[] result = new byte[9 + (1 * 2)];
+ byte[] crc;
+ ushort i = 0;
+
+ result[i++] = (byte)DevID; // Device ID
+ result[i++] = (byte)PRESET_MULTI_REG; // Command
+ result[i++] = (byte)(WriteAddr >> 8); // Register Address MSB
+ result[i++] = (byte)(WriteAddr >> 0); // Register Address LSB
+ result[i++] = (byte)(1 >> 8); // Count of Register MSB
+ result[i++] = (byte)(1 >> 0); // Count of Register LSB
+ result[i++] = (byte)(1 * 2); // Byte Count - [2 * (Num of register)]
+
+ result[i++] = (byte)(WriteData >> 8);
+ result[i++] = (byte)(WriteData >> 0);
+
+ crc = GetCRC(result, i);
+
+ result[i++] = crc[1]; // CRCH
+ result[i++] = crc[0]; // CRCL
+
+ return result;
+ }
+
+ static public byte[] MakeReadDevIdRegReqData(ushort DevID, ushort cmd, ushort ReadAddr)
+ {
+ byte[] result = new byte[7];
+ byte[] crc;
+
+ result[0] = (byte)DevID; // Device ID
+ result[1] = (byte)cmd; // Command
+ result[2] = (byte)0x0E; // MEI Type
+ result[3] = (byte)0x02; // Read Dev Id code
+ result[4] = (byte)ReadAddr; // Object Id
+
+ crc = GetCRC(result, 5);
+
+ result[5] = crc[1]; // CRCH
+ result[6] = crc[0]; // CRCL
+
+ return result;
+ }
+
+ static short GetRegister(ushort reg_addr, ref DeviceParamData aParam)
+ {
+ short result = 0;
+
+ switch (reg_addr)
+ {
+ //case 19: result = (short)(0 >> 16); break; // 0021 : UTC TimeStamp MSB
+ //case 20: result = (short)(58 >> 0); break; // 0022 : UTC TimeStamp LSB
+ //case 21: result = (short)0x1000; break; // 0023 : Cell Balancing Flag
+ //case 22: result = (short)0x0000; break; // 0024 : Cell Balancing Voltage
+ //case 23: result = (short)15; break; // 0024 : Cell Balancing Time
+
+ case 0x4002: result = (short)aParam.CellUnderVoltageWarning; break; // 0061 : Low cell voltage warning data
+ //case 33: result = (short)param.sf1.voltage.CUV_Threshold; break; // 0062 : Low cell voltage protection data
+ //case 34: result = (short)param.sf1.voltage.CUV_Recovery; break; // 0063 : Low cell voltage recovery data
+ //case 35: result = (short)param.sf1.voltage.SUV_Warning; break; // 0064 : Low voltage warning data
+ //case 36: result = (short)param.sf1.voltage.SUV_Threshold; break; // 0065 : Low voltage protection data
+ //case 37: result = (short)param.sf1.voltage.SUV_Recovery; break; // 0066 : Low voltage recovery data
+ //case 38: result = (short)param.sf1.voltage.COV_Warning; break; // 0067 : Over cell voltage warning data
+ //case 39: result = (short)param.sf1.voltage.COV_Threshold; break; // 0068 : Over cell voltage protection data
+ //case 40: result = (short)param.sf1.voltage.COV_Recovery; break; // 0069 : Over cell voltage recovery data
+ //case 41: result = (short)param.sf1.voltage.SOV_Warning; break; // 0070 : Over voltage warning data
+ //case 42: result = (short)param.sf1.voltage.SOV_Threshold; break; // 0071 : Over voltage protection data
+ //case 43: result = (short)param.sf1.voltage.SOV_Recovery; break; // 0072 : Over voltage recovery data
+
+ //case 44: result = (short)param.sf1.temperature.OT_Chg_Warning; break; // 0044 : Charge over temperature warning data
+ //case 45: result = (short)param.sf1.temperature.OT_Chg_Threshold; break; // 0045 : Charge over temperature protection data
+ //case 46: result = (short)param.sf1.temperature.OT_Chg_Recovery; break; // 0046 : Charge over temperature recovery data
+ //case 47: result = (short)param.sf1.temperature.OT_Chg_Time; break; // 0047 : Charge over temperature time
+
+ //case 48: result = (short)param.sf1.temperature.OT_Dsg_Warning; break; // 0048 : Discharge over temperature warning data
+ //case 49: result = (short)param.sf1.temperature.OT_Dsg_Threshold; break; // 0049 : Discharge over temperature protection data
+ //case 50: result = (short)param.sf1.temperature.OT_Dsg_Recovery; break; // 0050 : Discharge over temperature recovery data
+ //case 51: result = (short)param.sf1.temperature.OT_Dsg_Time; break; // 0051 : Discharge over temperature time
+ }
+
+ return result;
+ }
+
+ static byte[] ModBusGetRegWordToBytes(ushort addr, ref DeviceParamData aParam)
+ {
+ short data;
+ byte[] result = new byte[2];
+
+ data = GetRegister(addr, ref aParam);
+
+ result[0] = (byte)(data >> 8);
+ result[1] = (byte)(data >> 0);
+
+ return result;
+ }
+
+ static public byte[] MakeWriteRegisterData(ushort DevID, ushort WriteAddr, ushort reg_len, ref DeviceParamData aParam)
+ {
+ int tlen = (reg_len * 2) + 7 + 2;
+ byte[] result = new byte[tlen];
+ byte[] tmp;
+ byte[] crc;
+
+ result[0] = (byte)DevID; // Device ID
+ result[1] = (byte)PRESET_MULTI_REG; // Command
+ result[2] = (byte)(WriteAddr >> 8); // Register Address MSB
+ result[3] = (byte)(WriteAddr >> 0); // Register Address LSB
+ result[4] = (byte)(reg_len >> 8); // Count of Register MSB
+ result[5] = (byte)(reg_len >> 0); // Count of Register LSB
+ result[6] = (byte)(reg_len * 2); ; // Current Value MSB
+
+ for (int i = 0; i < reg_len; i++)
+ {
+ tmp = ModBusGetRegWordToBytes((ushort)(WriteAddr + i), ref aParam);
+ result[7 + (i * 2) + 0] = tmp[0];
+ result[7 + (i * 2) + 1] = tmp[1];
+ }
+ crc = GetCRC(result, 8);
+
+ result[tlen - 2] = crc[0]; // CRCH
+ result[tlen - 1] = crc[1]; // CRCL
+
+ return result;
+ }
+
+ static public byte[] MakeReadWriteRegisterData(ushort DevID, ushort WriteAddr, short WriteData)
+ {
+ byte[] result = new byte[15];
+ byte[] crc;
+ ushort i = 0;
+
+ result[i++] = (byte)DevID; // Device ID
+ result[i++] = (byte)READ_WRITE_REG; // Command
+ result[i++] = (byte)(WriteAddr >> 8); // Read Register Address MSB
+ result[i++] = (byte)(WriteAddr >> 0); // Read Register Address LSB
+ result[i++] = (byte)(0 >> 8); // Read Count of Register MSB
+ result[i++] = (byte)(0 >> 0); // Read Count of Register LSB
+ result[i++] = (byte)(WriteAddr >> 8); // Write Register Address MSB
+ result[i++] = (byte)(WriteAddr >> 0); // Write Register Address LSB
+ result[i++] = (byte)(1 >> 8); // Write Count of Register MSB
+ result[i++] = (byte)(1 >> 0); // Write Count of Register LSB
+ result[i++] = (byte)(1 * 2); // Byte Count - [2 * (Num of register)]
+
+ result[i++] = (byte)(WriteData >> 8);
+ result[i++] = (byte)(WriteData >> 0);
+
+ crc = GetCRC(result, i);
+
+ result[i++] = crc[0]; // CRCH
+ result[i++] = crc[1]; // CRCL
+
+ return result;
+ }
+
+ public static byte[] MakeCheckSum(byte[] sData, int offset, int len, bool flag)
+ {
+ byte[] result = new byte[2];
+ int checksum = 0;
+
+ for (int i = 0; i < len; i++)
+ {
+ checksum += sData[i + offset];
+ }
+
+ checksum = ~checksum + 1;
+
+ result[0] = (byte)(checksum >> 8);
+ result[1] = (byte)checksum;
+
+ return result;
+ }
+
+ private static byte[] MakeTxPacket(byte[] sData, int len)
+ {
+ string str = "";
+ byte[] result;
+ char[] chrArray;
+ int checksum = 0;
+ string checksumStr = "";
+ char[] checksumChr;
+
+ str = "~";
+
+ for (int i = 0; i < len; i++)
+ {
+ str += sData[i].ToString("X2");
+ }
+
+ str += "\r";
+
+ chrArray = str.ToCharArray();
+
+ for (int i = 0; i < (chrArray.Length - 6); i++)
+ {
+ checksum += chrArray[i + 1];
+ }
+
+ checksum = ~checksum + 1;
+
+ checksumStr = String.Format("{0:X2}{1:X2}", (byte)(checksum >> 8), (byte)checksum);
+ checksumChr = checksumStr.ToCharArray();
+
+ for (int i = 0; i < 4; i++)
+ {
+ chrArray[chrArray.Length - 5 + i] = checksumChr[i];
+ }
+
+ result = new byte[chrArray.Length];
+
+ for (int i = 0; i < chrArray.Length; i++)
+ {
+ result[i] = (byte)chrArray[i];
+ }
+
+ return result;
+ }
+
+ public static byte[] LengthLchk(int sLen)
+ {
+ byte[] result = new byte[2];
+ int lchksum = 0;
+
+ lchksum = (~(((sLen >> 8) & 0xF) +
+ ((sLen >> 4) & 0xF) +
+ ((sLen >> 0) & 0xF)) + 1) % 16;
+ lchksum = ((lchksum << 12) | sLen);
+
+ result[0] = (byte)(lchksum >> 8);
+ result[1] = (byte)(lchksum >> 0);
+
+ return result;
+ }
+
+ public static byte[] MakeTxData(byte addr, byte cmd, int sLen)
+ {
+ int buffCh = 0;
+ byte[] sData;
+ byte[] lenId;
+ byte[] checksum;
+
+ sData = new byte[((sLen > 0) ? 11 : 10)];
+
+ sData[buffCh] = 0x7E; buffCh++; // SOI
+ sData[buffCh] = 0x25; buffCh++; // VER
+ sData[buffCh] = addr; buffCh++; // ADDR
+ sData[buffCh] = 0x46; buffCh++; // CID1
+ sData[buffCh] = cmd; buffCh++; // CID2 (CMD)
+
+ lenId = LengthLchk(sLen); // LENID
+ sData[buffCh] = lenId[0]; buffCh++; // LENID MSB
+ sData[buffCh] = lenId[1]; buffCh++; // LENID LSB
+
+ if (sLen > 0)
+ {
+ sData[buffCh] = (byte)(sLen / 2); buffCh++; // INFO
+ }
+
+ checksum = csSerialCommFunction.MakeCheckSum(sData, 1, sData.Length - 4, false);
+
+ sData[buffCh] = checksum[1]; buffCh++;
+ sData[buffCh] = checksum[0]; buffCh++;
+
+ sData[buffCh] = 0x0D; buffCh++; // EOI
+
+ return MakeTxPacket(sData, sData.Length);
+ }
+
+ public static int TbPacketCheck(byte[] rdata, int rlen)
+ {
+ int result = 0;
+ byte[] cdata;
+ byte[] checksum;
+ byte[] checksum1;
+
+ checksum = MakeCheckSum(rdata, 1, rlen - 6, false);
+
+ checksum1 = new byte[2];
+ checksum1[0] = csUtils.StrByte2toByte(rdata[rlen - 4], rdata[rlen - 5]);
+ checksum1[1] = csUtils.StrByte2toByte(rdata[rlen - 2], rdata[rlen - 3]);
+
+
+ if ((checksum[0] == checksum1[0]) && (checksum[1] == checksum1[1]))
+ {
+ cdata = csUtils.StrToByteArray(rdata, 0, rlen);
+
+ result = 1;
+ }
+
+ return result;
+ }
+
+ static public int ModbusPacketFromSlaveCheck(byte[] rdata, ushort rlen)
+ {
+ int result = 0;
+ byte[] cdata, crc;
+ ushort clen, bytecount;
+
+ if (rlen > 2)
+ {
+ cdata = rdata;
+
+ switch (cdata[1])
+ {
+ case READ_DEV_ID:
+ if (rlen < 10) break;
+ if (rdata[7] == 0) break;
+
+ int tmp = 0;
+ int cPos = 7;
+ int alen = 0;
+ for (int i = 0; i < cdata[7]; i++)
+ {
+ alen = cdata[cPos + 2];
+ cPos += alen + 2;
+ if (rlen < (cPos + 3))
+ {
+ tmp = 1;
+ break;
+ }
+ }
+ if (tmp == 1) break;
+
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[1] == cdata[rlen - 2]) && (crc[0] == cdata[rlen - 1])) result = 1;
+ else result = -1;
+ break;
+ case READ_COIL_STATUS:
+ case READ_HOLDING_REG:
+ case READ_INPUT_REG:
+ case READ_WRITE_REG:
+ bytecount = cdata[2];
+ clen = (ushort)(bytecount + 5); // header 3, tail 2
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[1] == cdata[rlen - 2]) && (crc[0] == cdata[rlen - 1])) result = 1;
+ else result = -1;
+ }
+ break;
+ case PRESET_MULTI_REG:
+ case FORCE_SINGLE_COIL:
+ case PRESET_SINGLE_REG:
+ clen = 8;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 1;
+ else result = -1;
+ }
+ break;
+ case ERROR_REG:
+ clen = 6;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 1;
+ else result = -1;
+ }
+ break;
+ case FW_FLASH_ERASE_CMD:
+ clen = 5;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 2;
+ else result = -1;
+ }
+ break;
+ case FW_FLASH_WRITE_CMD:
+ clen = 5;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 2;
+ else result = -1;
+ }
+ break;
+ default:
+ result = -1;
+ break;
+ }
+ }
+ return result;
+ }
+
+ public static short[] SerialRxProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref CsDeviceData.DeviceModuleData aModuleData)
+ {
+ short[] result = new short[2];
+
+ switch (rData[1])
+ {
+ case READ_INPUT_REG: // 0x04
+ ReadInputRegisterProcess(rData, rRegAddr, rLen, ref aModuleData);
+ break;
+ case READ_WRITE_REG: // 0x17
+ //ReadSP1RegisterProcess(rData, rRegAddr, rLen, ref rSystemData);
+ break;
+ case SPECIAL_REG_02: // 0x19
+ //ReadInputRegisterProcess(rData, rRegAddr, rLen, ref rSystemData);
+ break;
+ case READ_DEV_ID: // 0x2B
+ ReadDevIdRegisterProcess(rData, rRegAddr, rLen, ref aModuleData);
+ break;
+ case PRESET_MULTI_REG:
+ // read_holding_reg_process(reverse16(rsp->start_addr, true), reverse16(rsp->qty_reg, true));
+ //result[0] = 1;
+ //result[1] = 1;
+ break;
+ case ERROR_REG:
+ result[0] = 2;
+ result[1] = (short)((rData[0] << 8) | rData[1]);
+ break;
+ }
+ return result;
+ }
+
+ private static void ReadCoilRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref CsDeviceData.DeviceModuleData aModuleData)
+ {
+ int i, j;
+ short reg_count;
+ short reg_value;
+ i = 2;
+ reg_count = rData[i];
+
+ i++;
+ for (j = 0; j < reg_count; j++)
+ {
+ reg_value = (short)(rData[i + j]);
+ SetCoilRegister((short)(rRegAddr + j), reg_value, ref aModuleData);
+ i++;
+ }
+ }
+
+ private static void ReadInputRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref CsDeviceData.DeviceModuleData aModuleData)
+ {
+ int i, j;
+ short reg_count;
+ short reg_value;
+ i = 2;
+ reg_count = (short)(rData[i] / 2); i += 1;
+
+ for (j = 0; j < reg_count; j++)
+ {
+ reg_value = (short)(rData[i] << 8 | rData[i + 1]);
+ SetInputRegister((short)(rRegAddr + j), reg_value, ref aModuleData);
+ i += 2;
+ }
+ }
+ private static void ReadDevIdRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref CsDeviceData.DeviceModuleData aModuleData)
+ {
+ int cPos = 7;
+ int alen = 0;
+ int regCount = rData[7];
+ int oID = 0;
+
+ for (int i = 0; i < regCount; i++)
+ {
+ oID = rData[cPos + 1];
+ alen = rData[cPos + 2];
+ byte[] tmp = new byte[alen];
+ for (int j = 0; j < alen; j++) { tmp[j] = rData[cPos + 3 + j]; }
+
+ switch (oID)
+ {
+ case 0x00: aModuleData.Information.VendorName = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ case 0x01: aModuleData.Information.ProductCode = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ case 0x02: aModuleData.Information.MajorMinorRev = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ case 0x05: aModuleData.Information.ModelName = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ case 0x82: aModuleData.Information.HwSerialNumber = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ case 0x83: aModuleData.Information.HwProductRev = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ case 0x84: aModuleData.Information.ManufacturingDate = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ case 0x86: aModuleData.Information.SwProductRev = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ }
+
+ cPos += alen + 2;
+ if (rLen < (cPos + 3))
+ {
+ break;
+ }
+ }
+ }
+ private static void ReadSP2RegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData)
+ {
+ int i, j;
+ short reg_count;
+ short reg_value;
+ i = 2;
+ reg_count = (short)(rData[i] / 2); i += 1;
+
+ for (j = 0; j < reg_count; j++)
+ {
+ reg_value = (short)(rData[i] << 8 | rData[i + 1]);
+ SetSP2Register((short)(rRegAddr + j), reg_value, ref rSystemData);
+ i += 2;
+ }
+ }
+ private static void ReadSP1RegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData)
+ {
+ int i, j;
+ short reg_count;
+ short reg_value;
+ i = 2;
+ reg_count = (short)(rData[i] / 2); i += 1;
+
+ for (j = 0; j < reg_count; j++)
+ {
+ reg_value = (short)(rData[i] << 8 | rData[i + 1]);
+ SetSP1Register((short)(rRegAddr + j), reg_value, ref rSystemData);
+ i += 2;
+ }
+ }
+
+ private static readonly int CURRENT_OFFSET = 10000;
+ private static readonly int TEMP_OFFSET = 400;
+
+ private static short MakeWarningData_AMG(short reg_value)
+ {
+ byte[] reg_byte = new byte[2];
+ ushort result = 0;
+
+ reg_byte[1] = (byte)(reg_value >> 8);
+ reg_byte[0] = (byte)(reg_value >> 0);
+
+ if (((reg_byte[0] >> 0) & 0x01) == 0x01) result |= (ushort)(1 << 4); // Cell Over Voltage
+ if (((reg_byte[0] >> 1) & 0x01) == 0x01) result |= (ushort)(1 << 5); // Cell Under Voltage
+ if (((reg_byte[0] >> 2) & 0x01) == 0x01) result |= (ushort)(1 << 2); // Pack Over Voltage
+ if (((reg_byte[0] >> 3) & 0x01) == 0x01) result |= (ushort)(1 << 3); // Pack Under Voltage
+ if (((reg_byte[0] >> 4) & 0x01) == 0x01) result |= (ushort)(1 << 6); // Charge Over Current
+ if (((reg_byte[0] >> 5) & 0x01) == 0x01) result |= (ushort)(1 << 7); // Discharge Over Current
+ if (((reg_byte[0] >> 6) & 0x01) == 0x01) result |= (ushort)(1 << 14); // ENV Over Temperature
+ if (((reg_byte[0] >> 7) & 0x01) == 0x01) result |= (ushort)(1 << 15); // ENV Under Temperature
+
+ if (((reg_byte[1] >> 0) & 0x01) == 0x01) result |= (ushort)(1 << 0); // Chg Over Temperature
+ if (((reg_byte[1] >> 1) & 0x01) == 0x01) result |= (ushort)(1 << 1); // Chg Under Temperature
+ if (((reg_byte[1] >> 2) & 0x01) == 0x01) result |= (ushort)(1 << 0); // Dch Over Temperature
+ if (((reg_byte[1] >> 3) & 0x01) == 0x01) result |= (ushort)(1 << 1); // Dch Under Temperature
+ if (((reg_byte[1] >> 4) & 0x01) == 0x01) result |= (ushort)(1 << 11); // SOC Low Alarm
+ if (((reg_byte[1] >> 5) & 0x01) == 0x01) result |= (ushort)(1 << 9); // Diff Voltage Alarm
+ if (((reg_byte[1] >> 6) & 0x01) == 0x01) result |= (ushort)(1 << 13); // CB On/OFF (1: OFF, 0: ON)
+ if (((reg_byte[1] >> 7) & 0x01) == 0x01) result |= (ushort)(1 << 12); // reserved
+
+ return (short)result;
+ }
+
+ private static short MakeProtectData_AMG(short reg_value)
+ {
+ byte[] reg_byte = new byte[2];
+ ushort result = 0;
+
+ reg_byte[1] = (byte)(reg_value >> 8);
+ reg_byte[0] = (byte)(reg_value >> 0);
+
+ if (((reg_byte[0] >> 0) & 0x01) == 0x01) result |= (ushort)(1 << 4); // Cell Over Voltage
+ if (((reg_byte[0] >> 1) & 0x01) == 0x01) result |= (ushort)(1 << 2); // Pack Over Voltage
+ if (((reg_byte[0] >> 2) & 0x01) == 0x01) result |= (ushort)(1 << 5); // Cell Under Voltage
+ if (((reg_byte[0] >> 3) & 0x01) == 0x01) result |= (ushort)(1 << 3); // Pack Under Voltage
+ if (((reg_byte[0] >> 4) & 0x01) == 0x01) result |= (ushort)(1 << 6); // Cha Over Current 1
+ if (((reg_byte[0] >> 5) & 0x01) == 0x01) result |= (ushort)(1 << 6); // Cha Over Current 2
+ if (((reg_byte[0] >> 6) & 0x01) == 0x01) result |= (ushort)(1 << 7); // Dch Over Current 1
+ if (((reg_byte[0] >> 7) & 0x01) == 0x01) result |= (ushort)(1 << 7); // Dch Over Current 2
+
+ if (((reg_byte[1] >> 0) & 0x01) == 0x01) result |= (ushort)(1 << 8); // SC Protect / CB off
+ if (((reg_byte[1] >> 1) & 0x01) == 0x01) result |= (ushort)(1 << 0); // Chg Over Temperature
+ if (((reg_byte[1] >> 2) & 0x01) == 0x01) result |= (ushort)(1 << 1); // Chg Under Temperature
+ if (((reg_byte[1] >> 3) & 0x01) == 0x01) result |= (ushort)(1 << 0); // Dch Over Temperature
+ if (((reg_byte[1] >> 4) & 0x01) == 0x01) result |= (ushort)(1 << 1); // Dch Under Temperature
+
+ return (short)result;
+ }
+
+ private static void MakeAlarm(ref CsDeviceData.DeviceModuleData mData)
+ {
+ if (((mData.StatusData.faultstatus >> 14) & 0x0001) == 0x0001)
+ {
+ mData.StatusData.batteryStatus = 4; // Anti-theft Gyroscope
+ }
+ else if (((mData.StatusData.faultstatus >> 15) & 0x0001) == 0x0001)
+ {
+ mData.StatusData.batteryStatus = 5; // Anti-theft Comm.
+ }
+ else if (mData.StatusData.protect != 0x0000)
+ {
+ mData.StatusData.batteryStatus = 2;
+ }
+ else if (mData.StatusData.warning != 0x0000)
+ {
+ mData.StatusData.batteryStatus = 1;
+ }
+ else
+ {
+ mData.StatusData.batteryStatus = 0;
+ }
+ }
+
+ private static void SetInputRegister(short reg_addr, short reg_value, ref CsDeviceData.DeviceModuleData aModuleData)
+ {
+ switch (reg_addr)
+ {
+ case 0x0FFF:
+ aModuleData.ValueData.voltage = (short)(reg_value / 10);
+ aModuleData.active = true;
+ break; // 48.00V = 4800
+ case 0x1000: aModuleData.ValueData.current = (short)(reg_value - CURRENT_OFFSET); break; // 100.0A = 1000 -10000 = 0;
+ case 0x1001: aModuleData.ValueData.remainingCapacity = (short)(reg_value / 1); break; // 100.0Ah = 1000
+ case 0x1002: aModuleData.ValueData.MosTemperature = (short)(reg_value - TEMP_OFFSET); break; // 10.0C = 100
+ case 0x1003: aModuleData.ValueData.AmbTemperature = (short)(reg_value - TEMP_OFFSET); break; // 10.0C = 100
+
+ case 0x1004: aModuleData.StatusData.warning = (ushort)CsAlarmDefine.DevWarningToGui(reg_value); break; // Warning Status
+ case 0x1005: aModuleData.StatusData.protect = (ushort)CsAlarmDefine.DevProtectToGui(reg_value); break; // Protection Status
+ case 0x1006: // Fault Status
+ aModuleData.StatusData.faultstatus = (ushort)(reg_value / 1);
+ aModuleData.StatusData.status = (ushort)((reg_value >> 8) & 0x00FF);
+ MakeAlarm(ref aModuleData);
+ break; // Fault Status
+
+ case 0x1007: aModuleData.ValueData.SOC = (short)(reg_value / 10); break; // 100.00% = 10000
+ case 0x1008: aModuleData.ValueData.SOH = (short)(reg_value / 10); break; // 100.00% = 10000
+
+ case 0x1009: aModuleData.ValueData.fullChgCapacity_Ah = (ushort)(reg_value / 1); break; // 100.0Ah = 1000
+ case 0x100A: aModuleData.ValueData.cycleCount = (ushort)(reg_value / 1); break; // 100 cycles = 100
+ case 0x100B: aModuleData.ValueData.NumOfCells = (short)(reg_value / 1); break; // 15 cells = 15
+ case 0x100C:
+ case 0x100D:
+ case 0x100E:
+ case 0x100F:
+ case 0x1010:
+ case 0x1011:
+ case 0x1012:
+ case 0x1013:
+ case 0x1014:
+ case 0x1015:
+ case 0x1016:
+ case 0x1017:
+ case 0x1018:
+ case 0x1019:
+ case 0x101A:
+ case 0x101B: // 3.256V = 3256
+ int cNo = reg_addr - 0x100C;
+ if (cNo < 15)
+ { aModuleData.ValueData.CellVoltage[cNo] = (ushort)(reg_value / 1); }
+ MakeMaxAvgMinCellVoltage(ref aModuleData);
+ break; // 100.00% = 10000
+ case 0x101C: aModuleData.ValueData.NumOfTemps = (short)(reg_value / 1); break; // 5 temps = 5
+ case 0x101D:
+ case 0x101E:
+ case 0x101F:
+ case 0x1020: // 25.3C = 253 - 400 = -147 (Offset -400)
+ int tNo = reg_addr - 0x101D;
+ aModuleData.ValueData.CellTemperature[tNo] = (short)(reg_value - TEMP_OFFSET);
+ MakeMaxAvgMinTemperature(ref aModuleData);
+ break; // 100.00% = 10000
+ case 0x1021: aModuleData.MaxValue.MaxChgCurrent = (short)(reg_value); break; // Max. Charge Current
+ case 0x1022: aModuleData.MaxValue.MaxChgTemperature = (short)(reg_value - TEMP_OFFSET); break; // Max. Charge Temperature
+ case 0x1023: aModuleData.MaxValue.MinChgTemperature = (short)(reg_value - TEMP_OFFSET); break; // Min. Charge Temperature
+ case 0x1024: aModuleData.MaxValue.FloatChgVolt = (short)(reg_value / 10); break; // Float Charge Current
+ case 0x1025: aModuleData.MaxValue.BoostChgVolt = (short)(reg_value / 10); break; // Boost Charge Current
+
+ case 0x3000: aModuleData.CalibrationData.AntiTheftComm.TimeOut = (short)(reg_value / 1); break;
+ case 0x3002: aModuleData.CalibrationData.AntiTheftComm.FuncSwitch = (short)(reg_value / 1); break;
+
+ case 0x4000: aModuleData.CalibrationData.AntiTheftGyro.XAxis = (short)(reg_value / 1); break;
+ case 0x4001: aModuleData.CalibrationData.AntiTheftGyro.YAxis = (short)(reg_value / 1); break;
+ case 0x4002: aModuleData.CalibrationData.AntiTheftGyro.ZAxis = (short)(reg_value / 1); break;
+ case 0x4003: aModuleData.CalibrationData.AntiTheftGyro.GyroPolicySel = (short)(reg_value / 1); break;
+ case 0x4004: aModuleData.CalibrationData.AntiTheftGyro.GyroFuncSwitch = (short)(reg_value / 1); break;
+ case 0x4006: aModuleData.CalibrationData.AntiTheftGyro.GyroState = (short)(reg_value / 1); break;
+ default:
+ break;
+ }
+ }
+
+ private static void SetSP1Register(short reg_addr, short reg_value, ref DeviceSystemData rSystemData)
+ {
+ switch (reg_addr)
+ {
+ case 0x4000: rSystemData.GyroValue.X_axis = (short)(reg_value); break; //
+ case 0x4001: rSystemData.GyroValue.Y_axis = (short)(reg_value); break; //
+ case 0x4002: rSystemData.GyroValue.Z_axis = (short)(reg_value); break; //
+ case 0x4003: rSystemData.GyroValue.Gyro_policy_sel = (short)(reg_value); break; //
+ case 0x4004: rSystemData.GyroValue.Gyro_func_sw = (short)(reg_value); break; //
+ case 0x4006: rSystemData.GyroValue.Gyro_state = (short)(reg_value); break; //
+ default:
+ break;
+ }
+ }
+ private static void SetSP2Register(short reg_addr, short reg_value, ref DeviceSystemData rSystemData)
+ {
+ switch (reg_addr)
+ {
+ case 0x3000: rSystemData.GyroValue.X_axis = (short)(reg_value); break; //
+ case 0x3002: rSystemData.GyroValue.Y_axis = (short)(reg_value); break; //
+ default:
+ break;
+ }
+ }
+ private static void SetReadIdRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData)
+ {
+ switch (reg_addr)
+ {
+ case 0x4000: rSystemData.GyroValue.X_axis = (short)(reg_value); break; //
+ case 0x4001: rSystemData.GyroValue.Y_axis = (short)(reg_value); break; //
+ case 0x4002: rSystemData.GyroValue.Z_axis = (short)(reg_value); break; //
+ case 0x4003: rSystemData.GyroValue.Gyro_policy_sel = (short)(reg_value); break; //
+ case 0x4004: rSystemData.GyroValue.Gyro_func_sw = (short)(reg_value); break; //
+ case 0x4006: rSystemData.GyroValue.Gyro_state = (short)(reg_value); break; //
+ default:
+ break;
+ }
+ }
+
+ private static void SetCoilRegister(short reg_addr, short reg_value, ref CsDeviceData.DeviceModuleData mData)
+ {
+ switch (reg_addr)
+ {
+ case 0x3078:
+ mData.StatusData.relayStatus = (ushort)reg_value;
+ mData.CalibrationData.FetCalib.FetStatus = reg_value;
+ break;
+ case 0x502E:
+ mData.CalibrationData.Current.ChargeOption = reg_value;
+ break;
+ }
+ }
+
+ private static void MakeMaxAvgMinCellVoltage(ref CsDeviceData.DeviceModuleData mData)
+ {
+ int Max, Avg, Min, Sum;
+ int MaxNo, MinNo;
+
+ Max = Avg = Min = Sum = 0;
+ MaxNo = MinNo = 0;
+ for (int i = 0; i < mData.cellQty; i++)
+ {
+ if (i == 0)
+ {
+ Max = Min = mData.ValueData.CellVoltage[i];
+ }
+ Sum += mData.ValueData.CellVoltage[i];
+
+ if (Max < mData.ValueData.CellVoltage[i])
+ {
+ Max = mData.ValueData.CellVoltage[i];
+ MaxNo = i;
+ }
+ if (Min > mData.ValueData.CellVoltage[i])
+ {
+ Min = mData.ValueData.CellVoltage[i];
+ MinNo = i;
+ }
+ }
+ Avg = Sum / mData.cellQty;
+
+ mData.AvgData.avgCellVoltage = (short)Avg;
+ mData.AvgData.maxCellVoltage = (short)Max;
+ mData.AvgData.maxCellNum = (short)(MaxNo + 1);
+ mData.AvgData.minCellVoltage = (short)Min;
+ mData.AvgData.minCellNum = (short)(MinNo + 1);
+ mData.AvgData.diffCellVoltage = (short)(Max - Min);
+ }
+
+ private static void MakeMaxAvgMinTemperature(ref CsDeviceData.DeviceModuleData mData)
+ {
+ int Max, Avg, Min, Sum;
+ int MaxNo, MinNo;
+
+ Max = Avg = Min = Sum = 0;
+ MaxNo = MinNo = 0;
+
+ for (int i = 0; i < mData.tempQty; i++)
+ {
+ if (i == 0)
+ {
+ Max = Min = mData.ValueData.CellTemperature[i];
+ }
+ Sum += mData.ValueData.CellTemperature[i];
+
+ if (Max < mData.ValueData.CellTemperature[i])
+ {
+ Max = mData.ValueData.CellTemperature[i];
+ MaxNo = i;
+ }
+ if (Min > mData.ValueData.CellTemperature[i])
+ {
+ Min = mData.ValueData.CellTemperature[i];
+ MinNo = i;
+ }
+ }
+ Avg = Sum / mData.tempQty;
+
+ mData.AvgData.avgTemp = (short)Avg;
+ mData.AvgData.maxTemp = (short)Max;
+ mData.AvgData.maxTempNum = (short)(MaxNo + 1);
+ mData.AvgData.minTemp = (short)Min;
+ mData.AvgData.minTempNum = (short)(MinNo + 1);
+ mData.AvgData.diffTemp = (short)(Max - Min);
+ }
+
+ private static short MakeUartWarningData(short rdata)
+ {
+ short result = 0;
+ bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
+
+ if (bAlarm[0] == true) result |= (short)(1 << 2); // 0x0001:Pack OV
+ if (bAlarm[1] == true) result |= (short)(1 << 4); // 0x0002:Cell OV
+ if (bAlarm[2] == true) result |= (short)(1 << 3); // 0x0004:Pack UV
+ if (bAlarm[3] == true) result |= (short)(1 << 5); // 0x0008:Cell UV
+
+ if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC
+ if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC
+
+ if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Tempratuer
+ if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Discharging Over Tempratuer
+ if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0040: Charging Under Tempratuer
+ if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Tempratuer
+ if (bAlarm[12] == true) result |= (short)(1 << 11); // 0x0200:SOC Low
+
+ return result;
+ }
+
+ private static short MakeUartTripData(short rdata)
+ {
+ short result = 0;
+ bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
+
+ if (bAlarm[0] == true) result |= (short)(1 << 2); // 0x0001:Pack OV
+ if (bAlarm[1] == true) result |= (short)(1 << 4); // 0x0002:Cell OV
+ if (bAlarm[2] == true) result |= (short)(1 << 3); // 0x0004:Pack UV
+ if (bAlarm[3] == true) result |= (short)(1 << 5); // 0x0008:Cell UV
+
+ if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC
+ if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC
+
+ if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Temprature
+ if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Discharging Over Temprature
+ if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0040: Charging Under Temprature
+ if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Temprature
+ if (bAlarm[13] == true) result |= (short)(1 << 9); // 0x0200:Short Circuit Protection
+
+ return result;
+ }
+
+ private static short MakeUartErrorData(short rdata, short cdata)
+ {
+ short result = cdata;
+ bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
+
+ if (bAlarm[0] == true) result |= (short)(1 << 9); // 0x0001:Voltage error
+ if (bAlarm[1] == true) result |= (short)(1 << 9); // 0x0002:Temperature error
+ if (bAlarm[2] == true) result |= (short)(1 << 9); // 0x0004: 电流检测Error
+ if (bAlarm[3] == true) result |= (short)(1 << 9); // 0x0010:Cell unbalance
+
+ return result;
+ }
+ }
+}
diff --git a/LFP_Manager/Function/csExcelExport.cs b/LFP_Manager/Function/csExcelExport.cs
new file mode 100644
index 0000000..d1f4bab
--- /dev/null
+++ b/LFP_Manager/Function/csExcelExport.cs
@@ -0,0 +1,191 @@
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.IO;
+using System.Data.OleDb;
+using System.Text;
+using System.ComponentModel;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Function
+{
+ public static class csExcelExport
+ {
+ public static void ExportToExcel(this DataTable dataTable, String filePath, bool overwiteFile = true)
+ {
+ if (Directory.Exists(Path.GetDirectoryName(filePath)) == false)
+ Directory.CreateDirectory(Path.GetDirectoryName(filePath));
+ if (File.Exists(filePath) && overwiteFile)
+ File.Delete(filePath);
+
+ //var conn = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=Yes;IMEX=0';", filePath);
+ var conn = "";
+
+ if (filePath.IndexOf(".xlsx") > -1) // 확장자에 따라서 provider 주의
+ conn = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR=Yes;IMEX=3';", filePath);
+ else
+ conn = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=Yes;IMEX=3';", filePath);
+
+ using (OleDbConnection connection = new OleDbConnection(conn))
+ {
+ connection.Open();
+ using (OleDbCommand command = new OleDbCommand())
+ {
+ command.Connection = connection;
+ List columnNames = new List();
+ List columnTypes = new List();
+ foreach (DataColumn dataColumn in dataTable.Columns)
+ {
+ columnNames.Add(dataColumn.ColumnName);
+ string tName = "VARCHAR";
+ switch (dataColumn.DataType.Name)
+ {
+ case "Int16": tName = "INTEGER"; break;
+ case "Int32": tName = "INTEGER"; break;
+ case "Int64": tName = "INTEGER"; break;
+ case "Double": tName = "DOUBLE"; break;
+ case "String": tName = "VARCHAR"; break;
+ default: tName = dataColumn.DataType.Name; break;
+ }
+ columnTypes.Add(tName);
+ }
+ String tableName = !String.IsNullOrWhiteSpace(dataTable.TableName) ? dataTable.TableName : Guid.NewGuid().ToString();
+ //command.CommandText = @"CREATE TABLE [{tableName}] ({String.Join(",", columnNames.Select(c => $"[{c}] VARCHAR").ToArray())});";
+ //string join = String.Join(",", columnNames.Select(c => String.Format("[{0}] VARCHAR", c)).ToArray());
+ string join = "";
+ for (int i = 0; i < columnNames.Count; i++)
+ {
+ join += String.Format("[{0}] {1}", columnNames[i], columnTypes[i]);
+ if (i < (columnNames.Count - 1)) join += ",";
+ }
+ command.CommandText = String.Format("CREATE TABLE [{0}] ({1});",
+ tableName,
+ join
+ );
+ command.ExecuteNonQuery();
+
+ foreach (DataRow row in dataTable.Rows)
+ {
+ List rowValues = new List();
+ foreach (DataColumn column in dataTable.Columns)
+ {
+ rowValues.Add((row[column] != null && row[column] != DBNull.Value) ? row[column].ToString() : String.Empty);
+ }
+ //command.CommandText = $"INSERT INTO [{tableName}]({String.Join(",", columnNames.Select(c => $"[{c}]"))}) VALUES ({String.Join(",", rowValues.Select(r => $"'{r}'").ToArray())});";
+ string a = String.Join(",", columnNames.Select(c => String.Format("[{0}]", c)));
+ string b = String.Join(",", rowValues.Select(r => String.Format("'{0}'", (r == "") ? "0" : r)).ToArray());
+ command.CommandText = String.Format("INSERT INTO [{0}]({1}) VALUES ({2});", tableName, a, b);
+ command.ExecuteNonQuery();
+ }
+ }
+
+ connection.Close();
+ }
+ }
+
+ public static void ExportToExcelExt(this DataTable dataTable, String filePath, bool overwiteFile = true)
+ {
+ string result = String.Empty;
+
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+ WaitForm.ShowOnTopMode = DevExpress.XtraWaitForm.ShowFormOnTopMode.AboveParent;
+
+ WaitForm.Show();
+
+ try
+ {
+ if (Directory.Exists(Path.GetDirectoryName(filePath)) == false)
+ Directory.CreateDirectory(Path.GetDirectoryName(filePath));
+ if (File.Exists(filePath) && overwiteFile)
+ File.Delete(filePath);
+
+ //var conn = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=Yes;IMEX=0';", filePath);
+ var conn = "";
+
+ if (filePath.IndexOf(".xlsx") > -1) // 확장자에 따라서 provider 주의
+ conn = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR=Yes;IMEX=3';", filePath);
+ else
+ conn = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=Yes;IMEX=3';", filePath);
+
+ using (OleDbConnection connection = new OleDbConnection(conn))
+ {
+ connection.Open();
+ using (OleDbCommand command = new OleDbCommand())
+ {
+ command.Connection = connection;
+ List columnNames = new List();
+ List columnTypes = new List();
+ foreach (DataColumn dataColumn in dataTable.Columns)
+ {
+ columnNames.Add(dataColumn.ColumnName);
+ string tName = "VARCHAR";
+ switch (dataColumn.DataType.Name)
+ {
+ case "Boolean": tName = "VARCHAR"; break;
+ case "Int16": tName = "INTEGER"; break;
+ case "Int32": tName = "INTEGER"; break;
+ case "Int64": tName = "INTEGER"; break;
+ case "Double": tName = "DOUBLE"; break;
+ case "Decimal": tName = "DOUBLE"; break;
+ case "String": tName = "VARCHAR"; break;
+ default: tName = dataColumn.DataType.Name; break;
+ }
+ columnTypes.Add(tName);
+ }
+ String tableName = !String.IsNullOrWhiteSpace(dataTable.TableName) ? dataTable.TableName : Guid.NewGuid().ToString();
+ //command.CommandText = @"CREATE TABLE [{tableName}] ({String.Join(",", columnNames.Select(c => $"[{c}] VARCHAR").ToArray())});";
+ //string join = String.Join(",", columnNames.Select(c => String.Format("[{0}] VARCHAR", c)).ToArray());
+ string join = "";
+ for (int i = 0; i < columnNames.Count; i++)
+ {
+ join += String.Format("[{0}] {1}", columnNames[i], columnTypes[i]);
+ if (i < (columnNames.Count - 1)) join += ",";
+ }
+ command.CommandText = String.Format("CREATE TABLE [{0}] ({1});",
+ tableName,
+ join
+ );
+ command.ExecuteNonQuery();
+
+ int rNo = 0;
+
+ foreach (DataRow row in dataTable.Rows)
+ {
+ List rowValues = new List();
+ foreach (DataColumn column in dataTable.Columns)
+ {
+ rowValues.Add((row[column] != null && row[column] != DBNull.Value) ? row[column].ToString().Trim('\0') : String.Empty);
+ }
+ //command.CommandText = $"INSERT INTO [{tableName}]({String.Join(",", columnNames.Select(c => $"[{c}]"))}) VALUES ({String.Join(",", rowValues.Select(r => $"'{r}'").ToArray())});";
+ string a = String.Join(",", columnNames.Select(c => String.Format("[{0}]", c)));
+ string b = String.Join(",", rowValues.Select(r => String.Format("'{0}'", (r == "") ? "0" : r)).ToArray());
+
+ command.CommandText = String.Format("INSERT INTO [{0}]({1}) VALUES ({2});", tableName, a, b);
+ command.ExecuteNonQuery();
+
+ rNo++;
+
+ WaitForm.SetDescription(String.Format("{0}//{1}", rNo, dataTable.Rows.Count));
+ Application.DoEvents();
+ }
+ }
+
+ connection.Close();
+ }
+ }
+ catch (Exception ex)
+ {
+ result = ex.Message;
+ }
+ finally
+ {
+ WaitForm.Close();
+
+ if (result != String.Empty)
+ throw new Exception(result);
+ }
+ }
+ }
+}
diff --git a/LFP_Manager/Function/csExcelFunction.cs b/LFP_Manager/Function/csExcelFunction.cs
new file mode 100644
index 0000000..3f10aa2
--- /dev/null
+++ b/LFP_Manager/Function/csExcelFunction.cs
@@ -0,0 +1,145 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Data;
+using System.Windows.Forms;
+
+using System.Data.OleDb;
+
+namespace LFP_Manager.Function
+{
+ public class csExcelFunction
+ {
+ public static DataTable[] ExcelImport(string Ps_FileName, string[] sheetName)
+ {
+ DataTable[] result = null;
+
+ try
+ {
+ string ExcelConn = string.Empty;
+
+ if (Ps_FileName.IndexOf(".xlsx") > -1) // 확장자에 따라서 provider 주의
+ {
+ ExcelConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Ps_FileName
+ + ";Extended Properties='Excel 12.0;HDR=YES'";
+ }
+ else
+ {
+ ExcelConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Ps_FileName
+ + ";Extended Properties='Excel 8.0;HDR=YES'";
+ }
+
+ // 첫 번째 시트의 이름을 가져옮
+ using (OleDbConnection con = new OleDbConnection(ExcelConn))
+ {
+ using (OleDbCommand cmd = new OleDbCommand())
+ {
+ cmd.Connection = con;
+ con.Open();
+
+ DataTable dtExcelSchema = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
+
+ if (dtExcelSchema.Rows.Count > 0)
+ {
+ sheetName = new string[dtExcelSchema.Rows.Count];
+
+ for (int i = 0; i < dtExcelSchema.Rows.Count; i++)
+ sheetName[i] = dtExcelSchema.Rows[i]["TABLE_NAME"].ToString();
+ }
+ con.Close();
+ }
+ }
+ string msg = string.Empty;
+ for (int i = 0; i < sheetName.Length; i++)
+ msg += sheetName[i] + "\r\n";
+ //MessageBox.Show("sheetName = " + msg);
+
+ // 첫 번째 쉬트의 데이타를 읽어서 datagridview 에 보이게 함.
+ using (OleDbConnection con = new OleDbConnection(ExcelConn))
+ {
+ using (OleDbCommand cmd = new OleDbCommand())
+ {
+ using (OleDbDataAdapter oda = new OleDbDataAdapter())
+ {
+ result = new DataTable[sheetName.Length];
+
+ for (int i = 0; i < sheetName.Length; i++)
+ {
+ result[i] = new DataTable();
+ result[i].TableName = sheetName[i];
+ cmd.CommandText = "SELECT * From [" + sheetName[i] + "]";
+ cmd.Connection = con;
+ con.Open();
+ oda.SelectCommand = cmd;
+ try
+ {
+ oda.Fill(result[i]);
+ }
+ catch (Exception)
+ {
+ //MessageBox.Show(e1.Message);
+ }
+ con.Close();
+ }
+ }
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ MessageBox.Show(e.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ return result;
+ }
+
+ public static void ExcelExport(string Ps_FileName, string[] sheetName)
+ {
+ string ExcelConn = string.Empty;
+
+ if (Ps_FileName.IndexOf(".xlsx") > -1) // 확장자에 따라서 provider 주의
+ {
+ ExcelConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Ps_FileName
+ + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=3;READONLY=FALSE'";
+ }
+ else
+ {
+ ExcelConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Ps_FileName
+ + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=3;READONLY=FALSE'";
+ }
+
+ // 첫 번째 시트의 이름을 가져옮
+ using (OleDbConnection con = new OleDbConnection(ExcelConn))
+ {
+ using (OleDbCommand cmd = new OleDbCommand())
+ {
+ cmd.Connection = con;
+ con.Open();
+
+ DataTable dtExcelSchema = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
+
+ if (dtExcelSchema.Rows.Count > 0)
+ {
+ sheetName = new string[dtExcelSchema.Rows.Count];
+
+ for (int i = 0; i < dtExcelSchema.Rows.Count; i++)
+ sheetName[i] = dtExcelSchema.Rows[i]["TABLE_NAME"].ToString();
+ }
+ con.Close();
+ }
+ }
+ using (OleDbConnection connection =
+ new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @"C:\Users\[...]\Classeur.xls"
+ + ";Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1;READONLY=FALSE\""))
+ {
+ connection.Open();
+ OleDbCommand commande = new OleDbCommand(
+ "INSERT INTO [Feuil1$](F1,F2,F3) VALUES ('A3','B3','C3');", connection);
+ commande.ExecuteNonQuery();
+
+ connection.Close();
+ connection.Dispose();
+ }
+ }
+ }
+}
diff --git a/LFP_Manager/Function/csHistoryFunction.cs b/LFP_Manager/Function/csHistoryFunction.cs
new file mode 100644
index 0000000..1adc223
--- /dev/null
+++ b/LFP_Manager/Function/csHistoryFunction.cs
@@ -0,0 +1,120 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.IO;
+using System.Data;
+
+using System.Data.SQLite;
+using LFP_Manager.DataStructure;
+using LFP_Manager.Utils;
+
+namespace LFP_Manager.Function
+{
+ class csHistoryFunction
+ {
+ #region DB CREATE
+
+ public static void DbCreate(string mPath)
+ {
+ string dbFilename = mPath + DbConstData.Database.FileName;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilename)) == false)
+ Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilename));
+
+ if (File.Exists(dbFilename) == false)
+ // Create database
+ SQLiteConnection.CreateFile(dbFilename);
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilename;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Create table
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ command.CommandText = DbConstData.Database.CreateTable;
+ command.ExecuteNonQuery();
+ }
+ }
+ catch (Exception)
+ {
+ }
+ finally
+ {
+ connection.Close();
+ }
+ }
+ }
+
+ #endregion
+
+ #region DB INSERT DATA
+ private void IDInsert(DataTable aData, string mPath, string Quary)
+ {
+ string dbFilename = mPath + DbConstData.Database.FileName;
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilename;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //WaitForm.ShowWaitForm();
+
+ command.CommandText = "BEGIN;"; //명시적 트렌젝션 시작
+ command.ExecuteNonQuery();
+
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ //command.CommandText = "INSERT INTO " + csDbConstData.DataBase.TableName + "(id) " + " Values (@id);";
+ command.CommandText = Quary;
+ SQLiteParameter p = new SQLiteParameter("@id", DbType.String);
+
+ command.Parameters.Add(p);
+
+ for (int i = 0; i < aData.Rows.Count; i++)
+ {
+ p.Value = String.Format("{0}", aData.Rows[i][0].ToString()); // id
+
+ try
+ {
+ command.ExecuteNonQuery();
+ }
+ catch (Exception)
+ {
+ //MessageBox.Show(e1.ToString() + ":" + i.ToString());
+ }
+ finally
+ {
+ //System.Windows.Forms.Application.DoEvents();
+ //WaitForm.SetWaitFormDescription(String.Format("{0}//{1}", i, aData.Rows.Count));
+ }
+ }
+ command.CommandText = "COMMIT;"; //명시적 트렌젝션 시작
+ command.ExecuteNonQuery();
+
+ //WaitForm.CloseWaitForm();
+ }
+ }
+ catch (Exception)
+ {
+ //MessageBox.Show(e.ToString());
+ }
+ finally
+ {
+ connection.Close();
+ }
+ }
+ }
+
+ #endregion
+
+ }
+}
diff --git a/LFP_Manager/Function/csIniControlFunction.cs b/LFP_Manager/Function/csIniControlFunction.cs
new file mode 100644
index 0000000..60914bb
--- /dev/null
+++ b/LFP_Manager/Function/csIniControlFunction.cs
@@ -0,0 +1,207 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+using System.Runtime.InteropServices;
+using System.IO;
+
+using LFP_Manager.DataStructure;
+
+namespace LFP_Manager.Function
+{
+ class csIniControlFunction
+ {
+ #region [Function] INI File Read Function(Section Setting)
+ public static string[] GetIniValue(string Section, string path)
+ {
+ byte[] ba = new byte[5000];
+ uint Flag = GetPrivateProfileSection(Section, ba, 5000, path);
+ return Encoding.Default.GetString(ba).Split(new char[1] { '\0' }, StringSplitOptions.RemoveEmptyEntries);
+ }
+ #endregion
+
+ #region [Function] INI File Read Function(Section and Key Setting)
+ public static string GetIniValue(string Section, string key, string path)
+ {
+ StringBuilder sb = new StringBuilder(500);
+ int Flag = GetPrivateProfileString(Section, key, "", sb, 500, path);
+ return sb.ToString();
+ }
+ #endregion
+
+ #region [Function] INI File Read Function(Section, Key, Value, Address Setting)
+ public bool SetIniValue(string Section, string Key, string Value, string path)
+ {
+ return (WritePrivateProfileString(Section, Key, Value, path));
+ }
+ #endregion
+
+ #region [DLL Function] INI DLL Load
+ [DllImport("kernel32")]
+ public static extern int GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName);
+ [DllImport("kernel32")]
+ public static extern bool WritePrivateProfileString(string lpAppName, string lpKeyName, string lpString, string lpFileName);
+ [DllImport("kernel32")]
+ public static extern uint GetPrivateProfileInt(string lpAppName, string lpKeName, int nDefault, string lpFileName);
+ [DllImport("kernel32")]
+ public static extern uint GetPrivateProfileSection(string lpAppName, byte[] lpPairValues, uint nSize, string lpFileName);
+ [DllImport("kernel32")]
+ public static extern uint GetPrivateProfileSectionNames(byte[] lpSections, uint nSize, string lpFileName);
+ #endregion
+
+ public static DateTime Delay(int MS)
+ {
+ DateTime thisMoment = DateTime.Now;
+ TimeSpan duration = new TimeSpan(0, 0, 0, 0, MS);
+ DateTime afterMoment = thisMoment.Add(duration);
+
+ while (afterMoment >= thisMoment)
+ {
+ System.Windows.Forms.Application.DoEvents();
+
+ thisMoment = DateTime.Now;
+ }
+
+ return DateTime.Now;
+ }
+
+ public static void IniLoad(string AppPath, ref CommConfig rConfig)
+ {
+ string path;
+
+ path = System.IO.Path.GetDirectoryName(AppPath);
+
+ if (File.Exists(String.Format("{0}\\CommSet.ini", path)))
+ {
+ StringBuilder ret = new StringBuilder();
+ string InIPath = String.Format("{0}\\CommSet.ini", path);
+
+ // CommType = 0: RS-485, 1: SNMP
+ rConfig.CommType = (int)csIniControlFunction.GetPrivateProfileInt("COMM TYPE", "TYPE", 0, InIPath);
+
+ // SNMP Config
+ // IP
+ ret.Clear();
+ csIniControlFunction.GetPrivateProfileString("SNMP", "IP", "(NONE)", ret, 32, InIPath);
+ rConfig.SnmpIP = ret.ToString();
+ // Model
+ rConfig.SnmpModelIndex = (int)csIniControlFunction.GetPrivateProfileInt("SNMP", "MODEL", 2, InIPath);
+
+ // Serial Port Config
+ // PORT
+ ret.Clear();
+ csIniControlFunction.GetPrivateProfileString("UART", "PORT", "(NONE)", ret, 32, InIPath);
+ rConfig.UartPort = ret.ToString();
+ // MODEL
+ rConfig.UartModelIndex = (int)csIniControlFunction.GetPrivateProfileInt("UART", "MODEL", 0, InIPath);
+
+ // Module Qunatity = 1 - 16
+ rConfig.ModuleQty = (int)csIniControlFunction.GetPrivateProfileInt("UART", "MODULE_QTY", 1, InIPath);
+
+ // PROTOCOL
+ rConfig.UartProtocol = (int)csIniControlFunction.GetPrivateProfileInt("UART", "PROTOCOL", 0, InIPath);
+
+ // PROTOCOL
+ rConfig.RecvWaitTime = (int)csIniControlFunction.GetPrivateProfileInt("UART", "RECV_WAIT_TIME", 1500, InIPath);
+
+ // COMM FAIL TIME OUT
+ rConfig.CommFailTime = (int)csIniControlFunction.GetPrivateProfileInt("UART", "COMM_FAIL_TIME", 5000, InIPath);
+
+ // Etc. Config
+ rConfig.DbLogPeriod = (int)csIniControlFunction.GetPrivateProfileInt("DATABASE", "LOG_PERIOD", 1, InIPath);
+
+ // Gyro. Config
+ rConfig.GyroSensitive = (int)csIniControlFunction.GetPrivateProfileInt("GYRO", "SENSITIVITY", 120, InIPath);
+
+ try
+ {
+ // ENABLE PASSWORD
+ ret.Clear();
+ csIniControlFunction.GetPrivateProfileString("PW", "MASTER", CsCryptoHelper.Encrypt("8003"), ret, 32, InIPath);
+ rConfig.MasterPw = CsCryptoHelper.Decrypt(ret.ToString());
+ // DISABLE PASSWORD
+ ret.Clear();
+ csIniControlFunction.GetPrivateProfileString("PW", "ENGINEER", CsCryptoHelper.Encrypt("7003"), ret, 32, InIPath);
+ rConfig.EngineerPw = CsCryptoHelper.Decrypt(ret.ToString());
+ // LEVEL PASSWORD
+ ret.Clear();
+ csIniControlFunction.GetPrivateProfileString("PW", "TECHNICIAN", CsCryptoHelper.Encrypt("6003"), ret, 32, InIPath);
+ rConfig.TechnicianPw = CsCryptoHelper.Decrypt(ret.ToString());
+ }
+ catch (Exception)
+ {
+ rConfig.MasterPw = "8003";
+ rConfig.EngineerPw = "7003";
+ rConfig.TechnicianPw = "6003";
+ }
+ }
+ else
+ {
+ rConfig.CommType = 0;
+
+ rConfig.SnmpIP = "192.168.0.200";
+ rConfig.SnmpModelIndex = 0;
+
+ rConfig.UartPort = "";
+ rConfig.UartProtocol= 0;
+ rConfig.RecvWaitTime = 1500;
+
+ rConfig.CommFailTime = 5000;
+
+ rConfig.DbLogPeriod = 5;
+
+ rConfig.GyroSensitive = 120;
+
+ rConfig.MasterPw = "8003";
+ rConfig.EngineerPw = "7003";
+ rConfig.TechnicianPw = "6003";
+ }
+ }
+
+ public static void IniSave(string AppPath, CommConfig aConfig)
+ {
+ string path = Path.GetDirectoryName(AppPath);
+ string InIPath = String.Format("{0}\\CommSet.ini", path);
+
+ // write ini
+
+ // CommType = 0: SNMP, 1: RS-485
+ WritePrivateProfileString("COMM TYPE", "TYPE", aConfig.CommType.ToString(), InIPath);
+
+ // SNMP Config
+ // IP
+ WritePrivateProfileString("SNMP", "IP", aConfig.SnmpIP, InIPath);
+ // Model
+ WritePrivateProfileString("SNMP", "MODEL", aConfig.SnmpModelIndex.ToString(), InIPath);
+
+ // Serial Port Config
+ // PORT
+ WritePrivateProfileString("UART", "PORT", aConfig.UartPort, InIPath);
+ // MODEL
+ WritePrivateProfileString("UART", "MODEL", aConfig.UartModelIndex.ToString(), InIPath);
+ // MODULE QTY = 1 - 16
+ WritePrivateProfileString("UART", "MODULE_QTY", aConfig.ModuleQty.ToString(), InIPath);
+ // PROTOCOL
+ WritePrivateProfileString("UART", "PROTOCOL", aConfig.UartProtocol.ToString(), InIPath);
+ // RECV_WAIT_TIME
+ WritePrivateProfileString("UART", "RECV_WAIT_TIME", aConfig.RecvWaitTime.ToString(), InIPath);
+
+ // COMM_FAIL_TIME
+ WritePrivateProfileString("UART", "COMM_FAIL_TIME", aConfig.CommFailTime.ToString(), InIPath);
+
+ // Etc Config
+ WritePrivateProfileString("DATABASE", "LOG_PERIOD", aConfig.DbLogPeriod.ToString(), InIPath);
+
+ // Gyro Config
+ WritePrivateProfileString("GYRO", "SENSITIVITY", aConfig.GyroSensitive.ToString(), InIPath);
+
+ // MASTER PASSWORD
+ WritePrivateProfileString("PW", "MASTER", CsCryptoHelper.Encrypt(aConfig.MasterPw), InIPath);
+ // ENGINEER PASSWORD
+ WritePrivateProfileString("PW", "ENGINEER", CsCryptoHelper.Encrypt(aConfig.EngineerPw), InIPath);
+ // TECHNICIAN PASSWORD
+ WritePrivateProfileString("PW", "TECHNICIAN", CsCryptoHelper.Encrypt(aConfig.TechnicianPw), InIPath);
+ }
+ }
+}
diff --git a/LFP_Manager/Function/csMakeDataFunction.cs b/LFP_Manager/Function/csMakeDataFunction.cs
new file mode 100644
index 0000000..2e763c1
--- /dev/null
+++ b/LFP_Manager/Function/csMakeDataFunction.cs
@@ -0,0 +1,218 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Runtime.Serialization.Formatters.Binary;
+using System.IO;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Utils;
+
+namespace LFP_Manager.Function
+{
+ class csMakeDataFunction
+ {
+ //0x0001: Over voltage warning
+ //0x0002: Cell Over voltage warning
+ //0x0004: Low voltage warning
+ //0x0008: Low cell voltage warning
+ //0x0010: Charge over current warning
+ //0x0020: Discharge over current warning
+ //0x0040: ambient temp warning
+ //0x0080: MOSFET over temp warning
+ //0x0100: Charge over temperature warning
+ //0x0200: Discharge over temperature warning
+ //0x0400: Charge low temperature warning
+ //0x0800: Discharge low temperature warning
+ //0x1000: Low capacity warning
+ //0x2000: Low SOH warning
+
+ private static ushort MakeAlarmTripData(int id, short ndata, CsDeviceData.DeviceModuleData mData)
+ {
+ bool[] aData = csUtils.Int16ToBitArray(ndata);
+ int bFault = mData.StatusData.protect;
+ int bWarning = mData.StatusData.warning;
+ int i = 0;
+
+ if (id == 0)
+ {
+ // Warning
+ if (aData[i++]) bWarning |= (1 << 1); // Bit 0 : Cell Over voltage warning --> Bit 1
+ else bWarning &= ~(1 << 1);
+ if (aData[i++]) bWarning |= (1 << 3); // Bit 1 : Cell Under voltage warning --> Bit 3
+ else bWarning &= ~(1 << 3);
+ if (aData[i++]) bWarning |= (1 << 0); // Bit 2 : Pack Over voltage warning --> Bit 0
+ else bWarning &= ~(1 << 0);
+ if (aData[i++]) bWarning |= (1 << 2); // Bit 3 : Pack Under voltage warning --> Bit 2
+ else bWarning &= ~(1 << 2);
+ if (aData[i++]) bWarning |= (1 << 4); // Bit 4 : Charge over current warning --> Bit 4
+ else bWarning &= ~(1 << 4);
+ if (aData[i++]) bWarning |= (1 << 5); // Bit 5 : Discharge over current warning --> Bit 5
+ else bWarning &= ~(1 << 5);
+ if (aData[i++]) bWarning |= (1 << 6); // Bit 6 : Env over temperature warning --> Bit 6
+ else bWarning &= ~(1 << 6);
+ //if (aData[i++]) bWarning |= (1 << 7); // Bit 7 : Env under temperature warning --> Bit 7
+ //else bWarning &= ~(1 << 7);
+ i++; // 07 Reserved
+ if (aData[i++]) bWarning |= (1 << 8); // Bit 8 : Charge over temperature warning --> Bit 8
+ else bWarning &= ~(1 << 8);
+ if (aData[i++]) bWarning |= (1 << 10); // Bit 9 : Charge under temperature warning --> Bit 10
+ else bWarning &= ~(1 << 10);
+ if (aData[i++]) bWarning |= (1 << 9); // Bit 10 : Discharge over temperature warning --> Bit 9
+ else bWarning &= ~(1 << 9);
+ if (aData[i++]) bWarning |= (1 << 11); // Bit 11 : Discharge under temperature warning --> Bit 11
+ else bWarning &= ~(1 << 11);
+
+ if (aData[i++]) bWarning |= (1 << 12); // Bit 12 : Low capacity warning --> Bit 12
+ else bWarning &= ~(1 << 12);
+ i++; // 13
+
+ return (ushort)bWarning;
+ }
+ else
+ {
+ // Protection
+ if (aData[i++]) bFault |= (1 << 2); // Bit 0 : Over voltage warning
+ else bFault &= ~(1 << 2);
+ if (aData[i++]) bFault |= (1 << 4); // Bit 1 : Cell Over voltage warning
+ else bFault &= ~(1 << 4);
+ if (aData[i++]) bFault |= (1 << 3); // Bit 2 : Low voltage warning
+ else bFault &= ~(1 << 3);
+ if (aData[i++]) bFault |= (1 << 5); // Bit 3 : Low cell voltage warning
+ else bFault &= ~(1 << 5);
+ if (aData[i++]) bFault |= (1 << 6); // Bit 4 : Charge over current warning
+ else bFault &= ~(1 << 6);
+ if (aData[i++]) bFault |= (1 << 7); // Bit 5 : Discharge over current warning
+ else bFault &= ~(1 << 7);
+ i++; // 06 Abnormal balancing current
+ i++; // 07 Reserved
+ if ((aData[8]) || (aData[9])) bFault |= (1 << 0); // Bit 8 : Charge over temperature warning, Bit 9 : Discharge over temperature warning
+ else bFault &= ~(1 << 0);
+ i++; // 08
+ i++; // 09
+ if ((aData[10]) || (aData[11])) bFault |= (1 << 1); // Bit 10 : Charge low temperature warning, Bit 11 : Discharge low temperature warning
+ else bFault &= ~(1 << 1);
+ i++; // 10
+ i++; // 11
+ i++; // 12
+ i++; // 13
+ if (aData[i++]) bFault |= (1 << 9); // 14 Cell Voltage Difference Warning
+ else bFault &= ~(1 << 9);
+ return (ushort)bFault;
+ }
+ }
+
+ public static void SetSnmpData(int index, object sdata, ref CsDeviceData.DeviceModuleData aModuleData)
+ {
+ switch (index)
+ {
+ case 1: aModuleData.ValueData.voltage = (short)(Convert.ToDouble(sdata) / 10); break; // voltageOfPack - 0.01V
+ case 2: aModuleData.ValueData.current = (short)(Convert.ToDouble(sdata) - 10000); break; // current - 0.1A, Offset: 10000
+ case 3: // Cell Voltage #1
+ case 4: // Cell Voltage #2
+ case 5: // Cell Voltage #3
+ case 6: // Cell Voltage #4
+ case 7: // Cell Voltage #5
+ case 8: // Cell Voltage #6
+ case 9: // Cell Voltage #7
+ case 10: // Cell Voltage #8
+ case 11: // Cell Voltage #9
+ case 12: // Cell Voltage #10
+ case 13: // Cell Voltage #11
+ case 14: // Cell Voltage #12
+ case 15: // Cell Voltage #13
+ case 16: // Cell Voltage #14
+ case 17:
+ aModuleData.ValueData.CellVoltage[index - 3] = (ushort)(Convert.ToDouble(sdata) / 1);
+ csSerialCommFunction.MakeMaxAvgMinCellVoltage(ref aModuleData);
+ break; // Cell Voltage #16
+
+ case 19: aModuleData.ValueData.MosTemperature = (short)(Convert.ToDouble(sdata) * 10); break; // Temp of PCB - C
+ case 20: aModuleData.ValueData.AmbTemperature = (short)(Convert.ToDouble(sdata) * 10); break; // Temp of Ambient - C
+ case 21: aModuleData.AvgData.maxTemp = (short)(Convert.ToDouble(sdata) * 10); break; // Max. Temp
+
+ case 22: aModuleData.ValueData.remainingCapacity = (short)(Convert.ToDouble(sdata) * 1); break; // Remaining Capacity
+
+ case 24: aModuleData.ValueData.SOH = (short)(Convert.ToDouble(sdata) / 10); break; // stateOfHealth
+ case 25: aModuleData.ValueData.SOC = (short)(Convert.ToDouble(sdata) / 10); break; // Relatvie State Of Charge
+
+ case 26: aModuleData.StatusData.status = (ushort)(Convert.ToDouble(sdata) / 1); break; // Status
+ case 27: aModuleData.StatusData.warning = (ushort)CsAlarmDefine.DevWarningToGui(Convert.ToInt32(sdata)); break; // warning
+ case 28: aModuleData.StatusData.protect = (ushort)CsAlarmDefine.DevProtectToGui(Convert.ToInt32(sdata)); break; // protection
+ case 29: // FaultAndStatus
+ aModuleData.StatusData.faultAndStatus = (ushort)(Convert.ToDouble(sdata) / 1);
+ //aModuleData.StatusData.status = (short)(((short)Convert.ToDouble(sdata) >> 8) & 0x0003);
+ MakeAlarm(ref aModuleData);
+ break;
+ case 30: aModuleData.ValueData.cycleCount = (ushort)(Convert.ToDouble(sdata) / 1); break; // cycleCount
+
+ case 31: // Temperature #1
+ case 32: // Temperature #2
+ case 33: // Temperature #3
+ case 34: aModuleData.ValueData.CellTemperature[index - 31] = (short)(Convert.ToDouble(sdata) * 10); break; // Temperature #4
+
+ case 37: aModuleData.cellQty = (short)(Convert.ToDouble(sdata) * 1); break; // Cell Number
+ case 38: aModuleData.ValueData.designedCapacity = (short)(Convert.ToDouble(sdata) * 1); break; // Cell Number
+ case 40: aModuleData.ValueData.RecMaxBattChgCurrLmt = (short)(Convert.ToDouble(sdata) * 1); break; // Max. Charge Current - A
+ case 41: aModuleData.ntcQty = (short)(Convert.ToDouble(sdata) * 1); break; // NTC Number
+
+ case 42: aModuleData.BmsDateTime.year = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Year
+ case 43: aModuleData.BmsDateTime.month = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Month
+ case 44: aModuleData.BmsDateTime.day = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Day
+ case 45: aModuleData.BmsDateTime.hour = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Hour
+ case 46: aModuleData.BmsDateTime.minute = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Minute
+ case 47: aModuleData.BmsDateTime.second = (short)(Convert.ToDouble(sdata) * 1); // BMS DateTime - Second
+ aModuleData.BmsDateTime.DateTimeStr = string.Format("{0:0000}-{1:00}-{2:00} {3:00}:{4:00}:{5:00}"
+ , aModuleData.BmsDateTime.year
+ , aModuleData.BmsDateTime.month
+ , aModuleData.BmsDateTime.day
+ , aModuleData.BmsDateTime.hour
+ , aModuleData.BmsDateTime.minute
+ , aModuleData.BmsDateTime.second
+ );
+ break;
+
+ case 48: aModuleData.FloatVoltage = (int)Convert.ToDouble(sdata); break; // Float Voltage - 0.01V
+ case 49: aModuleData.BoostVoltage = (int)Convert.ToDouble(sdata); break; // Boost Voltage - 0.01V
+
+ case 50: aModuleData.MinChargeTemp = (int)Convert.ToDouble(sdata); break; // Min. Charge Temp - C
+ case 51: aModuleData.MaxChargeTemp = (int)Convert.ToDouble(sdata); break; // Max. Charge Temp - C
+
+ case 60: aModuleData.Information.ModelName = (string)sdata; break; // Model - string
+ case 61: aModuleData.Information.SwProductRev = (string)sdata; break; // BMS Fw Version - string
+ case 62: aModuleData.Information.HwSerialNumber = (string)sdata; break; // Pack Serial Number - string
+ case 63: aModuleData.Information.VendorName = (string)sdata; break; // Vendor Name - string
+ case 64: aModuleData.Information.ProductCode = (string)sdata; break; // Product Code - string
+ case 65: aModuleData.Information.MajorMinorRev = (string)sdata; break; // Major Minor Revision - string
+ case 66: aModuleData.Information.HwProductRev = (string)sdata; break; // Hardware Product Revision - string
+ case 67: aModuleData.Information.ManufacturingDate = (string)sdata; break; // Manufacturing Date - string
+
+ default:
+ break;
+ }
+ }
+ public static void MakeAlarm(ref CsDeviceData.DeviceModuleData aModuleData)
+ {
+ if (((aModuleData.StatusData.faultAndStatus >> 14) & 0x0001) == 0x0001)
+ {
+ aModuleData.StatusData.batteryStatus = 4; // Anti-theft Gyroscope
+ }
+ else if (((aModuleData.StatusData.faultAndStatus >> 15) & 0x0001) == 0x0001)
+ {
+ aModuleData.StatusData.batteryStatus = 5; // Anti-theft Comm.
+ }
+ else if (aModuleData.StatusData.protect != 0x0000)
+ {
+ aModuleData.StatusData.batteryStatus = 2;
+ }
+ else if (aModuleData.StatusData.warning != 0x0000)
+ {
+ aModuleData.StatusData.batteryStatus = 1;
+ }
+ else
+ {
+ aModuleData.StatusData.batteryStatus = 0;
+ }
+ }
+ }
+}
diff --git a/LFP_Manager/Function/csSerialCommFunction.cs b/LFP_Manager/Function/csSerialCommFunction.cs
new file mode 100644
index 0000000..a7ed039
--- /dev/null
+++ b/LFP_Manager/Function/csSerialCommFunction.cs
@@ -0,0 +1,969 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Utils;
+using LFP_Manager.Controls;
+using System.Web.Services.Description;
+using System.Data.Entity.Core.Common.CommandTrees;
+using DevExpress.XtraRichEdit.Fields.Expression;
+using DevExpress.XtraRichEdit.Layout;
+using DevExpress.XtraPrinting.Native.LayoutAdjustment;
+
+namespace LFP_Manager.Function
+{
+ class csSerialCommFunction
+ {
+ static readonly byte[] auchCRCHi = {
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
+ 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
+ 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
+ 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,
+ 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
+ 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
+ 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
+ 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
+ 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
+ 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
+ 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
+ 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
+ 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40
+ };
+
+ static readonly byte[] auchCRCLo = {
+ 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4,
+ 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,
+ 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD,
+ 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,
+ 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7,
+ 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A,
+ 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE,
+ 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,
+ 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2,
+ 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,
+ 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB,
+ 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,
+ 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91,
+ 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,
+ 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88,
+ 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
+ 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,0x40
+ };
+
+ public const byte READ_COIL_STATUS = 0x01;
+ public const byte READ_HOLDING_REG = 0x03;
+ public const byte READ_INPUT_REG = 0x04; //Byul 구문 추가 필요
+ public const byte FORCE_SINGLE_COIL = 0x05;
+ public const byte PRESET_SINGLE_REG = 0x06;
+ public const byte PRESET_MULTI_REG = 0x10;
+ public const byte WRITE_COIL_REG = 0x0F;
+ public const byte ERROR_REG = 0x90;
+
+ public const byte FW_FLASH_ERASE_CMD = 0x43;
+ public const byte FW_FLASH_WRITE_CMD = 0x31;
+
+ public const byte NO_CMD = 0xFF;
+
+ public static byte[] GetCRC(byte[] pby, int nSize)
+ {
+ ushort uIndex, i;
+ ushort crc;
+ byte uchCRCHi = 0xff;
+ byte uchCRCLo = 0xff;
+ byte[] result = new byte[2];
+
+ for (i = 0; i < nSize; i++)
+ {
+ uIndex = (ushort)((int)uchCRCLo ^ (int)pby[i]);
+ uchCRCLo = (byte)(uchCRCHi ^ auchCRCHi[uIndex]);
+ uchCRCHi = auchCRCLo[uIndex];
+ }
+ crc = (ushort)((uchCRCHi << 8) | uchCRCLo);
+
+ result[0] = (byte)(crc >> 8);
+ result[1] = (byte)(crc >> 0);
+
+ return result;
+ }
+
+ static public byte[] MakeReadRegisterData(ushort DevID, ushort cmd, ushort ReadAddr, ushort Size)
+ {
+ byte[] result = new byte[8];
+ byte[] crc;
+
+ result[0] = (byte)DevID; // Device ID
+ result[1] = (byte)cmd; // Command
+ result[2] = (byte)(ReadAddr >> 8); // Register Address MSB
+ result[3] = (byte)(ReadAddr >> 0); // Register Address LSB
+ result[4] = (byte)(Size >> 8); // Count of Register MSB
+ result[5] = (byte)(Size >> 0); // Count of Register LSB
+
+ crc = GetCRC(result, 6);
+
+ result[6] = crc[1]; // CRCH
+ result[7] = crc[0]; // CRCL
+
+ return result;
+ }
+
+ static public byte[] MakeWriteCoilData(ushort DevID, ushort WriteAddr, short WriteData)
+ {
+ byte[] result = new byte[7 + (1 * 1) + 2];
+ byte[] crc;
+ ushort i = 0;
+
+ result[i++] = (byte)DevID; // Device ID
+ result[i++] = (byte)WRITE_COIL_REG; // Command
+ result[i++] = (byte)(WriteAddr >> 8); // Register Address MSB
+ result[i++] = (byte)(WriteAddr >> 0); // Register Address LSB
+ result[i++] = (byte)(1 >> 8); // Count of Register MSB
+ result[i++] = (byte)(1 >> 0); // Count of Register LSB
+ result[i++] = (byte)(1 * 1); // Byte Count - [2 * (Num of register)]
+
+ result[i++] = (byte)(WriteData >> 0);
+
+ crc = GetCRC(result, i);
+
+ result[i++] = crc[1]; // CRCH
+ result[i++] = crc[0]; // CRCL
+
+ return result;
+ }
+
+ static public byte[] MakeWriteRegisterData(ushort DevID, ushort WriteAddr, short[] WriteData)
+ {
+ byte[] result = new byte[9 + (WriteData.Length * 2)];
+ byte[] crc;
+ ushort i = 0;
+
+ result[i++] = (byte)DevID; // Device ID
+ result[i++] = (byte)PRESET_MULTI_REG; // Command
+ result[i++] = (byte)(WriteAddr >> 8); // Register Address MSB
+ result[i++] = (byte)(WriteAddr >> 0); // Register Address LSB
+ result[i++] = (byte)(WriteData.Length >> 8); // Count of Register MSB
+ result[i++] = (byte)(WriteData.Length >> 0); // Count of Register LSB
+ result[i++] = (byte)(WriteData.Length * 2); // Byte Count - [2 * (Num of register)]
+
+ for (int j = 0; j < WriteData.Length; j++)
+ {
+ result[i++] = (byte)(WriteData[j] >> 8);
+ result[i++] = (byte)(WriteData[j] >> 0);
+ }
+
+ crc = GetCRC(result, i);
+
+ result[i++] = crc[1]; // CRCH
+ result[i++] = crc[0]; // CRCL
+
+ return result;
+ }
+
+ static short GetRegister(ushort reg_addr, ref DeviceParamData aParam)
+ {
+ short result = 0;
+
+ switch (reg_addr)
+ {
+ //case 19: result = (short)(0 >> 16); break; // 0021 : UTC TimeStamp MSB
+ //case 20: result = (short)(58 >> 0); break; // 0022 : UTC TimeStamp LSB
+ //case 21: result = (short)0x1000; break; // 0023 : Cell Balancing Flag
+ //case 22: result = (short)0x0000; break; // 0024 : Cell Balancing Voltage
+ //case 23: result = (short)15; break; // 0024 : Cell Balancing Time
+
+ case 0x4002: result = (short)aParam.CellUnderVoltageWarning; break; // 0061 : Low cell voltage warning data
+ //case 33: result = (short)param.sf1.voltage.CUV_Threshold; break; // 0062 : Low cell voltage protection data
+ //case 34: result = (short)param.sf1.voltage.CUV_Recovery; break; // 0063 : Low cell voltage recovery data
+ //case 35: result = (short)param.sf1.voltage.SUV_Warning; break; // 0064 : Low voltage warning data
+ //case 36: result = (short)param.sf1.voltage.SUV_Threshold; break; // 0065 : Low voltage protection data
+ //case 37: result = (short)param.sf1.voltage.SUV_Recovery; break; // 0066 : Low voltage recovery data
+ //case 38: result = (short)param.sf1.voltage.COV_Warning; break; // 0067 : Over cell voltage warning data
+ //case 39: result = (short)param.sf1.voltage.COV_Threshold; break; // 0068 : Over cell voltage protection data
+ //case 40: result = (short)param.sf1.voltage.COV_Recovery; break; // 0069 : Over cell voltage recovery data
+ //case 41: result = (short)param.sf1.voltage.SOV_Warning; break; // 0070 : Over voltage warning data
+ //case 42: result = (short)param.sf1.voltage.SOV_Threshold; break; // 0071 : Over voltage protection data
+ //case 43: result = (short)param.sf1.voltage.SOV_Recovery; break; // 0072 : Over voltage recovery data
+
+ //case 44: result = (short)param.sf1.temperature.OT_Chg_Warning; break; // 0044 : Charge over temperature warning data
+ //case 45: result = (short)param.sf1.temperature.OT_Chg_Threshold; break; // 0045 : Charge over temperature protection data
+ //case 46: result = (short)param.sf1.temperature.OT_Chg_Recovery; break; // 0046 : Charge over temperature recovery data
+ //case 47: result = (short)param.sf1.temperature.OT_Chg_Time; break; // 0047 : Charge over temperature time
+
+ //case 48: result = (short)param.sf1.temperature.OT_Dsg_Warning; break; // 0048 : Discharge over temperature warning data
+ //case 49: result = (short)param.sf1.temperature.OT_Dsg_Threshold; break; // 0049 : Discharge over temperature protection data
+ //case 50: result = (short)param.sf1.temperature.OT_Dsg_Recovery; break; // 0050 : Discharge over temperature recovery data
+ //case 51: result = (short)param.sf1.temperature.OT_Dsg_Time; break; // 0051 : Discharge over temperature time
+ }
+
+ return result;
+ }
+
+ static byte[] ModBusGetRegWordToBytes(ushort addr, ref DeviceParamData aParam)
+ {
+ short data;
+ byte[] result = new byte[2];
+
+ data = GetRegister(addr, ref aParam);
+
+ result[0] = (byte)(data >> 8);
+ result[1] = (byte)(data >> 0);
+
+ return result;
+ }
+
+ static public byte[] MakeWriteRegisterData(ushort DevID, ushort WriteAddr, ushort reg_len, ref DeviceParamData aParam)
+ {
+ int tlen = (reg_len * 2) + 7 + 2;
+ byte[] result = new byte[tlen];
+ byte[] tmp;
+ byte[] crc;
+
+ result[0] = (byte)DevID; // Device ID
+ result[1] = (byte)PRESET_MULTI_REG; // Command
+ result[2] = (byte)(WriteAddr >> 8); // Register Address MSB
+ result[3] = (byte)(WriteAddr >> 0); // Register Address LSB
+ result[4] = (byte)(reg_len >> 8); // Count of Register MSB
+ result[5] = (byte)(reg_len >> 0); // Count of Register LSB
+ result[6] = (byte)(reg_len * 2); ; // Current Value MSB
+
+ for (int i = 0; i < reg_len; i++)
+ {
+ tmp = ModBusGetRegWordToBytes((ushort)(WriteAddr + i),ref aParam);
+ result[7 + (i * 2) + 0] = tmp[0];
+ result[7 + (i * 2) + 1] = tmp[1];
+ }
+ crc = GetCRC(result, 8);
+
+ result[tlen - 2] = crc[0]; // CRCH
+ result[tlen - 1] = crc[1]; // CRCL
+
+ return result;
+ }
+
+ public static byte[] MakeCheckSum(byte[] sData, int offset, int len, bool flag)
+ {
+ byte[] result = new byte[2];
+ int checksum = 0;
+
+ for (int i = 0; i < len; i++)
+ {
+ checksum += sData[i + offset];
+ }
+
+ checksum = ~checksum + 1;
+
+ result[0] = (byte)(checksum >> 8);
+ result[1] = (byte)checksum;
+
+ return result;
+ }
+
+ private static byte[] MakeTxPacket(byte[] sData, int len)
+ {
+ string str = "";
+ byte[] result;
+ char[] chrArray;
+ int checksum = 0;
+ string checksumStr = "";
+ char[] checksumChr;
+
+ str = "~";
+
+ for (int i = 0; i < len; i++)
+ {
+ str += sData[i].ToString("X2");
+ }
+
+ str += "\r";
+
+ chrArray = str.ToCharArray();
+
+ for (int i = 0; i < (chrArray.Length - 6); i++)
+ {
+ checksum += chrArray[i + 1];
+ }
+
+ checksum = ~checksum + 1;
+
+ checksumStr = String.Format("{0:X2}{1:X2}", (byte)(checksum >> 8), (byte)checksum);
+ checksumChr = checksumStr.ToCharArray();
+
+ for (int i = 0; i < 4; i++)
+ {
+ chrArray[chrArray.Length - 5 + i] = checksumChr[i];
+ }
+
+ result = new byte[chrArray.Length];
+
+ for (int i = 0; i < chrArray.Length; i++)
+ {
+ result[i] = (byte)chrArray[i];
+ }
+
+ return result;
+ }
+
+ public static byte[] LengthLchk(int sLen)
+ {
+ byte[] result = new byte[2];
+ int lchksum = 0;
+
+ lchksum = (~(((sLen >> 8) & 0xF) +
+ ((sLen >> 4) & 0xF) +
+ ((sLen >> 0) & 0xF)) + 1) % 16;
+ lchksum = ((lchksum << 12) | sLen);
+
+ result[0] = (byte)(lchksum >> 8);
+ result[1] = (byte)(lchksum >> 0);
+
+ return result;
+ }
+
+ public static byte[] MakeTxData(byte addr, byte cmd, int sLen)
+ {
+ int buffCh = 0;
+ byte[] sData;
+ byte[] lenId;
+ byte[] checksum;
+
+ sData = new byte[((sLen > 0) ? 11 : 10)];
+
+ sData[buffCh] = 0x7E; buffCh++; // SOI
+ sData[buffCh] = 0x25; buffCh++; // VER
+ sData[buffCh] = addr; buffCh++; // ADDR
+ sData[buffCh] = 0x46; buffCh++; // CID1
+ sData[buffCh] = cmd; buffCh++; // CID2 (CMD)
+
+ lenId = LengthLchk(sLen); // LENID
+ sData[buffCh] = lenId[0]; buffCh++; // LENID MSB
+ sData[buffCh] = lenId[1]; buffCh++; // LENID LSB
+
+ if (sLen > 0)
+ {
+ sData[buffCh] = (byte)(sLen / 2); buffCh++; // INFO
+ }
+
+ checksum = csSerialCommFunction.MakeCheckSum(sData, 1, sData.Length - 4, false);
+
+ sData[buffCh] = checksum[1]; buffCh++;
+ sData[buffCh] = checksum[0]; buffCh++;
+
+ sData[buffCh] = 0x0D; buffCh++; // EOI
+
+ return MakeTxPacket(sData, sData.Length);
+ }
+
+ public static int TbPacketCheck(byte[] rdata, int rlen)
+ {
+ int result = 0;
+ byte[] cdata;
+ byte[] checksum;
+ byte[] checksum1;
+
+ checksum = MakeCheckSum(rdata, 1, rlen - 6, false);
+
+ checksum1 = new byte[2];
+ checksum1[0] = csUtils.StrByte2toByte(rdata[rlen - 4], rdata[rlen - 5]);
+ checksum1[1] = csUtils.StrByte2toByte(rdata[rlen - 2], rdata[rlen - 3]);
+
+
+ if ((checksum[0] == checksum1[0]) && (checksum[1] == checksum1[1]))
+ {
+ cdata = csUtils.StrToByteArray(rdata, 0, rlen);
+
+ result = 1;
+ }
+
+ return result;
+ }
+
+ static public int ModbusPacketFromSlaveCheck(byte[] rdata, ushort rlen)
+ {
+ int result = 0;
+ byte[] cdata, crc;
+ ushort clen, bytecount;
+
+ if (rlen > 2)
+ {
+ cdata = rdata;
+
+ switch (cdata[1])
+ {
+ case READ_COIL_STATUS:
+ case READ_HOLDING_REG:
+ case READ_INPUT_REG:
+ bytecount = cdata[2];
+ clen = (ushort)(bytecount + 5); // header 3, tail 2
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[1] == cdata[rlen - 2]) && (crc[0] == cdata[rlen - 1])) result = 1;
+ else result = -1;
+ }
+ break;
+ case PRESET_MULTI_REG:
+ case FORCE_SINGLE_COIL:
+ case PRESET_SINGLE_REG:
+ clen = 8;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 1;
+ else result = -1;
+ }
+ break;
+ case ERROR_REG:
+ clen = 6;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 1;
+ else result = -1;
+ }
+ break;
+ case FW_FLASH_ERASE_CMD:
+ clen = 5;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 2;
+ else result = -1;
+ }
+ break;
+ case FW_FLASH_WRITE_CMD:
+ clen = 5;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 2;
+ else result = -1;
+ }
+ break;
+
+ default:
+ result = -1;
+ break;
+ }
+ }
+ return result;
+ }
+
+ public static short[] SerialRxProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref CsDeviceData.DeviceModuleData aModuleData)
+ {
+ short[] result = new short[2];
+
+ switch (rData[1])
+ {
+ case READ_COIL_STATUS:
+ ReadCoilRegisterProcess(rData, rRegAddr, rLen, ref aModuleData);
+ break;
+ case READ_HOLDING_REG:
+ ReadHoldRegisterProcess(rData, rRegAddr, rLen, ref aModuleData);
+ break;
+ case READ_INPUT_REG:
+ ReadInputRegisterProcess(rData, rRegAddr, rLen, ref aModuleData);
+ break;
+ //case READ_INPUT_REG:
+ // ReadRegister(rData, rRegAddr, rLen, ref rSystemData);
+ // break;
+ case PRESET_MULTI_REG:
+ // read_holding_reg_process(reverse16(rsp->start_addr, true), reverse16(rsp->qty_reg, true));
+ //result[0] = 1;
+ //result[1] = 1;
+ break;
+ case ERROR_REG:
+ result[0] = 2;
+ result[1] = (short)((rData[0] << 8) | rData[1]);
+ break;
+ }
+
+ return result;
+ }
+
+ private static void ReadCoilRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref CsDeviceData.DeviceModuleData aModuleData)
+ {
+ // 기본 유효성 검사
+ if (rData == null || rData.Length < 3)
+ {
+ // TODO: 로그/에러 처리 - 응답 길이 부족(DevID, Func, ByteCount 최소 필요)
+ return;
+ }
+
+ int i = 2; // rData[0]=DevID, rData[1]=Func(0x01), rData[2]=ByteCount
+ int byteCount = rData[i++];
+
+ if (byteCount < 0) // byte → int 승격 시 의미 없지만 방어적 체크
+ {
+ // TODO: 로그/에러 처리 - ByteCount 음수
+ return;
+ }
+
+ // 바이트 카운트만큼의 데이터가 실제로 존재하는지 확인
+ if (rData.Length < i + byteCount)
+ {
+ // TODO: 로그/에러 처리 - 실제 데이터가 ByteCount보다 짧음
+ return;
+ }
+
+ // 파싱할 수 있는 최대 코일 수와 요청한 코일 수 중 작은 쪽으로 제한
+ int coilsAvailable = byteCount * 8;
+ int coilsToParse = Math.Min(coilsAvailable, rLen);
+
+ if (coilsToParse <= 0)
+ {
+ // TODO: 로그/에러 처리 - 파싱할 코일 없음
+ return;
+ }
+
+ // Modbus Coils는 LSB-first: 각 바이트의 bit0이 가장 먼저 오는 코일 상태
+ for (int bit = 0; bit < coilsToParse; bit++)
+ {
+ int byteIndex = i + (bit / 8);
+ int bitPos = bit % 8;
+
+ // 방어적 인덱스 검사 (이론상 위의 길이검사로 안전하지만 이중 방어)
+ if (byteIndex < 0 || byteIndex >= rData.Length)
+ {
+ // TODO: 로그/에러 처리 - 계산된 인덱스가 범위를 벗어남
+ break;
+ }
+
+ int val = (rData[byteIndex] >> bitPos) & 0x01;
+
+ try
+ {
+ SetCoilRegister((short)(rRegAddr + bit), (short)val, ref aModuleData);
+ }
+ catch
+ {
+ // TODO: 로그/에러 처리 - 개별 레지스터 반영 실패(계속 진행)
+ }
+ }
+ }
+
+ private static void ReadHoldRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref CsDeviceData.DeviceModuleData aModuleData)
+ {
+ int i, j;
+ short reg_count;
+ short reg_value;
+ i = 2;
+ reg_count = (short)(rData[i] / 2); i += 1;
+
+ for (j = 0; j < reg_count; j++)
+ {
+ reg_value = (short)(rData[i] << 8 | rData[i + 1]);
+ SetHoldRegister((short)(rRegAddr + j), reg_value, ref aModuleData);
+ i += 2;
+ }
+ }
+
+ private static void ReadInputRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref CsDeviceData.DeviceModuleData aModuleData)
+ {
+ int i, j;
+ short reg_count;
+ short reg_value;
+ i = 2;
+ reg_count = (short)(rData[i] / 2); i += 1;
+
+ for (j = 0; j < reg_count; j++)
+ {
+ reg_value = (short)(rData[i] << 8 | rData[i + 1]);
+ SetInputRegister((short)(rRegAddr + j), reg_value, ref aModuleData);
+ i += 2;
+ }
+ }
+
+ private static void SetInputRegister(short reg_addr, short reg_value, ref CsDeviceData.DeviceModuleData aModuleData)
+ {
+ switch (reg_addr)
+ {
+ case 1: MakeMaxAvgMinCellVoltage(ref aModuleData); break;
+ case 2: MakeMaxAvgMinTemperature(ref aModuleData); break;
+ case 45: break;
+ }
+ }
+
+ private static void SetCoilRegister(short reg_addr, short reg_value, ref CsDeviceData.DeviceModuleData aModuleData)
+ {
+ switch (reg_addr)
+ {
+ case 0x3078:
+ aModuleData.StatusData.relayStatus = (ushort)reg_value;
+ aModuleData.CalibrationData.FetCalib.FetStatus = reg_value;
+ break;
+ case 0x502E:
+ aModuleData.CalibrationData.Current.ChargeOption = reg_value;
+ break;
+ }
+ }
+
+ private static void SetHoldRegister(short reg_addr, short reg_value, ref CsDeviceData.DeviceModuleData aModuleData)
+ {
+ uint temp = 0;
+ switch (reg_addr)
+ {
+ case 0: aModuleData.ValueData.voltage = (short)(reg_value / 10); break; //Total Voltage
+ case 1: aModuleData.ValueData.current = (short)(reg_value / 10); break; //Total Current
+ case 2: // Cell Voltage #1
+ case 3: // Cell Voltage #2
+ case 4: // Cell Voltage #3
+ case 5: // Cell Voltage #4
+ case 6: // Cell Voltage #5
+ case 7: // Cell Voltage #6
+ case 8: // Cell Voltage #7
+ case 9: // Cell Voltage #8'
+ case 10: // Cell Voltage #9
+ case 11: // Cell Voltage #10
+ case 12: // Cell Voltage #11
+ case 13: // Cell Voltage #12
+ case 14: // Cell Voltage #13
+ case 15: // Cell Voltage #14
+ case 16: // Cell Voltage #15
+ aModuleData.ValueData.CellVoltage[reg_addr - 2] = (ushort)(reg_value / 1);
+ MakeMaxAvgMinCellVoltage(ref aModuleData);
+ break; // 15 CellVoltage 1mV
+ case 17: break; // Cell Voltage #16 - Reserved
+ case 18: aModuleData.ValueData.MosTemperature = (short)((reg_value) * 10); break; //Ext1 Temperature (Temp of MOS-FET)
+ case 19: aModuleData.ValueData.AmbTemperature = (short)((reg_value) * 10); break; //Ext2 Amb. PCB Temperature 1C
+ case 20: break; // Temp Max.
+ case 21: aModuleData.ValueData.remainingCapacity = (short)(reg_value / 1); break; // Remaining Capacity
+ case 22: aModuleData.ValueData.MaxBattChgCurr = reg_value / 1; break;
+ case 23: aModuleData.ValueData.SOH = (short)(reg_value * 10); break;
+ case 24: aModuleData.ValueData.SOC = (short)(reg_value * 10); break; //SOC
+ case 25: aModuleData.StatusData.status = (ushort)reg_value; break; //Operating Status
+ case 26:
+ aModuleData.StatusData.warning = (ushort)reg_value;
+ if ((aModuleData.StatusData.specialAlarm & 0x0004) != 0)
+ aModuleData.StatusData.warning |= 0x4000;
+ else
+ aModuleData.StatusData.warning &= 0xBFFF;
+ break; //Warning Status
+ case 27: aModuleData.StatusData.protect = (ushort)reg_value; break; //Protection Status
+ case 28: // Error Code
+ // 0x0001:Voltage error
+ // 0x0002:Temperature error
+ // 0x0004: Current Check Error
+ // 0x0010:Cell unbalance
+ break;
+ case 29: // Cycle count MSB
+ temp = aModuleData.ValueData.cycleCount;
+ aModuleData.ValueData.cycleCount = (temp & (0x0000FFFF)) | ((uint)reg_value << 16);
+ break;
+ case 30: // Cycle count LSB
+ temp = aModuleData.ValueData.cycleCount;
+ aModuleData.ValueData.cycleCount = (temp & (0xFFFF0000)) | ((uint)reg_value << 0);
+ break;
+ case 31: // fullChargeCapacity MSB
+ temp = aModuleData.ValueData.fullChgCapacity_Ah;
+ aModuleData.ValueData.fullChgCapacity_Ah = (temp & (0x0000FFFF)) | ((uint)reg_value << 16);
+ break;
+ case 32: // fullChargeCapacity LSB
+ temp = aModuleData.ValueData.fullChgCapacity_Ah;
+ aModuleData.ValueData.fullChgCapacity_Ah = (temp & (0xFFFF0000)) | ((uint)reg_value << 0);
+ break;
+ case 33:
+ case 34:
+ aModuleData.ValueData.CellTemperature[((reg_addr - 33) * 2) + 0] = (short)(((reg_value >> 8) & 0xFF) * 10);
+ aModuleData.ValueData.CellTemperature[((reg_addr - 33) * 2) + 1] = (short)(((reg_value >> 0) & 0xFF) * 10);
+ MakeMaxAvgMinTemperature(ref aModuleData);
+ break;
+ case 35: break; // Reserved
+ case 36: aModuleData.cellQty = reg_value; break; // Cell Qty
+ case 37: aModuleData.ValueData.designedCapacity = reg_value; break;
+ case 38: aModuleData.StatusData.cellBallanceStatus = (ushort)reg_value; break;
+
+ case 39: aModuleData.StatusData.specialAlarm = (ushort)(reg_value); break; // Special Alarm
+
+ //case 61: aModuleData.StatusData.cellBallanceStatus = reg_value; break;
+ //45 ~ 99 : Reserved
+ case 45: aModuleData.BmsDateTimeShort1 = (ushort)reg_value; break; // DateTime
+ case 46: aModuleData.BmsDateTimeShort2 = (ushort)reg_value;
+ int yy, MM, dd, HH, mm, ss;
+ aModuleData.BmsDateTimeInt = (aModuleData.BmsDateTimeShort1 << 16) | (aModuleData.BmsDateTimeShort2);
+ yy = (aModuleData.BmsDateTimeInt >> 26) & 0x003F;
+ MM = ((aModuleData.BmsDateTimeInt >> 22) & 0x000F) % 13;
+ dd = ((aModuleData.BmsDateTimeInt >> 17) & 0x001F) % 32;
+ HH = ((aModuleData.BmsDateTimeInt >> 12) & 0x001F) % 24;
+ mm = ((aModuleData.BmsDateTimeInt >> 6) & 0x003F) % 60;
+ ss = ((aModuleData.BmsDateTimeInt >> 0) & 0x003F) % 60;
+ yy += 2000;
+
+ aModuleData.BmsDateTime.DateTimeStr = string.Format("{0:0000}-{1:00}-{2:00} {3:00}:{4:00}:{5:00}"
+ , yy
+ , MM
+ , dd
+ , HH
+ , mm
+ , ss
+ );
+ break; // DateTime
+
+ case 47: aModuleData.CalibrationData.ChaMode.Mode = reg_value; break; // 0x2F
+ case 48: aModuleData.CalibrationData.ChaMode.Value = reg_value; break; // 0x2F
+
+ //case 56: aModuleData.CalibrationData.BalCalib.Volt = reg_value; break; // Cell Balance Voltage
+ //case 57: aModuleData.CalibrationData.BalCalib.Diff = reg_value; break; // Cell Balance Diff
+
+ case 58: aModuleData.ParamData.LowSocWarning = reg_value; break;
+
+ case 61: aModuleData.ParamData.CellUnderVoltageWarning = reg_value; break;
+ case 62: aModuleData.ParamData.CellUnderVoltageTrip = reg_value; break;
+ case 63: aModuleData.ParamData.CellUnderVoltageRelease = reg_value; break;
+ case 64: aModuleData.ParamData.SysUnderVoltageWarning = (short)(reg_value / 10); break;
+ case 65: aModuleData.ParamData.SysUnderVoltageTrip = (short)(reg_value / 10); break;
+ case 66: aModuleData.ParamData.SysUnderVoltageRelease = (short)(reg_value / 10); break;
+ case 67: aModuleData.ParamData.CellOverVoltageWarning = reg_value; break;
+ case 68: aModuleData.ParamData.CellOverVoltageTrip = reg_value; break;
+ case 69: aModuleData.ParamData.CellOverVoltageRelease = reg_value; break;
+ case 70: aModuleData.ParamData.SysOverVoltageWarning = (short)(reg_value / 10); break;
+ case 71: aModuleData.ParamData.SysOverVoltageTrip = (short)(reg_value / 10); break;
+ case 72: aModuleData.ParamData.SysOverVoltageRelease = (short)(reg_value / 10); break;
+
+ case 76: aModuleData.ParamData.ChaOverCurrentTimes = (short)(reg_value / 1); break;
+ case 77: aModuleData.ParamData.DchOverCurrentTimes = (short)(reg_value / 1); break;
+ case 78: aModuleData.ParamData.ChaOverCurrentReleaseTime = (short)(reg_value * 1); break;
+ case 79: aModuleData.ParamData.DchOverCurrentReleaseTime = (short)(reg_value * 1); break;
+ case 80: aModuleData.ParamData.ChaOverCurrentTrip1 = (short)(reg_value / 10); break;
+ case 81: aModuleData.ParamData.DchOverCurrentTrip1 = (short)(reg_value / 10); break;
+ case 82: aModuleData.ParamData.ShortCircuit = (short)(reg_value / 10); break; // Short Circuit Current = 300A
+ case 83: aModuleData.ParamData.ChaOverCurrentTrip2 = (short)(reg_value / 10); break;
+ case 84: aModuleData.ParamData.DchOverCurrentTrip2 = (short)(reg_value / 10); break;
+ case 85: aModuleData.ParamData.ChaOverCurrentDelay1 = (short)(reg_value / 1); break;
+ case 86: aModuleData.ParamData.ChaOverCurrentDelay2 = (short)(reg_value / 1); break;
+ case 87: aModuleData.ParamData.DchOverCurrentDelay1 = (short)(reg_value / 1); break;
+ case 88: aModuleData.ParamData.DchOverCurrentDelay2 = (short)(reg_value / 1); break;
+
+ case 90: aModuleData.ParamData.ChaLowTempWarning = (short)(reg_value - 50); break;
+ case 91: aModuleData.ParamData.ChaLowTempTrip = (short)(reg_value - 50); break;
+ case 92: aModuleData.ParamData.ChaLowTempRelease = (short)(reg_value - 50); break;
+ case 93: aModuleData.ParamData.ChaHighTempWarning = (short)(reg_value - 50); break;
+ case 94: aModuleData.ParamData.ChaHighTempTrip = (short)(reg_value - 50); break;
+ case 95: aModuleData.ParamData.ChaHighTempRelease = (short)(reg_value - 50); break;
+ case 96: aModuleData.ParamData.DchLowTempWarning = (short)(reg_value - 50); break;
+ case 97: aModuleData.ParamData.DchLowTempTrip = (short)(reg_value - 50); break;
+ case 98: aModuleData.ParamData.DchLowTempRelease = (short)(reg_value - 50); break;
+ case 99: aModuleData.ParamData.DchHighTempWarning = (short)(reg_value - 50); break;
+ case 100: aModuleData.ParamData.DchHighTempTrip = (short)(reg_value - 50); break;
+ case 101: aModuleData.ParamData.DchHighTempRelease = (short)(reg_value - 50); break;
+
+ case 102: break; // PCB High Temp Warning
+ case 103: break; // PCB High Temp Trip
+ case 104: break; // PCB High Temp Release
+ //100 ~111 : Model_Product Name
+ case 105:
+ case 106:
+ case 107:
+ case 108:
+ case 109:
+ case 110:
+ case 111:
+ case 112:
+ case 113:
+ case 114:
+ case 115:
+ case 116:
+ int mReg = reg_addr - 105;
+ aModuleData.Information.Model_Byte[(mReg * 2) + 0] = (byte)(reg_value >> 8);
+ aModuleData.Information.Model_Byte[(mReg * 2) + 1] = (byte)(reg_value >> 0);
+ if (reg_addr == 116)
+ {
+ aModuleData.Information.ModelName = Encoding.Default.GetString(aModuleData.Information.Model_Byte).Trim('\0');
+ }
+ break;
+
+ //112 ~114 : FW Version
+ case 117:
+ case 118:
+ case 119:
+ int fReg = reg_addr - 117;
+ aModuleData.Information.FwVer_Byte[(fReg * 2) + 0] = (byte)(reg_value >> 8);
+ aModuleData.Information.FwVer_Byte[(fReg * 2) + 1] = (byte)(reg_value >> 0);
+ if (reg_addr == 119)
+ {
+ aModuleData.Information.SwProductRev = Encoding.Default.GetString(aModuleData.Information.FwVer_Byte).Trim('\0');
+ }
+ break;
+ //115 ~ 122 : BMS Serial number
+ case 120:
+ case 121:
+ case 122:
+ case 123:
+ case 124:
+ case 125:
+ case 126:
+ case 127:
+ int snReg = reg_addr - 120;
+ aModuleData.Information.BMS_SN[(snReg * 2) + 0] = (byte)(reg_value >> 8);
+ aModuleData.Information.BMS_SN[(snReg * 2) + 1] = (byte)(reg_value >> 0);
+ if (reg_addr == 127)
+ {
+ aModuleData.Information.HwSerialNumber = Encoding.Default.GetString(aModuleData.Information.BMS_SN).Trim('\0');
+ }
+ break;
+
+ case 130: aModuleData.ParamData.EnvLowTempWarning = (short)(reg_value - 50); break;
+ case 131: aModuleData.ParamData.EnvLowTempTrip = (short)(reg_value - 50); break;
+ case 132: aModuleData.ParamData.EnvLowTempRelease = (short)(reg_value - 50); break;
+ case 133: aModuleData.ParamData.EnvHighTempWarning = (short)(reg_value - 50); break;
+ case 134: aModuleData.ParamData.EnvHighTempTrip = (short)(reg_value - 50); break;
+ case 135: aModuleData.ParamData.EnvHighTempRelease = (short)(reg_value - 50); break;
+
+ case 136: // Anti-Theft Communication
+ aModuleData.CalibrationData.AntiTheft.Comm = reg_value;
+ break;
+ case 137: // Anti-Theft Gyro-Scope
+ aModuleData.CalibrationData.AntiTheft.GyroScope = reg_value;
+ break;
+ case 163: // 0xA3
+ case 164: // 0xA4
+ case 165: // 0xA5
+ case 166: // 0xA6
+ int ManuDateReg = reg_addr - 163;
+ aModuleData.Information.ManuDate_Byte[(ManuDateReg * 2) + 0] = (byte)(reg_value >> 8);
+ aModuleData.Information.ManuDate_Byte[(ManuDateReg * 2) + 1] = (byte)(reg_value >> 0);
+ if (reg_addr == 166)
+ {
+ aModuleData.Information.ManufacturingDate = Encoding.Default.GetString(aModuleData.Information.ManuDate_Byte).Trim('\0');
+ }
+ break;
+ }
+ csMakeDataFunction.MakeAlarm(ref aModuleData);
+ }
+
+ public static void MakeMaxAvgMinCellVoltage(ref CsDeviceData.DeviceModuleData aModuleData)
+ {
+ int Max, Avg, Min, Sum;
+ int MaxNo, MinNo;
+
+ Max = Avg = Min = Sum = 0;
+ MaxNo = MinNo = 0;
+ for (int i = 0; i < csConstData.SystemInfo.MAX_MODULE_CELL_SIZE; i++)
+ {
+ if (i == 0)
+ {
+ Max = Min = aModuleData.ValueData.CellVoltage[i];
+ }
+ Sum += aModuleData.ValueData.CellVoltage[i];
+
+ if (Max < aModuleData.ValueData.CellVoltage[i])
+ {
+ Max = aModuleData.ValueData.CellVoltage[i];
+ MaxNo = i;
+ }
+ if (Min > aModuleData.ValueData.CellVoltage[i])
+ {
+ Min = aModuleData.ValueData.CellVoltage[i];
+ MinNo = i;
+ }
+ }
+ Avg = Sum / csConstData.SystemInfo.MAX_MODULE_CELL_SIZE;
+
+ aModuleData.AvgData.avgCellVoltage = (short)Avg;
+ aModuleData.AvgData.maxCellVoltage = (short)Max;
+ aModuleData.AvgData.maxCellNum = (short)(MaxNo + 1);
+ aModuleData.AvgData.minCellVoltage = (short)Min;
+ aModuleData.AvgData.minCellNum = (short)(MinNo + 1);
+ aModuleData.AvgData.diffCellVoltage = (short)(Max - Min);
+ }
+
+ private static void MakeMaxAvgMinTemperature(ref CsDeviceData.DeviceModuleData aModuleData)
+ {
+ int Max, Avg, Min, Sum;
+ int MaxNo, MinNo;
+
+ Max = Avg = Min = Sum = 0;
+ MaxNo = MinNo = 0;
+ //for (int i = 0; i < csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE; i++)
+ for (int i = 0; i < 4; i++)
+ {
+ if (i == 0)
+ {
+ Max = Min = aModuleData.ValueData.CellTemperature[i];
+ }
+ Sum += aModuleData.ValueData.CellTemperature[i];
+
+ if (Max < aModuleData.ValueData.CellTemperature[i])
+ {
+ Max = aModuleData.ValueData.CellTemperature[i];
+ MaxNo = i;
+ }
+ if (Min > aModuleData.ValueData.CellTemperature[i])
+ {
+ Min = aModuleData.ValueData.CellTemperature[i];
+ MinNo = i;
+ }
+ }
+ //Avg = Sum / csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE;
+ Avg = Sum / 4;
+
+ aModuleData.AvgData.avgTemp = (short)Avg;
+ aModuleData.AvgData.maxTemp = (short)Max;
+ aModuleData.AvgData.maxTempNum = (short)(MaxNo + 1);
+ aModuleData.AvgData.minTemp = (short)Min;
+ aModuleData.AvgData.minTempNum = (short)(MinNo + 1);
+ aModuleData.AvgData.diffTemp = (short)(Max - Min);
+ }
+
+ public static short MakeUartWarningData(short rdata)
+ {
+ short result = 0;
+ bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
+
+ if (bAlarm[0] == true) result |= (short)(1 << 2); // 0x0001:Pack OV
+ if (bAlarm[1] == true) result |= (short)(1 << 4); // 0x0002:Cell OV
+ if (bAlarm[2] == true) result |= (short)(1 << 3); // 0x0004:Pack UV
+ if (bAlarm[3] == true) result |= (short)(1 << 5); // 0x0008:Cell UV
+
+ if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC
+ if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC
+
+ if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Tempratuer
+ if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Discharging Over Tempratuer
+ if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0040: Charging Under Tempratuer
+ if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Tempratuer
+ if (bAlarm[12] == true) result |= (short)(1 << 11); // 0x0200:SOC Low
+
+ return result;
+ }
+
+ public static short MakeUartTripData(short rdata)
+ {
+ short result = 0;
+ bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
+
+ if (bAlarm[0] == true) result |= (short)(1 << 2); // 0x0001:Pack OV
+ if (bAlarm[1] == true) result |= (short)(1 << 4); // 0x0002:Cell OV
+ if (bAlarm[2] == true) result |= (short)(1 << 3); // 0x0004:Pack UV
+ if (bAlarm[3] == true) result |= (short)(1 << 5); // 0x0008:Cell UV
+
+ if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC
+ if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC
+
+ if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Tempratuer
+ if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Discharging Over Tempratuer
+ if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0040: Charging Under Tempratuer
+ if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Tempratuer
+ if (bAlarm[13] == true) result |= (short)(1 << 9); // 0x0200:Short Circuit Protection
+
+ return result;
+ }
+
+ private static short MakeUartErrorData(short rdata, short cdata)
+ {
+ short result = cdata;
+ bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
+
+ if (bAlarm[0] == true) result |= (short)(1 << 9); // 0x0001:Voltage error
+ if (bAlarm[1] == true) result |= (short)(1 << 9); // 0x0002:Temperature error
+ if (bAlarm[2] == true) result |= (short)(1 << 9); // 0x0004: 电流检测Error
+ if (bAlarm[3] == true) result |= (short)(1 << 9); // 0x0010:Cell unbalance
+
+ return result;
+ }
+ }
+}
diff --git a/LFP_Manager/LFP_Manager.zip b/LFP_Manager/LFP_Manager.zip
new file mode 100644
index 0000000..f2f4fc4
Binary files /dev/null and b/LFP_Manager/LFP_Manager.zip differ
diff --git a/LFP_Manager/LFP_Manager_GL.csproj b/LFP_Manager/LFP_Manager_GL.csproj
new file mode 100644
index 0000000..00d107c
--- /dev/null
+++ b/LFP_Manager/LFP_Manager_GL.csproj
@@ -0,0 +1,530 @@
+
+
+
+
+ Debug
+ AnyCPU
+ 9.0.21022
+ 2.0
+ {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}
+ WinExe
+ Properties
+ LFP_Manager
+ LFP_Manager_GL
+ v4.5.2
+ 512
+
+
+ 3.5
+
+
+
+
+
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ x86
+ false
+
+
+ pdbonly
+ false
+ bin\Release\
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ x86
+ false
+
+
+ Resources\AMO_LOGO.ico
+
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+
+ True
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+ True
+
+
+ True
+
+
+
+ True
+
+
+
+ True
+
+
+
+
+
+ ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll
+
+
+ ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll
+
+
+ dll\IPAddressControlLib.dll
+
+
+ dll\log4net.dll
+
+
+ False
+ dll\SnmpSharpNet.dll
+
+
+
+
+
+ 3.5
+
+
+
+ ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net451\System.Data.SQLite.dll
+
+
+ ..\packages\System.Data.SQLite.EF6.1.0.113.0\lib\net451\System.Data.SQLite.EF6.dll
+
+
+ ..\packages\System.Data.SQLite.Linq.1.0.113.0\lib\net451\System.Data.SQLite.Linq.dll
+
+
+
+
+
+
+
+
+ 3.5
+
+
+ 3.5
+
+
+
+
+
+
+
+ dll\Tftp.Net.dll
+
+
+
+
+ UserControl
+
+
+ ucCalibration.cs
+
+
+ UserControl
+
+
+ ucCalibrationView.cs
+
+
+ UserControl
+
+
+ ucCommConfig.cs
+
+
+ UserControl
+
+
+ ucDataLog.cs
+
+
+ UserControl
+
+
+ ucEtcStatusView.cs
+
+
+ UserControl
+
+
+ ucEventLog.cs
+
+
+ UserControl
+
+
+ ucHistroy.cs
+
+
+ UserControl
+
+
+ ucMainStatus.cs
+
+
+ UserControl
+
+
+ ucModuleMainB.cs
+
+
+ UserControl
+
+
+ ucParamSet.cs
+
+
+ UserControl
+
+
+ ucShelfStatus.cs
+
+
+ UserControl
+
+
+ ucStatus.cs
+
+
+ UserControl
+
+
+ ucTargetControl.cs
+
+
+ UserControl
+
+
+ ucTftpClientcs.cs
+
+
+ UserControl
+
+
+ ucModuleMainA.cs
+
+
+
+
+ Form
+
+
+ fmxEtcStatus.cs
+
+
+ Form
+
+
+ fmxExcelFile.cs
+
+
+ Form
+
+
+ fmxFwImageConverter.cs
+
+
+ Form
+
+
+ fmxCalibration.cs
+
+
+ Form
+
+
+ fmxFwUpdate.cs
+
+
+ Form
+
+
+ fmxFwUpdateTftp.cs
+
+
+ Form
+
+
+ fmxHistory.cs
+
+
+ Form
+
+
+ fmxInventoryConfig.cs
+
+
+ Form
+
+
+ fmxModuleDetail.cs
+
+
+ Form
+
+
+ fmxParamConfig.cs
+
+
+ Form
+
+
+ fmxSystemSet.cs
+
+
+ Form
+
+
+ fmxWait.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ fmxCommConfig.cs
+
+
+ Form
+
+
+ fmxMain.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ucCalibration.cs
+
+
+ ucCalibrationView.cs
+
+
+ ucCommConfig.cs
+
+
+ ucDataLog.cs
+
+
+ ucEtcStatusView.cs
+
+
+ ucEventLog.cs
+
+
+ ucHistroy.cs
+
+
+ ucMainStatus.cs
+
+
+ ucModuleMainA.cs
+
+
+ ucModuleMainB.cs
+
+
+ ucParamSet.cs
+
+
+ ucShelfStatus.cs
+
+
+ ucStatus.cs
+
+
+ ucTargetControl.cs
+
+
+ ucTftpClientcs.cs
+
+
+ fmxEtcStatus.cs
+
+
+ fmxExcelFile.cs
+
+
+ fmxFwImageConverter.cs
+
+
+ fmxCalibration.cs
+
+
+ fmxCommConfig.cs
+
+
+ fmxFwUpdate.cs
+
+
+ fmxFwUpdateTftp.cs
+
+
+ fmxHistory.cs
+
+
+ fmxInventoryConfig.cs
+
+
+ fmxMain.cs
+
+
+ fmxModuleDetail.cs
+
+
+ fmxParamConfig.cs
+
+
+ fmxSystemSet.cs
+
+
+ fmxWait.cs
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if not exist "$(TargetDir)\Library" mkdir "$(TargetDir)\Library"
+if not exist "$(TargetDir)\Library\kerneldlls" mkdir "$(TargetDir)\Library\kerneldlls"
+move "$(TargetDir)\*.dll" "$(TargetDir)\Library"
+move "$(TargetDir)\*.pdb" "$(TargetDir)\Library"
+move "$(TargetDir)\*.xml" "$(TargetDir)\Library"
+copy "$(ProjectDir)\dll\*.dll" "$(TargetDir)\Library"
+copy "$(ProjectDir)\dll\kerneldlls\*.*" "$(TargetDir)\Library\kerneldlls"
+
+if not exist "$(TargetDir)\sql" mkdir "$(TargetDir)\sql"
+copy "$(ProjectDir)\DB Schema\*.sql" "$(TargetDir)\sql"
+
+
+ if exist "$(TargetDir)\library" rmdir /s /q "$(TargetDir)\library"
+if exist "$(TargetDir)\sql" rmdir /s /q "$(TargetDir)\sql"
+
+
+
+ 이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다.
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/LFP_Manager_GL.csproj.bak b/LFP_Manager/LFP_Manager_GL.csproj.bak
new file mode 100644
index 0000000..ea0297e
--- /dev/null
+++ b/LFP_Manager/LFP_Manager_GL.csproj.bak
@@ -0,0 +1,526 @@
+
+
+
+
+ Debug
+ AnyCPU
+ 9.0.21022
+ 2.0
+ {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}
+ WinExe
+ Properties
+ LFP_Manager
+ LFP_Manager_GL
+ v4.5.2
+ 512
+
+
+ 3.5
+
+
+
+
+
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ x86
+ false
+
+
+ pdbonly
+ false
+ bin\Release\
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ x86
+ false
+
+
+ Resources\AMO_LOGO.ico
+
+
+
+
+ True
+
+
+ True
+
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+
+ True
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+ True
+
+
+ True
+
+
+
+ True
+
+
+
+ True
+
+
+
+
+ ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll
+
+
+ ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll
+
+
+ dll\IPAddressControlLib.dll
+
+
+ dll\log4net.dll
+
+
+ False
+ dll\SnmpSharpNet.dll
+
+
+
+
+
+ 3.5
+
+
+
+ ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net451\System.Data.SQLite.dll
+
+
+ ..\packages\System.Data.SQLite.EF6.1.0.113.0\lib\net451\System.Data.SQLite.EF6.dll
+
+
+ ..\packages\System.Data.SQLite.Linq.1.0.113.0\lib\net451\System.Data.SQLite.Linq.dll
+
+
+
+
+
+
+
+
+ 3.5
+
+
+ 3.5
+
+
+
+
+
+
+
+ dll\Tftp.Net.dll
+
+
+
+
+ UserControl
+
+
+ ucCalibration.cs
+
+
+ UserControl
+
+
+ ucCalibrationView.cs
+
+
+ UserControl
+
+
+ ucCommConfig.cs
+
+
+ UserControl
+
+
+ ucDataLog.cs
+
+
+ UserControl
+
+
+ ucEtcStatusView.cs
+
+
+ UserControl
+
+
+ ucEventLog.cs
+
+
+ UserControl
+
+
+ ucHistroy.cs
+
+
+ UserControl
+
+
+ ucMainStatus.cs
+
+
+ UserControl
+
+
+ ucModuleMainB.cs
+
+
+ UserControl
+
+
+ ucParamSet.cs
+
+
+ UserControl
+
+
+ ucShelfStatus.cs
+
+
+ UserControl
+
+
+ ucStatus.cs
+
+
+ UserControl
+
+
+ ucTargetControl.cs
+
+
+ UserControl
+
+
+ ucTftpClientcs.cs
+
+
+ UserControl
+
+
+ ucModuleMainA.cs
+
+
+
+
+ Form
+
+
+ fmxEtcStatus.cs
+
+
+ Form
+
+
+ fmxExcelFile.cs
+
+
+ Form
+
+
+ fmxFwImageConverter.cs
+
+
+ Form
+
+
+ fmxCalibration.cs
+
+
+ Form
+
+
+ fmxFwUpdate.cs
+
+
+ Form
+
+
+ fmxFwUpdateTftp.cs
+
+
+ Form
+
+
+ fmxHistory.cs
+
+
+ Form
+
+
+ fmxInventoryConfig.cs
+
+
+ Form
+
+
+ fmxModuleDetail.cs
+
+
+ Form
+
+
+ fmxParamConfig.cs
+
+
+ Form
+
+
+ fmxSystemSet.cs
+
+
+ Form
+
+
+ fmxWait.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ fmxCommConfig.cs
+
+
+ Form
+
+
+ fmxMain.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ucCalibration.cs
+
+
+ ucCalibrationView.cs
+
+
+ ucCommConfig.cs
+
+
+ ucDataLog.cs
+
+
+ ucEtcStatusView.cs
+
+
+ ucEventLog.cs
+
+
+ ucHistroy.cs
+
+
+ ucMainStatus.cs
+
+
+ ucModuleMainA.cs
+
+
+ ucModuleMainB.cs
+
+
+ ucParamSet.cs
+
+
+ ucShelfStatus.cs
+
+
+ ucStatus.cs
+
+
+ ucTargetControl.cs
+
+
+ ucTftpClientcs.cs
+
+
+ fmxEtcStatus.cs
+
+
+ fmxExcelFile.cs
+
+
+ fmxFwImageConverter.cs
+
+
+ fmxCalibration.cs
+
+
+ fmxCommConfig.cs
+
+
+ fmxFwUpdate.cs
+
+
+ fmxFwUpdateTftp.cs
+
+
+ fmxHistory.cs
+
+
+ fmxInventoryConfig.cs
+
+
+ fmxMain.cs
+
+
+ fmxModuleDetail.cs
+
+
+ fmxParamConfig.cs
+
+
+ fmxSystemSet.cs
+
+
+ fmxWait.cs
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if not exist "$(TargetDir)\Library" mkdir "$(TargetDir)\Library"
+if not exist "$(TargetDir)\Library\kerneldlls" mkdir "$(TargetDir)\Library\kerneldlls"
+move "$(TargetDir)\*.dll" "$(TargetDir)\Library"
+move "$(TargetDir)\*.pdb" "$(TargetDir)\Library"
+move "$(TargetDir)\*.xml" "$(TargetDir)\Library"
+copy "$(ProjectDir)\dll\*.dll" "$(TargetDir)\Library"
+copy "$(ProjectDir)\dll\kerneldlls\*.*" "$(TargetDir)\Library\kerneldlls"
+
+if not exist "$(TargetDir)\sql" mkdir "$(TargetDir)\sql"
+copy "$(ProjectDir)\DB Schema\*.sql" "$(TargetDir)\sql"
+
+
+ if exist "$(TargetDir)\library" rmdir /s /q "$(TargetDir)\library"
+if exist "$(TargetDir)\sql" rmdir /s /q "$(TargetDir)\sql"
+
+
+
+ 이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다.
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/LFP_Manager_JP.csproj.bak b/LFP_Manager/LFP_Manager_JP.csproj.bak
new file mode 100644
index 0000000..ed92028
--- /dev/null
+++ b/LFP_Manager/LFP_Manager_JP.csproj.bak
@@ -0,0 +1,411 @@
+
+
+
+ Debug
+ AnyCPU
+ 9.0.21022
+ 2.0
+ {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}
+ WinExe
+ Properties
+ LFP_Manager
+ LFP_Manager_JP
+ v4.5.2
+ 512
+
+
+ 3.5
+
+
+
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ x86
+ false
+
+
+ pdbonly
+ false
+ bin\Release\
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ x86
+ false
+
+
+ Resources\AMO_LOGO.ico
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+ True
+
+
+
+ True
+
+
+ dll\IPAddressControlLib.dll
+
+
+ dll\log4net.dll
+
+
+ False
+ dll\SnmpSharpNet.dll
+
+
+
+
+ 3.5
+
+
+ False
+ dll\System.Data.SQLite.dll
+
+
+
+
+
+ 3.5
+
+
+ 3.5
+
+
+
+
+
+
+
+ dll\Tftp.Net.dll
+
+
+
+
+ UserControl
+
+
+ ucCalibration.cs
+
+
+ UserControl
+
+
+ ucCommConfig.cs
+
+
+ UserControl
+
+
+ ucDataLog.cs
+
+
+ UserControl
+
+
+ ucEventLog.cs
+
+
+ UserControl
+
+
+ ucHistroy.cs
+
+
+ UserControl
+
+
+ ucMainStatus.cs
+
+
+ UserControl
+
+
+ ucParamSet.cs
+
+
+ UserControl
+
+
+ ucShelfStatus.cs
+
+
+ UserControl
+
+
+ ucStatus.cs
+
+
+ UserControl
+
+
+ ucTargetControl.cs
+
+
+ UserControl
+
+
+ ucTftpClientcs.cs
+
+
+
+
+ Form
+
+
+ fmxExcelFile.cs
+
+
+ Form
+
+
+ fmxFwImageConverter.cs
+
+
+ Form
+
+
+ fmxCalibration.cs
+
+
+ Form
+
+
+ fmxFwUpdate.cs
+
+
+ Form
+
+
+ fmxFwUpdateTftp.cs
+
+
+ Form
+
+
+ fmxHistorycs.cs
+
+
+ Form
+
+
+ fmxInventoryConfig.cs
+
+
+ Form
+
+
+ fmxParamConfig.cs
+
+
+ Form
+
+
+ fmxSystemSet.cs
+
+
+ Form
+
+
+ fmxWait.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ fmxCommConfig.cs
+
+
+ Form
+
+
+ fmxMain.cs
+
+
+
+
+
+
+
+
+
+
+
+
+ ucCalibration.cs
+
+
+ ucCommConfig.cs
+
+
+ ucDataLog.cs
+
+
+ ucEventLog.cs
+
+
+ ucHistroy.cs
+
+
+ ucMainStatus.cs
+
+
+ ucParamSet.cs
+
+
+ ucShelfStatus.cs
+
+
+ ucStatus.cs
+
+
+ ucTargetControl.cs
+
+
+ ucTftpClientcs.cs
+
+
+ fmxExcelFile.cs
+
+
+ fmxFwImageConverter.cs
+
+
+ fmxCalibration.cs
+
+
+ fmxCommConfig.cs
+
+
+ fmxFwUpdate.cs
+
+
+ fmxFwUpdateTftp.cs
+
+
+ fmxHistorycs.cs
+
+
+ fmxInventoryConfig.cs
+
+
+ fmxMain.cs
+
+
+ fmxParamConfig.cs
+
+
+ fmxSystemSet.cs
+
+
+ fmxWait.cs
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if not exist "$(TargetDir)\Library" mkdir "$(TargetDir)\Library"
+move "$(TargetDir)\*.dll" "$(TargetDir)\Library"
+move "$(TargetDir)\*.pdb" "$(TargetDir)\Library"
+move "$(TargetDir)\*.xml" "$(TargetDir)\Library"
+
+
+ if not exist "$(TargetDir)\sql" mkdir "$(TargetDir)\sql"
+copy "$(ProjectDir)\DB Schema\*.sql" "$(TargetDir)\sql"
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/LFP_Manager_M20.csproj.bak b/LFP_Manager/LFP_Manager_M20.csproj.bak
new file mode 100644
index 0000000..4641307
--- /dev/null
+++ b/LFP_Manager/LFP_Manager_M20.csproj.bak
@@ -0,0 +1,508 @@
+
+
+
+
+ Debug
+ AnyCPU
+ 9.0.21022
+ 2.0
+ {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}
+ WinExe
+ Properties
+ LFP_Manager
+ LFP_Manager_M20
+ v4.8
+ 512
+
+
+ 3.5
+
+
+
+
+
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ x86
+ false
+
+
+ pdbonly
+ false
+ bin\Release\
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ x86
+ false
+
+
+ Resources\AMO_LOGO.ico
+
+
+
+
+ True
+
+
+ True
+
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+
+ True
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+ True
+
+
+ True
+
+
+
+ True
+
+
+
+ True
+
+
+
+
+ ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll
+
+
+ ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll
+
+
+ dll\IPAddressControlLib.dll
+
+
+ dll\log4net.dll
+
+
+ False
+ dll\SnmpSharpNet.dll
+
+
+
+
+
+ 3.5
+
+
+
+ ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net451\System.Data.SQLite.dll
+
+
+ ..\packages\System.Data.SQLite.EF6.1.0.113.0\lib\net451\System.Data.SQLite.EF6.dll
+
+
+ ..\packages\System.Data.SQLite.Linq.1.0.113.0\lib\net451\System.Data.SQLite.Linq.dll
+
+
+
+
+
+
+
+
+ 3.5
+
+
+ 3.5
+
+
+
+
+
+
+
+ dll\Tftp.Net.dll
+
+
+
+
+ UserControl
+
+
+ ucCalibration.cs
+
+
+ UserControl
+
+
+ ucCalibrationView.cs
+
+
+ UserControl
+
+
+ ucCommConfig.cs
+
+
+ UserControl
+
+
+ ucDataLog.cs
+
+
+ UserControl
+
+
+ ucEventLog.cs
+
+
+ UserControl
+
+
+ ucHistroy.cs
+
+
+ UserControl
+
+
+ ucMainStatus.cs
+
+
+ UserControl
+
+
+ ucModuleMainB.cs
+
+
+ UserControl
+
+
+ ucParamSet.cs
+
+
+ UserControl
+
+
+ ucShelfStatus.cs
+
+
+ UserControl
+
+
+ ucStatus.cs
+
+
+ UserControl
+
+
+ ucTargetControl.cs
+
+
+ UserControl
+
+
+ ucTftpClientcs.cs
+
+
+ UserControl
+
+
+ ucModuleMainA.cs
+
+
+
+
+ Form
+
+
+ fmxExcelFile.cs
+
+
+ Form
+
+
+ fmxFwImageConverter.cs
+
+
+ Form
+
+
+ fmxCalibration.cs
+
+
+ Form
+
+
+ fmxFwUpdate.cs
+
+
+ Form
+
+
+ fmxFwUpdateTftp.cs
+
+
+ Form
+
+
+ fmxHistory.cs
+
+
+ Form
+
+
+ fmxInventoryConfig.cs
+
+
+ Form
+
+
+ fmxModuleDetail.cs
+
+
+ Form
+
+
+ fmxParamConfig.cs
+
+
+ Form
+
+
+ fmxSystemSet.cs
+
+
+ Form
+
+
+ fmxWait.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ fmxCommConfig.cs
+
+
+ Form
+
+
+ fmxMain.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ucCalibration.cs
+
+
+ ucCalibrationView.cs
+
+
+ ucCommConfig.cs
+
+
+ ucDataLog.cs
+
+
+ ucEventLog.cs
+
+
+ ucHistroy.cs
+
+
+ ucMainStatus.cs
+
+
+ ucModuleMainA.cs
+
+
+ ucModuleMainB.cs
+
+
+ ucParamSet.cs
+
+
+ ucShelfStatus.cs
+
+
+ ucStatus.cs
+
+
+ ucTargetControl.cs
+
+
+ ucTftpClientcs.cs
+
+
+ fmxExcelFile.cs
+
+
+ fmxFwImageConverter.cs
+
+
+ fmxCalibration.cs
+
+
+ fmxCommConfig.cs
+
+
+ fmxFwUpdate.cs
+
+
+ fmxFwUpdateTftp.cs
+
+
+ fmxHistory.cs
+
+
+ fmxInventoryConfig.cs
+
+
+ fmxMain.cs
+
+
+ fmxModuleDetail.cs
+
+
+ fmxParamConfig.cs
+
+
+ fmxSystemSet.cs
+
+
+ fmxWait.cs
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if not exist "$(TargetDir)\Library" mkdir "$(TargetDir)\Library"
+if not exist "$(TargetDir)\Library\kerneldlls" mkdir "$(TargetDir)\Library\kerneldlls"
+move "$(TargetDir)\*.dll" "$(TargetDir)\Library"
+move "$(TargetDir)\*.pdb" "$(TargetDir)\Library"
+move "$(TargetDir)\*.xml" "$(TargetDir)\Library"
+copy "$(ProjectDir)\dll\*.dll" "$(TargetDir)\Library"
+copy "$(ProjectDir)\dll\kerneldlls\*.*" "$(TargetDir)\Library\kerneldlls"
+
+if not exist "$(TargetDir)\sql" mkdir "$(TargetDir)\sql"
+copy "$(ProjectDir)\DB Schema\*.sql" "$(TargetDir)\sql"
+
+
+ if exist "$(TargetDir)\library" rmdir /s /q "$(TargetDir)\library"
+if exist "$(TargetDir)\sql" rmdir /s /q "$(TargetDir)\sql"
+
+
+
+ 이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다.
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/LFP_Manager_SB.csproj b/LFP_Manager/LFP_Manager_SB.csproj
new file mode 100644
index 0000000..8e08334
--- /dev/null
+++ b/LFP_Manager/LFP_Manager_SB.csproj
@@ -0,0 +1,652 @@
+
+
+
+
+
+ Debug
+ AnyCPU
+ 9.0.21022
+ 2.0
+ {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}
+ WinExe
+ Properties
+ LFP_Manager
+ LFP_Manager_SB
+ v4.8
+ 512
+
+
+ 3.5
+
+
+
+
+
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ x86
+ false
+
+
+ pdbonly
+ false
+ bin\Release\
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ x86
+ false
+
+
+ AMO_LOGO.ico
+
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+
+ True
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+ True
+
+
+ True
+
+
+
+ True
+
+
+
+ True
+
+
+
+
+
+ ..\packages\EntityFramework.6.5.1\lib\net45\EntityFramework.dll
+
+
+ ..\packages\EntityFramework.6.5.1\lib\net45\EntityFramework.SqlServer.dll
+
+
+ dll\IPAddressControlLib.dll
+
+
+ dll\log4net.dll
+
+
+ ..\packages\Microsoft.Bcl.AsyncInterfaces.9.0.5\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll
+
+
+ ..\packages\Microsoft.Extensions.Configuration.9.0.5\lib\net462\Microsoft.Extensions.Configuration.dll
+
+
+ ..\packages\Microsoft.Extensions.Configuration.Abstractions.9.0.5\lib\net462\Microsoft.Extensions.Configuration.Abstractions.dll
+
+
+ ..\packages\Microsoft.Extensions.Configuration.Binder.9.0.5\lib\net462\Microsoft.Extensions.Configuration.Binder.dll
+
+
+ ..\packages\Microsoft.Extensions.DependencyInjection.9.0.5\lib\net462\Microsoft.Extensions.DependencyInjection.dll
+
+
+ ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.9.0.5\lib\net462\Microsoft.Extensions.DependencyInjection.Abstractions.dll
+
+
+ ..\packages\Microsoft.Extensions.Logging.9.0.5\lib\net462\Microsoft.Extensions.Logging.dll
+
+
+ ..\packages\Microsoft.Extensions.Logging.Abstractions.9.0.5\lib\net462\Microsoft.Extensions.Logging.Abstractions.dll
+
+
+ ..\packages\Microsoft.Extensions.Logging.Configuration.9.0.5\lib\net462\Microsoft.Extensions.Logging.Configuration.dll
+
+
+ ..\packages\Microsoft.Extensions.Logging.Console.9.0.5\lib\net462\Microsoft.Extensions.Logging.Console.dll
+
+
+ ..\packages\Microsoft.Extensions.Logging.Debug.9.0.5\lib\net462\Microsoft.Extensions.Logging.Debug.dll
+
+
+ ..\packages\Microsoft.Extensions.Options.9.0.5\lib\net462\Microsoft.Extensions.Options.dll
+
+
+ ..\packages\Microsoft.Extensions.Options.ConfigurationExtensions.9.0.5\lib\net462\Microsoft.Extensions.Options.ConfigurationExtensions.dll
+
+
+ ..\packages\Microsoft.Extensions.Primitives.9.0.5\lib\net462\Microsoft.Extensions.Primitives.dll
+
+
+ False
+ dll\SnmpSharpNet.dll
+
+
+
+ ..\packages\System.Buffers.4.6.1\lib\net462\System.Buffers.dll
+
+
+
+
+ 3.5
+
+
+
+ ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0\lib\net46\System.Data.SQLite.dll
+
+
+ ..\packages\System.Data.SQLite.EF6.1.0.119.0\lib\net46\System.Data.SQLite.EF6.dll
+
+
+ ..\packages\System.Data.SQLite.Linq.1.0.119.0\lib\net46\System.Data.SQLite.Linq.dll
+
+
+ ..\packages\System.Diagnostics.DiagnosticSource.9.0.5\lib\net462\System.Diagnostics.DiagnosticSource.dll
+
+
+ ..\packages\System.IO.Pipelines.9.0.5\lib\net462\System.IO.Pipelines.dll
+
+
+ ..\packages\System.Memory.4.6.3\lib\net462\System.Memory.dll
+
+
+
+ ..\packages\System.Numerics.Vectors.4.6.1\lib\net462\System.Numerics.Vectors.dll
+
+
+
+ ..\packages\System.Runtime.CompilerServices.Unsafe.6.1.2\lib\net462\System.Runtime.CompilerServices.Unsafe.dll
+
+
+
+
+
+
+ ..\packages\System.Text.Encodings.Web.9.0.5\lib\net462\System.Text.Encodings.Web.dll
+
+
+ ..\packages\System.Text.Json.9.0.5\lib\net462\System.Text.Json.dll
+
+
+ ..\packages\System.Threading.Tasks.Extensions.4.6.3\lib\net462\System.Threading.Tasks.Extensions.dll
+
+
+
+
+ 3.5
+
+
+ 3.5
+
+
+
+
+
+
+
+ dll\Tftp.Net.dll
+
+
+
+
+ UserControl
+
+
+ UcAntiTheftControl.cs
+
+
+ UserControl
+
+
+ ucCalibration.cs
+
+
+ UserControl
+
+
+ ucCalibrationView.cs
+
+
+ UserControl
+
+
+ ucCommConfig.cs
+
+
+ UserControl
+
+
+ ucDataLog.cs
+
+
+ UserControl
+
+
+ ucEventLog.cs
+
+
+ UserControl
+
+
+ UcFaultAlarm.cs
+
+
+ UserControl
+
+
+ UcFaultAlarmGroup.cs
+
+
+ UserControl
+
+
+ ucHistroy.cs
+
+
+ UserControl
+
+
+ ucMainStatus.cs
+
+
+ UserControl
+
+
+ ucModuleMainB.cs
+
+
+ UserControl
+
+
+ ucModuleMainHeader.cs
+
+
+ UserControl
+
+
+ ucParamSet.cs
+
+
+ UserControl
+
+
+ ucShelfStatus.cs
+
+
+ UserControl
+
+
+ ucStatus.cs
+
+
+ UserControl
+
+
+ ucTargetControl.cs
+
+
+ UserControl
+
+
+ ucTftpClientcs.cs
+
+
+ UserControl
+
+
+ ucModuleMainA.cs
+
+
+
+
+
+
+
+ Form
+
+
+ fmxAntiTheft.cs
+
+
+ Form
+
+
+ FmxChangePw.cs
+
+
+ Form
+
+
+ fmxExcelFile.cs
+
+
+ Form
+
+
+ fmxCalibration.cs
+
+
+ Form
+
+
+ fmxFwUpdate.cs
+
+
+ Form
+
+
+ fmxHistory.cs
+
+
+ Form
+
+
+ FmxInformation.cs
+
+
+ Form
+
+
+ fmxInventoryConfig.cs
+
+
+ Form
+
+
+ FmxLevelConfig.cs
+
+
+ Form
+
+
+ fmxModuleDetail.cs
+
+
+ Form
+
+
+ fmxParamConfig.cs
+
+
+ Form
+
+
+ FmxPassword.cs
+
+
+ Form
+
+
+ FmxPasswordChange.cs
+
+
+ Form
+
+
+ fmxWait.cs
+
+
+
+
+
+
+
+
+ True
+ True
+ Resources.resx
+
+
+
+
+
+ Form
+
+
+ fmxCommConfig.cs
+
+
+ Form
+
+
+ fmxMain.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UcAntiTheftControl.cs
+
+
+ ucCalibration.cs
+
+
+ ucCalibrationView.cs
+
+
+ ucCommConfig.cs
+
+
+ ucDataLog.cs
+
+
+ ucEventLog.cs
+
+
+ UcFaultAlarm.cs
+
+
+ UcFaultAlarmGroup.cs
+
+
+ ucHistroy.cs
+
+
+ ucMainStatus.cs
+
+
+ ucModuleMainA.cs
+
+
+ ucModuleMainB.cs
+
+
+ ucModuleMainHeader.cs
+
+
+ ucParamSet.cs
+
+
+ ucShelfStatus.cs
+
+
+ ucStatus.cs
+
+
+ ucTargetControl.cs
+
+
+ ucTftpClientcs.cs
+
+
+ fmxAntiTheft.cs
+
+
+ FmxChangePw.cs
+
+
+ fmxExcelFile.cs
+
+
+ fmxCalibration.cs
+
+
+ fmxCommConfig.cs
+
+
+ fmxFwUpdate.cs
+
+
+ fmxHistory.cs
+
+
+ FmxInformation.cs
+
+
+ fmxInventoryConfig.cs
+
+
+ FmxLevelConfig.cs
+
+
+ fmxMain.cs
+
+
+ fmxModuleDetail.cs
+
+
+ fmxParamConfig.cs
+
+
+ FmxPassword.cs
+
+
+ FmxPasswordChange.cs
+
+
+ fmxWait.cs
+
+
+
+ ResXFileCodeGenerator
+ Designer
+ Resources.Designer.cs
+
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if not exist "$(TargetDir)\Library" mkdir "$(TargetDir)\Library"
+if not exist "$(TargetDir)\Library\kerneldlls" mkdir "$(TargetDir)\Library\kerneldlls"
+move "$(TargetDir)\*.dll" "$(TargetDir)\Library"
+move "$(TargetDir)\*.pdb" "$(TargetDir)\Library"
+move "$(TargetDir)\*.xml" "$(TargetDir)\Library"
+copy "$(ProjectDir)\dll\*.dll" "$(TargetDir)\Library"
+copy "$(ProjectDir)\dll\kerneldlls\*.*" "$(TargetDir)\Library\kerneldlls"
+
+if not exist "$(TargetDir)\sql" mkdir "$(TargetDir)\sql"
+copy "$(ProjectDir)\DB Schema\*.sql" "$(TargetDir)\sql"
+
+
+ if exist "$(TargetDir)\library" rmdir /s /q "$(TargetDir)\library"
+if exist "$(TargetDir)\sql" rmdir /s /q "$(TargetDir)\sql"
+
+
+
+ 이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다.
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Program.cs b/LFP_Manager/Program.cs
new file mode 100644
index 0000000..a0e08e6
--- /dev/null
+++ b/LFP_Manager/Program.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Windows.Forms;
+
+using LFP_Manager.Forms;
+
+namespace LFP_Manager
+{
+ static class Program
+ {
+ ///
+ /// The main entry point for the application.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new fmxMain());
+ }
+ }
+}
diff --git a/LFP_Manager/Properties/AssemblyInfo.cs b/LFP_Manager/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..cf3b7af
--- /dev/null
+++ b/LFP_Manager/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+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("LFP Monitor Program (LFP Module 48V Series)")]
+[assembly: AssemblyDescription("For LFPM-48xxxSB")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("AMG (Amogreentech)")]
+[assembly: AssemblyProduct("LFP Monitor - for Delta")]
+[assembly: AssemblyCopyright("Copyright 2025 © Amogreentech. Co., Ltd.")]
+[assembly: AssemblyTrademark("AMG Energy Solution")]
+[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("a97c6f26-af24-466a-888d-dfdba0e4bb78")]
+
+// 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.0.*")]
+[assembly: AssemblyVersion("1.0.0.6")]
+[assembly: AssemblyFileVersion("1.0.0.6")]
diff --git a/LFP_Manager/Properties/Resources.Designer.cs b/LFP_Manager/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..e0b45a1
--- /dev/null
+++ b/LFP_Manager/Properties/Resources.Designer.cs
@@ -0,0 +1,83 @@
+//------------------------------------------------------------------------------
+//
+// 이 코드는 도구를 사용하여 생성되었습니다.
+// 런타임 버전:4.0.30319.42000
+//
+// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
+// 이러한 변경 내용이 손실됩니다.
+//
+//------------------------------------------------------------------------------
+
+namespace LFP_Manager.Properties {
+ using System;
+
+
+ ///
+ /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다.
+ ///
+ // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder
+ // 클래스에서 자동으로 생성되었습니다.
+ // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을
+ // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오.
+ [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() {
+ }
+
+ ///
+ /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LFP_Manager.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을
+ /// 재정의합니다.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ ///
+ /// (아이콘)과(와) 유사한 System.Drawing.Icon 형식의 지역화된 리소스를 찾습니다.
+ ///
+ internal static System.Drawing.Icon AMO_LOGO {
+ get {
+ object obj = ResourceManager.GetObject("AMO_LOGO", resourceCulture);
+ return ((System.Drawing.Icon)(obj));
+ }
+ }
+
+ ///
+ /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
+ ///
+ internal static System.Drawing.Bitmap AMO_LOGO1 {
+ get {
+ object obj = ResourceManager.GetObject("AMO_LOGO1", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+ }
+}
diff --git a/LFP_Manager/Properties/Resources.resx b/LFP_Manager/Properties/Resources.resx
new file mode 100644
index 0000000..7491085
--- /dev/null
+++ b/LFP_Manager/Properties/Resources.resx
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+ ..\Resources\AMO_LOGO1.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\AMO_LOGO.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Properties/Settings.Designer.cs b/LFP_Manager/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..d696fde
--- /dev/null
+++ b/LFP_Manager/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+//
+// 이 코드는 도구를 사용하여 생성되었습니다.
+// 런타임 버전:4.0.30319.42000
+//
+// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
+// 이러한 변경 내용이 손실됩니다.
+//
+//------------------------------------------------------------------------------
+
+namespace LFP_Manager.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.3.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/LFP_Manager/Properties/Settings.settings b/LFP_Manager/Properties/Settings.settings
new file mode 100644
index 0000000..3964565
--- /dev/null
+++ b/LFP_Manager/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/LFP_Manager/Properties/licenses.licx b/LFP_Manager/Properties/licenses.licx
new file mode 100644
index 0000000..0465324
--- /dev/null
+++ b/LFP_Manager/Properties/licenses.licx
@@ -0,0 +1,10 @@
+DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.ProgressBarControl, DevExpress.XtraEditors.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraCharts.ChartControl, DevExpress.XtraCharts.v22.2.UI, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraGauges.Win.GaugeControl, DevExpress.XtraGauges.v22.2.Win, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraDataLayout.DataLayoutControl, DevExpress.XtraLayout.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
diff --git a/LFP_Manager/Properties/licenses.licx.bak b/LFP_Manager/Properties/licenses.licx.bak
new file mode 100644
index 0000000..9075858
--- /dev/null
+++ b/LFP_Manager/Properties/licenses.licx.bak
@@ -0,0 +1,13 @@
+DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraGauges.Win.GaugeControl, DevExpress.XtraGauges.v20.1.Win, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraBars.Navigation.OfficeNavigationBar, DevExpress.XtraBars.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraNavBar.NavBarControl, DevExpress.XtraNavBar.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.ProgressBarControl, DevExpress.XtraEditors.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraCharts.ChartControl, DevExpress.XtraCharts.v20.1.UI, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraTreeMap.TreeMapControl, DevExpress.XtraTreeMap.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.Utils.MVVM.MVVMContext, DevExpress.Utils.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
diff --git a/LFP_Manager/Resources/AMO_LOGO.ico b/LFP_Manager/Resources/AMO_LOGO.ico
new file mode 100644
index 0000000..a18b5d2
Binary files /dev/null and b/LFP_Manager/Resources/AMO_LOGO.ico differ
diff --git a/LFP_Manager/Resources/AMO_LOGO1.ico b/LFP_Manager/Resources/AMO_LOGO1.ico
new file mode 100644
index 0000000..a18b5d2
Binary files /dev/null and b/LFP_Manager/Resources/AMO_LOGO1.ico differ
diff --git a/LFP_Manager/Resources/SB_LOGO_250829.jpg b/LFP_Manager/Resources/SB_LOGO_250829.jpg
new file mode 100644
index 0000000..c391f8f
Binary files /dev/null and b/LFP_Manager/Resources/SB_LOGO_250829.jpg differ
diff --git a/LFP_Manager/Threads/CsSnmpThread.cs b/LFP_Manager/Threads/CsSnmpThread.cs
new file mode 100644
index 0000000..1a63c09
--- /dev/null
+++ b/LFP_Manager/Threads/CsSnmpThread.cs
@@ -0,0 +1,607 @@
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Utils;
+using SnmpSharpNet;
+using System;
+using System.Linq;
+using System.Net;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace LFP_Manager.Threads
+{
+ // 콜백 델리게이트
+ public delegate void SetResult(string result, bool error);
+ public delegate void DataUpdate(object sender, ref CsDeviceData.DeviceModuleData rData);
+
+ class CsSnmpThread
+ {
+ #region VARIABLES (상태)
+ private CsDeviceData.DeviceModuleData ModuleData;
+ private CommConfig Config;
+
+ // 스레드/토큰 기반 (Abort 제거)
+ private readonly CancellationTokenSource _cts = new CancellationTokenSource();
+ private Task _snmpTask;
+
+ // 상태 보호용 락
+ private readonly object _stateLock = new object();
+
+ // 실행 상태
+ private bool snmpThreadHold = true; // true = 정지, false = 동작
+ private string targetIP = "";
+ private bool AutoSnmpTx = true;
+
+ // OID 순회
+ private int OidIndex = 0;
+ private int OidMax = 0;
+ private string[] OidList = Array.Empty();
+
+ // 통신 타임아웃 카운터
+ private int CommTimeOut = 0;
+
+ // 결과 메시지 (레거시 호환)
+ private bool snmpDataRecv = false;
+ private string snmpResult = "";
+
+ // 대기중 SET 명령 (race 방지 위해 락으로 보호)
+ private int _pendingModeInt = 0;
+ private int _pendingModeStr = 0;
+ private UInt32 _pendingValue = 0;
+ private string _pendingString = null;
+
+ private long _lastUpdateTicks = 0;
+ private const int UpdateMinIntervalMs = 120;
+
+ // 이벤트
+ public event DataUpdate OnUpdate = null;
+ public event SetResult OnSetResult = null;
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public CsSnmpThread(CommConfig aConfig, ref CsDeviceData.DeviceModuleData mData)
+ {
+ Config = aConfig;
+ ModuleData = mData;
+
+ OidList = CsSnmpConstData.SnmpOidInfo ?? Array.Empty();
+ OidMax = OidList.Length;
+ OidIndex = 0;
+
+ _snmpTask = Task.Factory.StartNew(
+ () => snmpThreadFuncA(_cts.Token),
+ _cts.Token,
+ TaskCreationOptions.LongRunning,
+ TaskScheduler.Default);
+ }
+ #endregion
+
+ #region PUBLIC API
+ ///
+ /// 안전 종료 (Abort 제거)
+ ///
+ public void disposeThread()
+ {
+ Stop();
+ _cts.Cancel();
+ try { _snmpTask?.Wait(1500); } catch { /* ignore */ }
+ }
+
+ ///
+ /// 스레드 실행 시작/재시작
+ ///
+ public void Start(string IP, bool autoTx)
+ {
+ lock (_stateLock)
+ {
+ targetIP = IP ?? "";
+ AutoSnmpTx = autoTx;
+ snmpThreadHold = false;
+ }
+ }
+
+ ///
+ /// 스레드 일시정지
+ ///
+ public void Stop()
+ {
+ lock (_stateLock)
+ {
+ snmpThreadHold = true;
+ }
+ }
+
+ ///
+ /// true면 정지 상태
+ ///
+ public bool GetStatus()
+ {
+ lock (_stateLock) { return snmpThreadHold; }
+ }
+
+ ///
+ /// 레거시: 마지막 결과 문자열 반환 후 플래그 리셋
+ ///
+ public string GetResult()
+ {
+ lock (_stateLock)
+ {
+ if (snmpDataRecv)
+ {
+ snmpDataRecv = false;
+ return snmpResult;
+ }
+ }
+ return "";
+ }
+
+ public void SetAutoTx(bool autoTx)
+ {
+ lock (_stateLock) { AutoSnmpTx = autoTx; }
+ }
+
+ public string GetSnmpOidInfo(int index)
+ {
+ if (index < 0 || index >= OidMax) return null;
+ return OidList[index];
+ }
+
+ ///
+ /// 정수형 SET 명령 예약
+ ///
+ public void SetDataBySnmp(int mode, UInt32 value)
+ {
+ lock (_stateLock)
+ {
+ _pendingModeInt = mode;
+ _pendingValue = value;
+ }
+ }
+
+ ///
+ /// 문자열 SET 명령 예약
+ ///
+ public void SetDataBySnmp(int mode, string value)
+ {
+ lock (_stateLock)
+ {
+ _pendingModeStr = mode;
+ _pendingString = value;
+ }
+ }
+ #endregion
+
+ #region COMM. THREAD
+
+ private void snmpThreadFuncA(CancellationToken ct)
+ {
+ var wait = new ManualResetEventSlim(false);
+ int backoffMs = 50; // 정상 루프 기본 지연
+
+ while (!ct.IsCancellationRequested)
+ {
+ bool hold;
+ string ip;
+ bool autoTx;
+
+ lock (_stateLock)
+ {
+ hold = snmpThreadHold;
+ ip = targetIP;
+ autoTx = AutoSnmpTx;
+ }
+
+ if (hold || string.IsNullOrWhiteSpace(ip))
+ {
+ // 대기
+ wait.Wait(TimeSpan.FromMilliseconds(500), ct);
+ continue;
+ }
+
+ // Target 생성 및 재사용 범위
+ if (!TryParseIp(ip, out var addr))
+ {
+ OnSetResultSafe($"Invalid IP address: {ip}", true);
+ wait.Wait(TimeSpan.FromMilliseconds(1000), ct);
+ continue;
+ }
+
+ var param = CreateAgentParams(); // 커뮤니티/버전 통일
+
+ using (var target = new UdpTarget(addr, 161, 1000, 1))
+ {
+ var pdu = new Pdu(PduType.Get);
+
+ while (!ct.IsCancellationRequested)
+ {
+ lock (_stateLock)
+ {
+ if (snmpThreadHold) break;
+ }
+
+ // 1) 대기중 SET 우선 처리
+ int modeInt, modeStr;
+ UInt32 setVal;
+ string setStr;
+
+ lock (_stateLock)
+ {
+ modeInt = _pendingModeInt;
+ modeStr = _pendingModeStr;
+ setVal = _pendingValue;
+ setStr = _pendingString;
+
+ _pendingModeInt = 0;
+ _pendingModeStr = 0;
+ _pendingString = null;
+ }
+
+ if (modeInt != 0 || modeStr != 0)
+ {
+ int mode = (modeInt != 0) ? modeInt : modeStr;
+ bool err = SetCmdbySnmp(target, mode, setVal, setStr);
+ backoffMs = err ? Math.Min(backoffMs * 2, 2000) : 100; // 에러 시 백오프
+ continue;
+ }
+
+ // 2) GET 폴링
+ autoTx = AutoSnmpTx;
+ if (!autoTx)
+ {
+ wait.Wait(TimeSpan.FromMilliseconds(200), ct);
+ continue;
+ }
+
+ if (OidMax == 0)
+ {
+ OnSetResultSafe("SNMP OID list is empty.", true);
+ wait.Wait(TimeSpan.FromMilliseconds(1000), ct);
+ continue;
+ }
+
+ int idx = NextOidIndex();
+ string oid = GetSnmpOidInfo(idx);
+ if (string.IsNullOrEmpty(oid))
+ {
+ Thread.Sleep(100);
+ continue;
+ }
+
+ pdu.VbList.Clear();
+ pdu.VbList.Add(oid);
+
+ try
+ {
+ target.Timeout = 500;
+
+ OnSetResultSafe(csLog.trx_msg_print(
+ $"SEND {target.Address}: OID [{pdu.VbList[0].Oid}]", 0), false);
+
+ var packet = (SnmpV1Packet)target.Request(pdu, param);
+ if (packet == null)
+ {
+ HandleNoResponse(ref backoffMs);
+ continue;
+ }
+
+ if (packet.Pdu.ErrorStatus != 0)
+ {
+ string oidTxt = (packet.Pdu.VbList.Count > 0)
+ ? packet.Pdu.VbList[0].Oid.ToString()
+ : "(no vb)";
+
+ OnSetResultSafe(csLog.trx_msg_print(
+ $"Error in SNMP reply. Error {packet.Pdu.ErrorStatus} index {packet.Pdu.ErrorIndex} - {oidTxt}", 1), true);
+
+ HandleCommFailStep(ref backoffMs);
+ continue;
+ }
+
+ if (packet.Pdu.VbList.Count == 0)
+ {
+ OnSetResultSafe("SNMP reply has empty VbList.", true);
+ HandleCommFailStep(ref backoffMs);
+ continue;
+ }
+
+ var vb = packet.Pdu.VbList[0];
+
+ OnSetResultSafe(csLog.trx_msg_print(
+ $"RECV {target.Address}: OID [{vb.Oid}]: [{vb.Value}]", 1), false);
+
+ // 특정 트리만 반영 (1.3.6.1.2.1.15.*) → 필요에 맞게 수정하세요.
+ if (TryParseShelfOid(vb, out uint leaf))
+ {
+ if (vb.Value.Type == AsnType.OCTETSTRING)
+ {
+ try
+ {
+ csMakeDataFunction.SetSnmpData((int)leaf, vb.Value.ToString(), ref ModuleData);
+ }
+ catch (Exception ex)
+ {
+ OnSetResultSafe($"{NowPrefix()} {ex.Message}", true);
+ }
+ }
+
+ CalcAvgTemperatureModule(ref ModuleData, (uint)ModuleData.tempQty);
+ CheckShelfCommFail(ref ModuleData);
+
+ var nowTicks = Environment.TickCount;
+ if (nowTicks - _lastUpdateTicks >= UpdateMinIntervalMs)
+ {
+ OnUpdate?.Invoke(this, ref ModuleData);
+ _lastUpdateTicks = nowTicks;
+ }
+ }
+
+ CommTimeOut = 0;
+ ModuleData.CommFail = false;
+ backoffMs = 50;
+
+ Thread.Sleep(backoffMs);
+ }
+ catch (Exception ex)
+ {
+ string curOid = pdu.VbList.Count > 0 ? pdu.VbList[0].Oid.ToString() : "(no oid)";
+ OnSetResultSafe(csLog.trx_msg_print(
+ $"Exception in SNMP reply. OID {curOid}: {ex.Message}", 1), true);
+
+ HandleCommFailStep(ref backoffMs);
+ }
+ } // inner while
+ } // using target
+
+ Thread.Sleep(500);
+ } // outer while
+ }
+ #endregion
+
+ #region SNMP HELPERS
+ private AgentParameters CreateAgentParams()
+ {
+ // 커뮤니티/버전 통일: v1 + "public" (필요시 Ver2로 변경)
+ // Ver2가 가능하면: new AgentParameters(SnmpVersion.Ver2, new OctetString("public"));
+ return new AgentParameters(SnmpVersion.Ver1, new OctetString("admin"));
+ }
+
+ private bool SetCmdbySnmp(UdpTarget sTarget, int mode, UInt32 value, string svalue)
+ {
+ bool resultError = false;
+ var SetPdu = new Pdu(PduType.Set);
+ SetPdu.VbList.Clear();
+
+ // 모드별 OID 매핑 (기존 코드 유지)
+ switch (mode)
+ {
+ case 1: // Reset Command
+ SetPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.13.1.0"), new Integer32(Convert.ToInt32(value)));
+ break;
+ case 2: // Module Quantity Set
+ SetPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.2.4.0"), new Integer32(Convert.ToInt32(value)));
+ break;
+ case 3: // Alarm Output Mode
+ SetPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.2.5.0"), new Integer32(Convert.ToInt32(value)));
+ break;
+ case 4: // Manufacture Date
+ SetPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.2.6.0"), new Integer32(Convert.ToInt32(value)));
+ break;
+ case 5: // BMS Serial Number
+ SetPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.2.7.0"), new OctetString(svalue ?? ""));
+ break;
+ default:
+ OnSetResultSafe($"Unsupported SET mode: {mode}", true);
+ return true;
+ }
+
+ try
+ {
+ var aparam = CreateAgentParams();
+ var result = sTarget.Request(SetPdu, aparam) as SnmpV1Packet;
+
+ if (result == null)
+ {
+ OnSetResultSafe($"{NowPrefix()} No response received from SNMP agent.", true);
+ return true;
+ }
+
+ if (result.Pdu.ErrorStatus != 0)
+ {
+ string oidTxt = (result.Pdu.VbList.Count > 0)
+ ? result.Pdu.VbList[0].Oid.ToString()
+ : "(no vb)";
+
+ OnSetResultSafe($"Error in SNMP SET. Error {result.Pdu.ErrorStatus} index {result.Pdu.ErrorIndex} - {oidTxt}", true);
+ return true;
+ }
+
+ var vbOk = result.Pdu.VbList.Count > 0 ? result.Pdu.VbList[0] : null;
+ var val = vbOk != null ? vbOk.Value.ToString() : "(no vb)";
+ OnSetResultSafe($"SNMP SET OK. OID [{vbOk?.Oid}] -> [{val}]", false);
+ return false;
+ }
+ catch (Exception ex)
+ {
+ OnSetResultSafe($"{NowPrefix()} Exception: {ex.Message}", true);
+ resultError = true;
+ }
+
+ return resultError;
+ }
+
+ private static bool TryParseIp(string ip, out IPAddress addr)
+ {
+ if (IPAddress.TryParse(ip, out addr)) return true;
+ try
+ {
+ var host = Dns.GetHostEntry(ip);
+ addr = host?.AddressList?.FirstOrDefault(a => a.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork);
+ return addr != null;
+ }
+ catch { addr = null; return false; }
+ }
+
+ private int NextOidIndex()
+ {
+ // 간단한 라운드로빈
+ int next = Interlocked.Increment(ref OidIndex);
+ if (OidMax == 0) return 0;
+ next %= OidMax;
+ if (next < 0) next += OidMax;
+ return next;
+ }
+
+ private static bool TryParseShelfOid(Vb vb, out uint leaf)
+ {
+ leaf = 0;
+ if (vb?.Oid == null) return false;
+
+ // OID를 문자열로 받아 숫자 배열로 파싱
+ // 예: ".1.3.6.1.2.1.15.7.0" 또는 "1.3.6.1.2.1.15.7.0"
+ string oidStr = vb.Oid.ToString();
+ if (string.IsNullOrWhiteSpace(oidStr)) return false;
+
+ // 선행 '.' 제거 후 분해
+ var parts = oidStr.Trim('.').Split('.');
+ if (parts.Length < 8) return false;
+
+ // 숫자 배열로 변환 (변환 실패 시 false)
+ uint[] ids = new uint[parts.Length];
+ for (int i = 0; i < parts.Length; i++)
+ {
+ if (!uint.TryParse(parts[i], out ids[i]))
+ return false;
+ }
+
+ // 예시 트리: 1.3.6.1.2.1.15.x.*
+ if (ids[0] == 1 && ids[1] == 3 && ids[2] == 6 &&
+ ids[3] == 1 && ids[4] == 2 && ids[5] == 1 &&
+ ids[6] == 15)
+ {
+ leaf = ids[7];
+ return true;
+ }
+
+ return false;
+ }
+
+ private void HandleNoResponse(ref int backoffMs)
+ {
+ lock (_stateLock)
+ {
+ if (!snmpDataRecv)
+ {
+ snmpResult = $"{NowPrefix()} No response received from SNMP agent.";
+ snmpDataRecv = true;
+ OnSetResult?.Invoke(snmpResult, true);
+ }
+ }
+
+ CommTimeOut++;
+ if (CommTimeOut >= 10)
+ {
+ ModuleData.Reset();
+ ModuleData.CommFail = true;
+
+ var nowTicks = Environment.TickCount;
+ if (nowTicks - _lastUpdateTicks >= UpdateMinIntervalMs)
+ {
+ OnUpdate?.Invoke(this, ref ModuleData);
+ _lastUpdateTicks = nowTicks;
+ }
+
+ CommTimeOut = 10;
+ }
+ Thread.Sleep(backoffMs = Math.Min(backoffMs * 2, 2000));
+ }
+
+ private void HandleCommFailStep(ref int backoffMs)
+ {
+ CommTimeOut++;
+ if (CommTimeOut >= 10)
+ {
+ ModuleData.Reset();
+ ModuleData.CommFail = true;
+
+ var nowTicks = Environment.TickCount;
+ if (nowTicks - _lastUpdateTicks >= UpdateMinIntervalMs)
+ {
+ OnUpdate?.Invoke(this, ref ModuleData);
+ _lastUpdateTicks = nowTicks;
+ }
+
+ CommTimeOut = 10;
+ }
+ Thread.Sleep(backoffMs = Math.Min(backoffMs * 2, 2000));
+ }
+
+ private void OnSetResultSafe(string msg, bool error)
+ {
+ try { OnSetResult?.Invoke(msg, error); } catch { /* swallow */ }
+ }
+
+ private static string NowPrefix() => DateTime.Now.ToString("[yyyy-MM-dd HH:mm:ss] ");
+ #endregion
+
+ #region DOMAIN HELPERS (기존 함수 보강/유지)
+ private void CheckShelfCommFail(ref CsDeviceData.DeviceModuleData mData)
+ {
+ // 상태코드 0x0003 → ShelfCommFail=true (기존 가정 유지)
+ if (mData.StatusData.batteryStatus == 0x0003) { mData.ShelfCommFail = true; }
+ else { mData.ShelfCommFail = false; }
+ }
+
+ // 기존 코드 유지 (평균/최대/최소 계산)
+ static void CalcAvgTemperatureModule(ref CsDeviceData.DeviceModuleData mData, UInt32 tSize)
+ {
+ short i, j;
+ int sum;
+ TMinMax min, max;
+
+ min = new TMinMax();
+ max = new TMinMax();
+
+ sum = 0;
+ max.value = 0;
+ max.num = 0;
+ min.value = 0;
+ min.num = 0;
+
+ j = 0;
+ for (i = 0; i < tSize; i++)
+ {
+ if (j == 0)
+ {
+ max.value = mData.ValueData.CellTemperature[i];
+ max.num = i;
+ min.value = mData.ValueData.CellTemperature[i];
+ min.num = i;
+ }
+
+ if (max.value < mData.ValueData.CellTemperature[i])
+ {
+ max.value = mData.ValueData.CellTemperature[i];
+ max.num = i;
+ }
+ if (min.value > mData.ValueData.CellTemperature[i])
+ {
+ min.value = mData.ValueData.CellTemperature[i];
+ min.num = i;
+ }
+
+ sum += mData.ValueData.CellTemperature[i];
+ j++;
+ }
+
+ if (j == 0) { mData.AvgData.avgTemp = 0; }
+ else { mData.AvgData.avgTemp = (short)(sum / j); }
+
+ mData.AvgData.maxTemp = max.value;
+ mData.AvgData.maxTempNum = max.num;
+ mData.AvgData.minTemp = min.value;
+ mData.AvgData.minTempNum = min.num;
+ }
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Threads/CsUartThreadSB.cs b/LFP_Manager/Threads/CsUartThreadSB.cs
new file mode 100644
index 0000000..9a8a789
--- /dev/null
+++ b/LFP_Manager/Threads/CsUartThreadSB.cs
@@ -0,0 +1,644 @@
+using System;
+
+using System.Threading;
+using System.IO.Ports;
+using System.Windows.Forms;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Utils;
+using DevExpress.XtraGauges.Core.Model;
+using System.Collections.Concurrent;
+using System.Drawing.Printing;
+using System.ComponentModel;
+
+namespace LFP_Manager.Threads
+{
+ class CsUartThreadSB
+ {
+ #region DELEGATE
+ // 표준 이벤트 패턴
+ public sealed class ModuleDataEventArgs : EventArgs
+ {
+ public CsDeviceData.DeviceModuleData[] Modules { get; }
+ public ModuleDataEventArgs(CsDeviceData.DeviceModuleData[] modules) => Modules = modules;
+ }
+ #endregion
+
+ #region CONSTANTS
+ private const int RX_PACKET_BUFFER_SIZE = 512;
+ #endregion
+
+ #region VARIABLES
+
+ private readonly CommConfig Config;
+ private CsDeviceData.DeviceModuleData[] ModuleData;
+ private Thread _serialComm = null;
+ private SerialPort sPort = null;
+ private CancellationTokenSource _cts;
+ private volatile bool _serialPortThreadEnd = true;
+
+ private readonly object _startStopLock = new object();
+
+ private readonly ISynchronizeInvoke _ui; // 보통 Form 또는 Control
+
+ public int ModuleID = 1;
+ private bool UartPolling = false;
+ private bool AutoUartTx = true;
+
+ private int addr_ch = 0;
+ private ushort RequestRegAddr = 0x0000; //Byul Init 0x0000
+ private ushort RequestRegLen = 50;
+ private bool rFlag = false;
+ private int wFlag = 0;
+ private int rFlag2 = 0;
+
+ private ushort ExtReqRegAddr = 0x0000;
+
+ private ushort WriteRegAddr = 0x0000; //Byul Init 0x0000
+ private short WriteCoilRegData = 0;
+ private byte[] WriteRegData;
+ private short WriteParamRegData;
+
+ private readonly ConcurrentQueue _rxQ = new ConcurrentQueue();
+
+ private TUartTxBuff UartTxBuff;
+
+ // 이벤트
+ public event EventHandler OnUpdate;
+ public event EventHandler OnDataRecv;
+ public event EventHandler OnPrint;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public CsUartThreadSB(int mId,
+ CommConfig aConfig,
+ ISynchronizeInvoke uiInvoker,
+ CsDeviceData.DeviceModuleData[] aModuleData)
+ {
+ ModuleID = mId;
+ Config = aConfig;
+ ModuleData = aModuleData;
+
+ UartTxBuff = new TUartTxBuff();
+ }
+
+ public void Dispose()
+ {
+ Stop();
+ }
+
+ public bool Start(ref CommConfig aConfig, int mID, bool aPolling)
+ {
+ if (aConfig == null) throw new ArgumentNullException(nameof(aConfig));
+
+ string modelname = csConstData.UART_MODEL[aConfig.UartModelIndex];
+ int mQty = aConfig.ModuleQty;
+
+ if (ModuleData == null || ModuleData.Length < mQty)
+ throw new InvalidOperationException($"ModuleData length({ModuleData?.Length ?? 0}) < ModuleQty({mQty})");
+
+ for (int i = 0; i < mQty; i++)
+ {
+ ModuleData[i].mNo = i + 1;
+ //ModuleData[i].Information.ModelName = modelname;
+ }
+
+ ModuleID = mID;
+ UartPolling = aPolling;
+
+ if (!Open(aConfig.UartPort, aConfig.UartBaudrate))
+ return false;
+
+ // 이중 시작 방지
+ if (_serialComm != null && _serialComm.IsAlive)
+ return true;
+
+ _serialPortThreadEnd = false;
+ _cts = new CancellationTokenSource();
+
+ _serialComm = new Thread(() => uartCommThreadSB(_cts.Token))
+ {
+ IsBackground = true,
+ Name = "UartCommThreadDelta"
+ };
+ _serialComm.Start();
+ return true;
+ }
+
+ public void Stop()
+ {
+ _serialPortThreadEnd = true;
+ var cts = _cts;
+ _cts = null;
+ if (cts != null && !cts.IsCancellationRequested)
+ cts.Cancel();
+
+ var t = _serialComm;
+ _serialComm = null;
+ if (t != null && t.IsAlive)
+ {
+ try { t.Join(500); } catch { /* timeout 시 로그만 */ }
+ }
+
+ Close(); // SerialPort 닫기 및 핸들러 해제
+ }
+
+ #endregion
+
+ #region SAFETY RAISE HELPER
+ private void RaiseOnUpdate(CsDeviceData.DeviceModuleData[] snapshot)
+ {
+ var handler = OnUpdate;
+ if (handler == null) return;
+
+ var args = new ModuleDataEventArgs(snapshot);
+
+ if (_ui != null && _ui.InvokeRequired)
+ {
+ try { _ui.BeginInvoke(new Action(() => handler(this, args)), null); }
+ catch { /* 폼 종료 중 등 예외 무시(로그만) */ }
+ }
+ else
+ {
+ handler(this, args);
+ }
+ }
+
+ private void RaiseOnDataRecv(byte[] data)
+ {
+ var handler = OnDataRecv;
+ if (handler == null) return;
+
+ var args = new DataRecvEventArgs(data);
+
+ if (_ui != null && _ui.InvokeRequired)
+ {
+ try { _ui.BeginInvoke(new Action(() => handler(this, args)), null); }
+ catch { }
+ }
+ else
+ {
+ handler(this, args);
+ }
+ }
+
+ private void RaiseOnPrint(int id, string msg)
+ {
+ var handler = OnPrint;
+ if (handler == null) return;
+
+ var args = new PrintEventArgs(id, msg);
+
+ if (_ui != null && _ui.InvokeRequired)
+ {
+ try { _ui.BeginInvoke(new Action(() => handler(this, args)), null); }
+ catch { }
+ }
+ else
+ {
+ handler(this, args);
+ }
+ }
+ #endregion
+
+ #region COMMPORT CONTROLS
+
+ private void sDataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
+ {
+ try
+ {
+ var sp = (SerialPort)sender;
+ int available = sp.BytesToRead;
+ if (available <= 0) return;
+
+ byte[] tmp = new byte[available];
+ int read = sp.Read(tmp, 0, tmp.Length);
+ for (int i = 0; i < read; i++)
+ _rxQ.Enqueue(tmp[i]);
+ }
+ catch (Exception)
+ {
+ /* 필요시 로그 */
+ }
+ }
+
+ private void sErrorReceived(object sender, System.IO.Ports.SerialErrorReceivedEventArgs e)
+ {
+ //
+ //csMakeDataFunction.SetData()
+ }
+
+ private void sPinChanged(object sender, System.IO.Ports.SerialPinChangedEventArgs e)
+ {
+ //
+ }
+
+ private bool Open(string cPort, int cBaudrate)
+ {
+ sPort = new SerialPort();
+ sPort.PortName = cPort;
+ sPort.BaudRate = cBaudrate;
+ sPort.DataReceived += sDataReceived;
+ sPort.ErrorReceived += sErrorReceived;
+ sPort.PinChanged += sPinChanged;
+
+ try
+ {
+ sPort.Open();
+ }
+ catch (Exception ex)
+ {
+ throw new Exception("Error Open - " + ex.Message);
+ }
+
+ return sPort.IsOpen;
+ }
+
+ private void Close()
+ {
+ if (sPort != null)
+ {
+ try
+ {
+ sPort.DataReceived -= sDataReceived;
+ sPort.ErrorReceived -= sErrorReceived;
+ sPort.PinChanged -= sPinChanged;
+ if (sPort.IsOpen) sPort.Close();
+ }
+ finally
+ {
+ sPort.Dispose();
+ sPort = null;
+ }
+ }
+ }
+
+ #endregion
+
+ #region PUBLIC FUNCTION
+
+ public void SetPolling(bool flag, int mID, ref CsDeviceData.DeviceModuleData[] aModuleData)
+ {
+ ModuleID = mID;
+ UartPolling = flag;
+ ModuleData = aModuleData;
+ ModuleData[0].mNo = ModuleID;
+ }
+
+ public void SetAutoTx(bool autoTx)
+ {
+ AutoUartTx = autoTx;
+ }
+
+ public void SetWriteReg(ushort WriteAddr, byte[] WriteData, bool ReplyFlag, int type)
+ {
+ WriteRegAddr = WriteAddr;
+
+ TUartTRxData uartTRxData = new TUartTRxData();
+ uartTRxData.type = type;
+ uartTRxData.data = WriteData;
+ uartTRxData.length = uartTRxData.data.Length;
+
+ UartTxBuff?.PutBuff(uartTRxData);
+ }
+
+ public void SetParam(ushort WriteAddr, short WriteData)
+ {
+ short[] wData = new short[1];
+ wData[0] = WriteData;
+
+ byte[] sData = CsSerialCommFunctionDelta.MakeWriteRegisterData((ushort)ModuleID, WriteAddr, wData);
+
+ if (sData != null)
+ {
+ TUartTRxData aData = new TUartTRxData();
+ aData.length = sData.Length;
+ aData.data = sData;
+
+ UartTxBuff.PutBuff(aData);
+ }
+ }
+
+ public void SetReadWriteParam(ushort WriteAddr, short WriteData)
+ {
+ byte[] sData = CsSerialCommFunctionDelta.MakeReadWriteRegisterData((ushort)ModuleID, WriteAddr, WriteData);
+
+ if (sData != null)
+ {
+ TUartTRxData aData = new TUartTRxData();
+ aData.length = sData.Length;
+ aData.data = sData;
+
+ ExtReqRegAddr = WriteAddr;
+
+ UartTxBuff.PutBuff(aData);
+ }
+ }
+
+ #endregion
+
+ #region RX BUFFERING
+
+ private int GetBuff()
+ {
+ return _rxQ.TryDequeue(out var b) ? (0x0100 | b) : 0;
+ }
+
+ private void FlushBuff()
+ {
+ while (_rxQ.TryDequeue(out _)) { }
+ }
+
+ #endregion
+
+ #region TX BUFFERING
+
+ private byte[] MakeWriteRegData(ushort DevID, ushort WriteAddr, ushort WriteLen, ref ushort[] WriteData)
+ {
+ byte[] wData = null;
+
+ if (WriteLen > 0)
+ {
+
+ }
+
+ return wData;
+ }
+
+ private string MakeCheckSum(byte[] sData, int len)
+ {
+ string result = "";
+ int checksum = 0;
+
+ for (int i = 0; i < len; i++)
+ {
+ checksum += sData[i + 1];
+ }
+
+ checksum = ~checksum + 1;
+
+ result = String.Format("{0:X2}{1:X2}", (byte)(checksum >> 8), (byte)checksum);
+
+ return result;
+ }
+
+ private byte[] MakeTxDataDelta(bool wData)
+ {
+ byte[] sData = null;
+
+ if ((UartTxBuff != null) && (UartTxBuff.CheckBuff()))
+ {
+ TUartTRxData sBuff = UartTxBuff.GetBuff();
+ if (sBuff != null)
+ {
+ sData = sBuff.data;
+ wData = true;
+ rFlag = true;
+ rFlag2 = sBuff.type;
+
+ RequestRegAddr = ExtReqRegAddr;
+ }
+ }
+ else
+ {
+ if (AutoUartTx && UartPolling)
+ {
+ ushort sCmd;
+ switch (addr_ch)
+ {
+ case 0: // Battery Status Data
+ addr_ch = 3;
+ RequestRegAddr = 0x0FFF; //Byul Init 0x0000
+ RequestRegLen = 0x27;
+ sCmd = CsSerialCommFunctionDelta.READ_INPUT_REG; // Command 0x04
+ rFlag = true;
+ break;
+ case 1: // Gyroscope Data
+ addr_ch = 2;
+ RequestRegAddr = 0x4000;
+ RequestRegLen = 7;
+ sCmd = CsSerialCommFunctionDelta.READ_INPUT_REG; // Command 0x17
+ rFlag = true;
+ break;
+ case 2:
+ addr_ch = 3;
+ RequestRegAddr = 0x3000;
+ RequestRegLen = 3;
+ sCmd = CsSerialCommFunctionDelta.READ_INPUT_REG; // Command 0x19
+ rFlag = true;
+ break;
+ case 3:
+ addr_ch = 4;
+ RequestRegAddr = 0x0000;
+ RequestRegLen = 1;
+ sCmd = CsSerialCommFunctionDelta.READ_DEV_ID; // Command 0x2B
+ rFlag = true;
+ break;
+ case 4:
+ if (Config.ModuleQty > 1)
+ {
+ ModuleID++;
+ if (ModuleID > Config.ModuleQty)
+ {
+ ModuleID = 1;
+ }
+ }
+ addr_ch = 0;
+ sCmd = CsSerialCommFunctionDelta.NO_CMD;
+ rFlag = false;
+ break;
+ default:
+ addr_ch = 0;
+ RequestRegAddr = 0x0FFF; //Byul Init 0x0000
+ RequestRegLen = 27;
+ sCmd = CsSerialCommFunctionDelta.READ_INPUT_REG; // Command 0x04
+ rFlag = true;
+ break;
+ }
+ if (sCmd == CsSerialCommFunctionDelta.NO_CMD)
+ {
+ sData = null;
+ }
+ else if (sCmd == CsSerialCommFunctionDelta.READ_DEV_ID)
+ {
+ sData = CsSerialCommFunctionDelta.MakeReadDevIdRegReqData((ushort)ModuleID, sCmd, RequestRegAddr);
+ }
+ else
+ {
+ sData = CsSerialCommFunctionDelta.MakeReadRegisterData((ushort)ModuleID, sCmd, RequestRegAddr, RequestRegLen);
+ }
+ }
+ }
+ return sData;
+ }
+
+ #endregion
+
+ #region COMM THREAD
+
+ private readonly byte[] ReadBuf = new byte[RX_PACKET_BUFFER_SIZE];
+ ushort rPosition = 0;
+ bool BuffStart = false;
+
+ private void RecvPacketInit()
+ {
+ BuffStart = false;
+ rPosition = 0;
+ }
+
+ private void uartCommThreadSB(CancellationToken token)
+ {
+ int RecvTimeout = Config.RecvWaitTime;
+ int COMM_TIMEOUT_MS = Config.CommFailTime; // 5초 동안 수신 없으면 Fail
+ DateTime[] LastReceiveTime = new DateTime[csConstData.SystemInfo.MAX_MODULE_SIZE];
+
+ // ★ 마지막 수신 시간 초기화 (현재 시각 기준)
+ var now = DateTime.UtcNow;
+ for (int i = 0; i < LastReceiveTime.Length; i++)
+ LastReceiveTime[i] = now;
+
+ StartSend:
+ while (!token.IsCancellationRequested && !_serialPortThreadEnd)
+ {
+ if (sPort == null || !sPort.IsOpen) { Thread.Sleep(50); continue; }
+
+ FlushBuff();
+
+ byte[] txData = MakeTxDataDelta(false);
+ if (txData != null)
+ {
+ try
+ {
+ sPort.Write(txData, 0, txData.Length);
+ RaiseOnPrint(txData[0], csLog.trx_data_print(txData, txData.Length, 0));
+ }
+ catch
+ {
+ /* 로그 */
+ RaiseOnPrint(ModuleID, "UART Thread - TX Buff Error !");
+ }
+ }
+
+ if (rFlag)
+ {
+ var deadline = DateTime.UtcNow.AddMilliseconds(RecvTimeout);
+ RecvPacketInit();
+
+ while (DateTime.UtcNow < deadline)
+ {
+ int gd = GetBuff();
+ if ((gd & 0x0100) == 0) { Thread.Sleep(1); continue; }
+
+ byte cData = (byte)(gd & 0xFF);
+
+ if (!BuffStart)
+ {
+ if (cData == (byte)ModuleID || cData == 0x7F)
+ {
+ rPosition = 0;
+ ReadBuf[rPosition++] = cData;
+ BuffStart = true;
+ }
+ }
+ else
+ {
+ if (rPosition >= ReadBuf.Length) { RecvPacketInit(); continue; }
+ ReadBuf[rPosition++] = cData;
+
+ int chk = CsSerialCommFunctionDelta.ModbusPacketFromSlaveCheck(ReadBuf, rPosition);
+ if (chk == 0) continue;
+
+ RaiseOnPrint(ReadBuf[0], csLog.trx_data_print(ReadBuf, rPosition, 1));
+
+ if (chk == 1)
+ {
+ int mID = ReadBuf[0];
+ if (mID > 0) mID--;
+ if (mID >= 0 && mID < ModuleData.Length)
+ {
+ // 마지막 정상 업데이트 시간 기록
+ LastReceiveTime[mID] = DateTime.UtcNow;
+
+ ModuleData[mID].CommFail = false;
+ ModuleData[mID].ShelfCommFail = false;
+ var rc = CsSerialCommFunctionDelta.SerialRxProcess(
+ ReadBuf, RequestRegAddr, (ushort)rPosition, ref ModuleData[mID]);
+ }
+
+ var snapshot1 = ModuleData; // 필요 시 DeepCopy
+ RaiseOnUpdate(snapshot1);
+ Thread.Sleep(5);
+ goto StartSend;
+ }
+ else if (chk == 2)
+ {
+ rFlag = false;
+ RaiseOnPrint(ReadBuf[0], csLog.trx_data_print(ReadBuf, rPosition, 1));
+
+ byte[] adata = new byte[rPosition + 1];
+ for (int j = 0; j < adata.Length; j++)
+ {
+ adata[j] = ReadBuf[j];
+ }
+ RaiseOnDataRecv(adata);
+
+ goto StartSend;
+ }
+ else // -1
+ {
+ RecvPacketInit();
+ Thread.Sleep(50);
+ goto StartSend;
+ }
+ }
+ }
+
+ // timeout
+ if (rPosition > 0)
+ {
+ RaiseOnPrint(ReadBuf[0], csLog.trx_data_print(ReadBuf, rPosition, 1));
+ }
+ else
+ {
+ int idx = csUtils.MathEx.Clamp(ModuleID - 1, 0, csConstData.SystemInfo.MAX_MODULE_SIZE - 1);
+
+ // 아직 한 번도 정상 수신한 적 없는 경우 MinValue일 수 있으므로,
+ // 첫 타임아웃에서는 기준 시간을 현재로 초기화해 준다.
+ if (LastReceiveTime[idx] == DateTime.MinValue)
+ LastReceiveTime[idx] = DateTime.UtcNow;
+
+ // 시간 차이 계산
+ var elapsed = (DateTime.Now - LastReceiveTime[idx]).TotalMilliseconds;
+
+ if (elapsed >= COMM_TIMEOUT_MS)
+ {
+ // Fail 처리
+ if (!ModuleData[idx].ShelfCommFail)
+ {
+ ModuleData[idx].Reset();
+ ModuleData[idx].ShelfCommFail = true;
+ }
+
+ ModuleData[idx].CommFail = true;
+ ModuleData[idx].ShelfCommFail = true;
+ }
+ Thread.Sleep(100);
+ }
+ var snapshot2 = ModuleData; // 필요 시 DeepCopy
+ RaiseOnUpdate(snapshot2);
+ }
+ else
+ {
+ Thread.Sleep(10);
+ } /* if (rFlag == true) */
+ rPosition = 0;
+ Thread.Sleep(100);
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Threads/csDbThread.cs b/LFP_Manager/Threads/csDbThread.cs
new file mode 100644
index 0000000..896698e
--- /dev/null
+++ b/LFP_Manager/Threads/csDbThread.cs
@@ -0,0 +1,1014 @@
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Utils;
+using System;
+using System.ComponentModel;
+using System.Data;
+using System.Data.SQLite;
+using System.Diagnostics;
+using System.IO;
+using System.Linq;
+using System.Threading;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Threads
+{
+ class csDbThread
+ {
+ #region DELEGATE
+ public delegate void UpdateAlarmHistory(DataTable aAlarmHistoryData);
+ #endregion
+
+ #region VARIABLES
+
+ CommConfig Config = new CommConfig();
+ CsDeviceData DeviceData;
+
+ CsDeviceData OldDevData;
+
+ DataTable CurrAlarmHistory;
+
+ private Thread _dbProc; // ← 생성자에서 만들지 않음
+ private volatile bool _dbThreadEnd = true;
+ private volatile bool Active = false;
+
+ private readonly object _stateLock = new object();
+ private readonly ISynchronizeInvoke _ui; // 보통 Form 또는 Control
+
+ private int mQty = 1;
+
+ public event EventHandler OnPrint;
+ public event UpdateAlarmHistory OnUpdateAlarmHistory = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public csDbThread(CommConfig aConfig,
+ ISynchronizeInvoke uiInvoker,
+ CsDeviceData aModuleData)
+ {
+ Config = aConfig;
+ DeviceData = aModuleData;
+ OldDevData = new CsDeviceData();
+
+ _ui = uiInvoker;
+ }
+
+ public void Dispose()
+ {
+ Stop();
+ }
+
+ public bool Start(CommConfig aConfig)
+ {
+ if (_dbProc != null && _dbProc.IsAlive) return false;
+
+ Config = aConfig;
+ mQty = (Config.CommType == csConstData.CommType.COMM_RS485) ? Config.ModuleQty : 1;
+
+ if (_dbProc != null && _dbProc.IsAlive)
+ return true; // 이미 동작 중
+
+ _dbThreadEnd = false;
+ Active = true;
+
+ // DB 경로 준비 (예외는 루프에서 잡히지만 시작 시도 전 준비)
+ try
+ {
+ string modelname = csConstData.UART_MODEL[Config.UartModelIndex];
+ csDbUtils.LogDbCreate(modelname);
+ DbCreate(modelname, DateTime.Now);
+
+ // 최초 활성 진입
+ if (Active)
+ {
+ // START 정보 기록
+ _ = BmsAlarmDataInsert(modelname, (int)DbConstData.Alarm.START, (int)DbConstData.Flag.INFORMATION, DeviceData.ModuleData[0], DateTime.Now);
+ }
+ }
+ catch (Exception ex)
+ {
+ RaiseOnPrint($"DB init error: {ex.Message}");
+ }
+
+ _dbProc = new Thread(dbThreadProcess)
+ {
+ IsBackground = true,
+ Name = "DbThread"
+ };
+ _dbProc.Start();
+ return true;
+ }
+
+ public void Stop()
+ {
+ Active = false;
+ _dbThreadEnd = true;
+
+ var t = _dbProc;
+ if (t != null && t.IsAlive)
+ {
+ for (int i = 0; i < 5 && t.IsAlive; i++)
+ t.Join(200); // 최대 약 1초
+ }
+ _dbProc = null;
+
+ // ★ 종료 직전 1회 저장/알람 기록
+ FlushNow("Stop");
+ }
+
+ #endregion
+
+ #region SAFETY RAISE HELPER
+ private void RaiseOnUpdateAlarmHistory(DataTable dt)
+ {
+ if (_ui != null && _ui.InvokeRequired)
+ _ui.BeginInvoke(new Action(() => OnUpdateAlarmHistory?.Invoke(dt)), null);
+ else
+ OnUpdateAlarmHistory?.Invoke(dt);
+ }
+
+ private void RaiseOnPrint(string msg)
+ {
+ var handler = OnPrint;
+ if (handler == null) return;
+
+ var args = new PrintEventArgs(0, msg);
+
+ if (_ui != null && _ui.InvokeRequired)
+ {
+ try { _ui.BeginInvoke(new Action(() => handler(this, args)), null); }
+ catch { }
+ }
+ else
+ {
+ handler(this, args);
+ }
+ }
+ #endregion
+
+ #region DB THREAD
+
+ private void dbThreadProcess()
+ {
+ int periodSec = Math.Max(1, Config.DbLogPeriod); // 0 방지
+ string modelName = csConstData.UART_MODEL[Config.UartModelIndex];
+
+ // 마지막 기록 시각 (UTC 권장; 로컬도 무방하지만 일관성 위해 UTC 사용)
+ DateTime lastLogUtc = DateTime.UtcNow;
+
+ try
+ {
+ CurrAlarmHistory = csDbUtils.GetBmsAlarmDataByDataTable(modelName, DateTime.Now, "");
+ RaiseOnUpdateAlarmHistory(CurrAlarmHistory); // UI 마샬링 버전
+ }
+ catch (Exception ex)
+ {
+ csLog.SystemDbErrorLog(Config, ex.Message, DateTime.Now, Application.ExecutablePath);
+ }
+
+ while (!_dbThreadEnd)
+ {
+ if (Active)
+ {
+ DateTime nowLocal = DateTime.Now;
+ DateTime nowUtc = DateTime.UtcNow;
+
+ // “초 변경” + “주기 정합” 검사
+ // ★ 경과 시간 기반 주기 체크 (초 단위 주기 모두 정확)
+ if ((nowUtc - lastLogUtc).TotalSeconds >= periodSec)
+ {
+ // Database Log Process
+ try
+ {
+ CsDeviceData snapshot;
+ lock (_stateLock) { snapshot = DeviceData.DeepCopy(); }
+
+ int count = Math.Max(1, mQty);
+ for (int i = 0; i < count; i++)
+ {
+ // RS-485는 i+1, 단일 UART는 1
+ snapshot.ModuleData[i].mNo =
+ (Config.CommType == csConstData.CommType.COMM_RS485) ? (i + 1) : 1;
+
+ csDbUtils.BmsLogDataInsert(modelName, ref snapshot.ModuleData[i], nowLocal, 1);
+ }
+ }
+ catch (Exception ex)
+ {
+ RaiseOnPrint($"DB loop error: {ex.Message}");
+ }
+ finally
+ {
+ // ★ 마지막 로그 시각 갱신 (드리프트 최소화를 원하면 lastLogUtc += TimeSpan.FromSeconds(periodSec))
+ lastLogUtc = nowUtc;
+ }
+ }
+
+ try
+ {
+ // Alarm History Log
+ modelName = csConstData.UART_MODEL[Config.UartModelIndex];
+ csDbUtils.LogDbCreate(modelName);
+
+ for (int i = 0; i < mQty; i++)
+ {
+ if (CheckStatusAndAlarm(i, modelName, Config, DeviceData.ModuleData[i], OldDevData.ModuleData[i]))
+ {
+ CurrAlarmHistory = csDbUtils.GetBmsAlarmDataByDataTable(modelName, DateTime.Now, "");
+ RaiseOnUpdateAlarmHistory(CurrAlarmHistory);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ csLog.SystemDbErrorLog(Config, ex.Message, DateTime.Now, Application.ExecutablePath);
+ }
+ }
+ Thread.Sleep(100);
+ }
+ }
+
+ #endregion
+
+ #region BMS ALARM DB INSERT FUNCTION
+ public static bool BmsAlarmDataInsert1(string modelname, CommConfig aConfig, int aAlarmCode, int aAlarmStatus, CsDeviceData.DeviceModuleData mData, DateTime dateTime)
+ {
+ bool resultFlag = false;
+ string result = "";
+ //public static string LogDbFileNameFormat = @"\{0}\{1}_{2}_LOG.DB";
+ string dbFilename = string.Format(csDbUtils.LogDbFileNameFormat
+ , String.Format("{0:yyMM}", DateTime.Now)
+ , String.Format("{0:yyMMdd}", DateTime.Now)
+ , modelname
+ );
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + csDbUtils.LogDbFilePath + dbFilename;
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false)
+ {
+ throw new Exception("No Log DB file path");
+ }
+
+ if (File.Exists(dbFilePath) == false)
+ {
+ throw new Exception(String.Format("No Log DB file - BmsAlarmDataInsertByModule ({0})", dbFilename));
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (SQLiteConnection connection = new SQLiteConnection(strConn))
+ {
+ try
+ {
+ connection.Open();
+ csDbUtils.BeginTran(connection);
+
+ // Insert System data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = String.Format("INSERT INTO TAlarmHistory (");
+ command.CommandText += "create_date" // 0
+ + ", alarm_code" // 1
+ + ", alarm_status" // 2
+ + ", alarm_cname" // 3
+ + ", alarm_sname" // 4
+ + ", module_no" // 5
+ + ", ct_no" // 6
+ + ", alarm_param_1" // 7
+ + ", alarm_param_2" // 8
+ + ", alarm_param_3" // 9
+ ;
+ command.CommandText = command.CommandText
+ + ")"
+ + " Values (";
+
+ int total = 10;
+
+ for (int i = 0; i < (total - 1); i++) command.CommandText += "?,";
+ command.CommandText += "?);";
+
+ SQLiteParameter[] p = new SQLiteParameter[total];
+
+ for (int i = 0; i < total; i++)
+ {
+ if (i == 0)
+ {
+ p[i] = new SQLiteParameter(DbType.DateTime);
+ }
+ else
+ {
+ p[i] = new SQLiteParameter();
+ }
+ command.Parameters.Add(p[i]);
+ }
+
+ int j = 0;
+ p[j++].Value = dateTime; // 0 create_date
+ p[j++].Value = aAlarmCode; // 1 alarm_code
+ p[j++].Value = aAlarmStatus; // 2 alarm_status
+ p[j++].Value = DbConstData.GetAlarmName(aAlarmCode); // 3 alarm_cname
+ p[j++].Value = DbConstData.GetFlagName(aAlarmStatus); // 4 alarm_sname
+ p[j++].Value = mData.mNo; // 5 module_no
+ switch (aAlarmCode)
+ {
+ case 0: // Cell Under Voltage
+ p[j++].Value = mData.AvgData.minCellNum; // 6 ct_no
+ p[j++].Value = mData.AvgData.minCellVoltage; // 7 alarm_param_1
+ p[j++].Value = 0; // 8 alarm_param_2
+ p[j++].Value = 0; // 9 alarm_param_3
+ break;
+ case 1: // Cell Over Voltage
+ p[j++].Value = mData.AvgData.maxCellNum; // 6 ct_no
+ p[j++].Value = mData.AvgData.maxCellVoltage; // 7 alarm_param_1
+ p[j++].Value = 0; // 8 alarm_param_2
+ p[j++].Value = 0; // 9 alarm_param_3
+ break;
+ case 2: // Module Under Voltage
+ p[j++].Value = 0; // 6 ct_no
+ p[j++].Value = mData.ValueData.voltage; // 7 alarm_param_1
+ p[j++].Value = 0; // 8 alarm_param_2
+ p[j++].Value = 0; // 9 alarm_param_3
+ break;
+ case 3: // Module Over Voltage
+ p[j++].Value = 0; // 6 ct_no
+ p[j++].Value = mData.ValueData.voltage; // 7 alarm_param_1
+ p[j++].Value = 0; // 8 alarm_param_2
+ p[j++].Value = 0; // 9 alarm_param_3
+ break;
+ case 4: // Charge High Temperature
+ p[j++].Value = mData.AvgData.maxTempNum; // 6 ct_no
+ p[j++].Value = mData.AvgData.maxTemp; // 7 alarm_param_1
+ p[j++].Value = 0; // 8 alarm_param_2
+ p[j++].Value = 0; // 9 alarm_param_3
+ break;
+ case 5: // Discharge High Temperature
+ p[j++].Value = mData.AvgData.maxTempNum; // 6 ct_no
+ p[j++].Value = mData.AvgData.maxTemp; // 7 alarm_param_1
+ p[j++].Value = 0; // 8 alarm_param_2
+ p[j++].Value = 0; // 9 alarm_param_3
+ break;
+ case 6: // Charge Low Temperature
+ p[j++].Value = mData.AvgData.minTempNum; // 6 ct_no
+ p[j++].Value = mData.AvgData.minTemp; // 7 alarm_param_1
+ p[j++].Value = 0; // 8 alarm_param_2
+ p[j++].Value = 0; // 9 alarm_param_3
+ break;
+ case 7: // Discharge Low Temperature
+ p[j++].Value = mData.AvgData.minTempNum; // 6 ct_no
+ p[j++].Value = mData.AvgData.minTemp; // 7 alarm_param_1
+ p[j++].Value = 0; // 8 alarm_param_2
+ p[j++].Value = 0; // 9 alarm_param_3
+ break;
+ case 8: // Charge Over Current
+ p[j++].Value = 0; // 6 ct_no
+ p[j++].Value = mData.ValueData.current; // 7 alarm_param_1
+ p[j++].Value = 0; // 8 alarm_param_2
+ p[j++].Value = 0; // 9 alarm_param_3
+ break;
+ case 9: // Discharge Over Current
+ p[j++].Value = 0; // 6 ct_no
+ p[j++].Value = mData.ValueData.current; // 7 alarm_param_1
+ p[j++].Value = 0; // 8 alarm_param_2
+ p[j++].Value = 0; // 9 alarm_param_3
+ break;
+ case 10: // Low SOC
+ p[j++].Value = 0; // 6 ct_no
+ p[j++].Value = mData.ValueData.SOC; // 7 alarm_param_1
+ p[j++].Value = 0; // 8 alarm_param_2
+ p[j++].Value = 0; // 9 alarm_param_3
+ break;
+ case 11: // Low SOH
+ p[j++].Value = 0; // 6 ct_no
+ p[j++].Value = mData.ValueData.SOH; // 7 alarm_param_1
+ p[j++].Value = 0; // 8 alarm_param_2
+ p[j++].Value = 0; // 9 alarm_param_3
+ break;
+ case 12: // Cell Voltage Difference
+ p[j++].Value = 0; // 6 ct_no
+ p[j++].Value = mData.AvgData.minCellVoltage; // 7 alarm_param_1
+ p[j++].Value = mData.AvgData.maxCellVoltage; // 8 alarm_param_2
+ p[j++].Value = 0; // 9 alarm_param_3
+ break;
+ case 13: // Short Circuit
+ p[j++].Value = 0; // 6 ct_no
+ p[j++].Value = mData.ValueData.voltage; // 7 alarm_param_1
+ p[j++].Value = mData.ValueData.current; // 8 alarm_param_2
+ p[j++].Value = 0; // 9 alarm_param_3
+ break;
+ case 14: // Module Comm Fail
+ p[j++].Value = 0; // 6 ct_no
+ p[j++].Value = mData.ValueData.voltage; // 7 alarm_param_1
+ p[j++].Value = mData.ValueData.current; // 8 alarm_param_2
+ p[j++].Value = 0; // 9 alarm_param_3
+ break;
+
+ case 15: // Cell Voltage Measurement Error
+ p[j++].Value = 0; // 6 ct_no
+ p[j++].Value = mData.AvgData.minCellVoltage; // 7 alarm_param_1
+ p[j++].Value = mData.AvgData.maxCellVoltage; // 8 alarm_param_2
+ p[j++].Value = 0; // 9 alarm_param_3
+ break;
+ case 16: // Temperature Measurement Error
+ p[j++].Value = 0; // 6 ct_no
+ p[j++].Value = mData.AvgData.minTemp; // 7 alarm_param_1
+ p[j++].Value = mData.AvgData.maxTemp; // 8 alarm_param_2
+ p[j++].Value = 0; // 9 alarm_param_3
+ break;
+ case 17: // Battery Cell Unbalance
+ p[j++].Value = 0; // 6 ct_no
+ p[j++].Value = mData.AvgData.minCellVoltage; // 7 alarm_param_1
+ p[j++].Value = mData.AvgData.maxCellVoltage; // 8 alarm_param_2
+ p[j++].Value = 0; // 9 alarm_param_3
+ break;
+ case 18: // Emergency Alarm
+ p[j++].Value = 0; // 6 ct_no
+ p[j++].Value = mData.ValueData.voltage; // 7 alarm_param_1
+ p[j++].Value = mData.ValueData.current; // 8 alarm_param_2
+ p[j++].Value = 0; // 9 alarm_param_3
+ break;
+
+ case 21: // STS_STAND_BY
+ case 22: // STS_CHARING
+ case 23: // STS_DISCHARGING
+ case 24: // STS_FLOAT_CHARGING
+ p[j++].Value = 0; // 6 ct_no
+ p[j++].Value = mData.ValueData.voltage; // 7 alarm_param_1
+ p[j++].Value = mData.ValueData.current; // 8 alarm_param_2
+ p[j++].Value = 0; // 9 alarm_param_3
+ break;
+ default: // STS_UNKNOWN
+ p[j++].Value = 0; // 6 ct_no
+ p[j++].Value = 0; // 7 alarm_param_1
+ p[j++].Value = 0; // 8 alarm_param_2
+ p[j++].Value = 0; // 9 alarm_param_3
+ break;
+ }
+
+ command.ExecuteNonQuery();
+ csDbUtils.CommitTran(connection);
+
+ resultFlag = true;
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ {
+ connection.Close();
+ }
+ if (result != "")
+ {
+ throw new Exception(result);
+ }
+ }
+ }
+ return resultFlag;
+ }
+ #endregion
+
+ #region ALARM STATUS CHECK
+ private bool CheckStatusAndAlarm(int mNo, string modelName, CommConfig aConfig, CsDeviceData.DeviceModuleData nModule, CsDeviceData.DeviceModuleData oModule)
+ {
+ bool eventFlag = false;
+
+ if (nModule == null || oModule == null)
+ return false;
+
+ // 현재/이전 경고/보호/에러 비트
+ bool[] wNew = csUtils.UInt16ToBitArray((ushort)nModule.StatusData.warning);
+ bool[] pNew = csUtils.UInt16ToBitArray((ushort)nModule.StatusData.protect);
+ bool[] eNew = csUtils.UInt16ToBitArray((ushort)nModule.StatusData.errorCode);
+
+ bool[] wOld = csUtils.UInt16ToBitArray((ushort)oModule.StatusData.warning);
+ bool[] pOld = csUtils.UInt16ToBitArray((ushort)oModule.StatusData.protect);
+ bool[] eOld = csUtils.UInt16ToBitArray((ushort)oModule.StatusData.errorCode);
+
+ var alarmData = new THistoryAlarmData();
+ DateTime now = DateTime.Now;
+
+ // 시스템 통신 상태 변화 기록
+ if (oModule.CommFail != nModule.CommFail)
+ {
+ eventFlag |= BmsAlarmDataInsert(modelName, (int)DbConstData.Alarm.COMM_FAIL,
+ nModule.CommFail ? (int)DbConstData.Flag.WARNING : (int)DbConstData.Flag.RELEASE, nModule, now);
+ oModule.CommFail = nModule.CommFail;
+ }
+ // 0..15 비트에 대한 경고/보호 엣지 검사
+ for (int i = 0; i < 16; i++)
+ {
+ alarmData.newFdata = pNew[i];
+ alarmData.oldFdata = pOld[i];
+ alarmData.newWdata = wNew[i];
+ alarmData.oldWdata = wOld[i];
+
+ switch (i)
+ {
+ case 0: // Over Voltage 0X0001
+ eventFlag |= InsertAlarmHistory(modelName, alarmData, (int)DbConstData.Alarm.OVER_VOLTAGE, nModule, now);
+ break;
+ case 1: // Cell Over Voltage 0x0002
+ eventFlag |= InsertAlarmHistory(modelName, alarmData, (int)DbConstData.Alarm.CELL_OVER_VOLTAGE, nModule, now);
+ break;
+ case 2: // Under Voltage 0x0004
+ eventFlag |= InsertAlarmHistory(modelName, alarmData, (int)DbConstData.Alarm.UNDER_VOLTAGE, nModule, now);
+ break;
+ case 3: // Cell Under Voltage 0x0008
+ eventFlag |= InsertAlarmHistory(modelName, alarmData, (int)DbConstData.Alarm.CELL_UNDER_VOLTAGE, nModule, now);
+ break;
+ case 4: // Charge Over Current 0x0010
+ eventFlag |= InsertAlarmHistory(modelName, alarmData, (int)DbConstData.Alarm.CHARGE_OVER_CURRENT, nModule, now);
+ break;
+ case 5: // Discharge Over Current 0x0020
+ eventFlag |= InsertAlarmHistory(modelName, alarmData, (int)DbConstData.Alarm.DISCHARGE_OVER_CURRENT, nModule, now);
+ break;
+ case 6: // Reserved 0x0040
+ break;
+ case 7: // MOSFET Over Temperature 0x0080
+ eventFlag |= InsertAlarmHistory(modelName, alarmData, (int)DbConstData.Alarm.MOSFET_OVER_TERMPERATURE, nModule, now);
+ break;
+ case 8: // Charge Over Temperature 0x0100
+ eventFlag |= InsertAlarmHistory(modelName, alarmData, (int)DbConstData.Alarm.CHARGE_OVER_TEMPERATURE, nModule, now);
+ break;
+ case 9: // Discharge Over Temperature 0x0200
+ eventFlag |= InsertAlarmHistory(modelName, alarmData, (int)DbConstData.Alarm.DISCHARGE_OVER_TEMPERATURE, nModule, now);
+ break;
+ case 10: // Charge Low Temperature 0x0400
+ eventFlag |= InsertAlarmHistory(modelName, alarmData, (int)DbConstData.Alarm.CHARGE_LOW_TEMPERATURE, nModule, now);
+ break;
+ case 11: // Discharge Low Temperature 0x0800
+ eventFlag |= InsertAlarmHistory(modelName, alarmData, (int)DbConstData.Alarm.DISCHARGE_LOW_TEMPERATURE, nModule, now);
+ break;
+ case 12: // Low Capacity(SOC) 0x1000
+ eventFlag |= InsertAlarmHistory(modelName, alarmData, (int)DbConstData.Alarm.LOW_SOC, nModule, now);
+ break;
+ case 13: // Short Circuit 0x2000
+ eventFlag |= InsertAlarmHistory(modelName, alarmData, (int)DbConstData.Alarm.SHORT_CIRCUIT, nModule, now);
+ break;
+ case 14: // CB OFF 0x4000
+ eventFlag |= InsertAlarmHistory(modelName, alarmData, (int)DbConstData.Alarm.CB_OFF, nModule, now);
+ break;
+ }
+ }
+ // Update last alarm status
+ oModule.StatusData.warning = nModule.StatusData.warning;
+ oModule.StatusData.protect = nModule.StatusData.protect;
+
+ // 0..15 비트에 대한 Error 엣지 검사
+ for (int i = 0; i < 16; i++)
+ {
+ alarmData.newEdata = eNew[i];
+ alarmData.oldEdata = eOld[i];
+
+ switch (i)
+ {
+ case 0: // Voltage Measurement Error 0X0001
+ eventFlag |= InsertErrorHistory(modelName, alarmData, (int)DbConstData.Alarm.VOLTAGE_MEASUREMENT_ERROR, nModule, now);
+ break;
+ case 1: // Temperature Measurement Error 0x0002
+ eventFlag |= InsertErrorHistory(modelName, alarmData, (int)DbConstData.Alarm.TEMPERATURE_MEASUREMENT_ERROR, nModule, now);
+ break;
+ case 4: // Battery Cell Unbalance 0x0010
+ eventFlag |= InsertErrorHistory(modelName, alarmData, (int)DbConstData.Alarm.BATTERY_CELL_UNBALANCE, nModule, now);
+ break;
+ case 5: // Emergency Alarm 0x0020
+ eventFlag |= InsertErrorHistory(modelName, alarmData, (int)DbConstData.Alarm.EMERGENCY_ALARM, nModule, now);
+ break;
+ default:
+ // Reserved Error
+ break;
+ }
+ }
+ // Update last alarm status
+ oModule.StatusData.errorCode = nModule.StatusData.errorCode;
+
+ // Check Status Change
+ if (oModule.StatusData.status != nModule.StatusData.status)
+ {
+ switch (nModule.StatusData.status)
+ {
+ case 0: // STANDBY
+ eventFlag = BmsAlarmDataInsert(modelName, (int)DbConstData.Alarm.STS_STAND_BY,
+ (int)DbConstData.Flag.STS_CHANGED, nModule, now);
+ break;
+ case 1: // CHARGING
+ eventFlag = BmsAlarmDataInsert(modelName, (int)DbConstData.Alarm.STS_CHARGING,
+ (int)DbConstData.Flag.STS_CHANGED, nModule, now);
+ break;
+ case 2: // DISCHARGING
+ eventFlag = BmsAlarmDataInsert(modelName, (int)DbConstData.Alarm.STS_DISCHARGING,
+ (int)DbConstData.Flag.STS_CHANGED, nModule, now);
+ break;
+ case 4: // PROTECT
+ eventFlag = BmsAlarmDataInsert(modelName, (int)DbConstData.Alarm.STS_PROTECTED,
+ (int)DbConstData.Flag.STS_CHANGED, nModule, now);
+ break;
+ default: // UNKNOWN
+ eventFlag = BmsAlarmDataInsert(modelName, (int)DbConstData.Alarm.STS_UNKNOWN,
+ (int)DbConstData.Flag.STS_CHANGED, nModule, now);
+ break;
+ }
+ oModule.StatusData.status = nModule.StatusData.status;
+ }
+
+ if (eventFlag)
+ {
+ csDbUtils.BmsLogDataInsert(modelName, ref nModule, now, 1);
+ }
+ return eventFlag;
+ }
+
+ private bool InsertAlarmHistory(string modelName, THistoryAlarmData AlarmData, int alarmCode, CsDeviceData.DeviceModuleData mData, DateTime dateTime)
+ {
+ bool resultFlag = false;
+
+ // Check protection
+ if (AlarmData.oldFdata != AlarmData.newFdata)
+ {
+ if (AlarmData.newFdata)
+ {
+ // Faulty
+ resultFlag = BmsAlarmDataInsert(modelName, alarmCode, (int)DbConstData.Flag.PROTECT, mData, dateTime);
+ }
+ else
+ {
+ if (AlarmData.oldWdata != AlarmData.newWdata)
+ {
+ if (AlarmData.newWdata)
+ {
+ // Warning
+ resultFlag = BmsAlarmDataInsert(modelName, alarmCode, (int)DbConstData.Flag.WARNING, mData, dateTime);
+ }
+ else
+ {
+ // Release
+ resultFlag = BmsAlarmDataInsert(modelName, alarmCode, (int)DbConstData.Flag.RELEASE, mData, dateTime);
+ }
+ }
+ else
+ {
+ if (AlarmData.newWdata == false)
+ {
+ // Release
+ resultFlag = BmsAlarmDataInsert(modelName, alarmCode, (int)DbConstData.Flag.RELEASE, mData, dateTime);
+ }
+ }
+ }
+ }
+ else
+ {
+ if (AlarmData.oldWdata != AlarmData.newWdata)
+ {
+ if (AlarmData.newWdata)
+ {
+ // Warning
+ resultFlag = BmsAlarmDataInsert(modelName, alarmCode, (int)DbConstData.Flag.WARNING, mData, dateTime);
+ //IDInsert("", alarmCode, CsDbConstData.DB_ALARM.FLAG_WARNING);
+ }
+ else
+ {
+ if (AlarmData.newFdata == false)
+ {
+ // Release
+ resultFlag = BmsAlarmDataInsert(modelName, alarmCode, (int)DbConstData.Flag.RELEASE, mData, dateTime);
+ //IDInsert("", alarmCode, CsDbConstData.DB_ALARM.FLAG_RELEASE);
+ }
+ }
+ }
+ }
+ return resultFlag;
+ }
+
+ private bool InsertErrorHistory(string modelName, THistoryAlarmData AlarmData, int alarmCode, CsDeviceData.DeviceModuleData mData, DateTime dateTime)
+ {
+ if (AlarmData.oldEdata == AlarmData.newEdata) return false;
+
+ int status = AlarmData.newEdata ? (int)DbConstData.Flag.ERROR
+ : (int)DbConstData.Flag.RELEASE;
+
+ return BmsAlarmDataInsert(modelName, alarmCode, status, mData, dateTime);
+ }
+
+ #endregion
+
+ #region BMS ALARM DB INSERT FUNCTION (C# 7.3 compatible)
+ public static bool BmsAlarmDataInsert(
+ string modelname,
+ int aAlarmCode,
+ int aAlarmStatus,
+ CsDeviceData.DeviceModuleData mData,
+ DateTime dateTime)
+ {
+ // 파일명/경로 안전 조합
+ string dbFilename = string.Format(
+ csDbUtils.LogDbFileNameFormat,
+ DateTime.Now.ToString("yyMM"),
+ DateTime.Now.ToString("yyMMdd"),
+ modelname);
+
+ string exeDir = Path.GetDirectoryName(Application.ExecutablePath);
+ if (string.IsNullOrEmpty(exeDir))
+ exeDir = AppDomain.CurrentDomain.BaseDirectory;
+
+ string logPath = (csDbUtils.LogDbFilePath ?? string.Empty)
+ .TrimStart(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
+ string dbDir = csUtils.CombineSafe(exeDir, logPath);
+ string dbFilePath = csUtils.CombineSafe(dbDir, dbFilename);
+
+ if (!Directory.Exists(Path.GetDirectoryName(dbFilePath)))
+ throw new Exception("No Log DB file path");
+
+ if (!File.Exists(dbFilePath))
+ throw new Exception(string.Format("No Log DB file - BmsAlarmDataInsertByModule ({0})", dbFilename));
+
+ // INSERT 대상 컬럼(총 10개)
+ // create_date, alarm_code, alarm_status, alarm_cname, alarm_sname,
+ // module_no, ct_no, alarm_param_1, alarm_param_2, alarm_param_3
+ const int total = 10;
+
+ using (var connection = new SQLiteConnection(@"Data Source=" + dbFilePath))
+ {
+ connection.Open();
+ // ★ 성능/동시성 PRAGMA 적용 (WAL + busy_timeout 등) — C# 7.3 호환
+ csDbUtils.SqlitePragmaHelper.ApplyPragmas(connection, true); // forWriter: true
+
+ using (var tran = connection.BeginTransaction())
+ {
+ try
+ {
+ using (var command = connection.CreateCommand())
+ {
+ command.Transaction = tran;
+
+ command.CommandText =
+ "INSERT INTO TAlarmHistory (" +
+ "create_date, alarm_code, alarm_status, alarm_cname, alarm_sname, " +
+ "module_no, ct_no, alarm_param_1, alarm_param_2, alarm_param_3" +
+ ") VALUES (" + string.Join(",", Enumerable.Repeat("?", total)) + ");";
+
+ // 파라미터 생성
+ var p = new SQLiteParameter[total];
+ for (int i = 0; i < total; i++)
+ {
+ p[i] = (i == 0) ? new SQLiteParameter(DbType.DateTime) : new SQLiteParameter();
+ command.Parameters.Add(p[i]);
+ }
+
+ // 공통 메타
+ int j = 0;
+ p[j++].Value = string.Format("{0:yyyy-MM-dd HH:mm:ss}", dateTime); // 0 create_date
+ p[j++].Value = aAlarmCode; // 1 alarm_code
+ p[j++].Value = aAlarmStatus; // 2 alarm_status
+ p[j++].Value = DbConstData.GetAlarmName(aAlarmCode); // 3 alarm_cname
+ p[j++].Value = DbConstData.GetFlagName(aAlarmStatus); // 4 alarm_sname
+ p[j++].Value = mData.mNo; // 5 module_no
+
+ // 알람별 세부 파라미터 계산
+ int ctNo = 0;
+ double param1 = 0, param2 = 0, param3 = 0;
+
+ switch (aAlarmCode)
+ {
+ case 0: // Cell Under Voltage
+ ctNo = mData.AvgData.minCellNum;
+ param1 = mData.AvgData.minCellVoltage; param2 = 0;
+ break;
+ case 1: // Cell Over Voltage
+ ctNo = mData.AvgData.maxCellNum;
+ param1 = mData.AvgData.maxCellVoltage; param2 = 0;
+ break;
+ case 2: // Module Under Voltage
+ case 3: // Module Over Voltage
+ ctNo = 0;
+ param1 = mData.ValueData.voltage; param2 = 0;
+ break;
+ case 4: // Charge High Temperature
+ case 5: // Discharge High Temperature
+ ctNo = mData.AvgData.maxTempNum;
+ param1 = mData.AvgData.maxTemp; param2 = 0;
+ break;
+ case 6: // Charge Low Temperature
+ case 7: // Discharge Low Temperature
+ ctNo = mData.AvgData.minTempNum;
+ param1 = mData.AvgData.minTemp; param2 = 0;
+ break;
+ case 8: // Charge Over Current
+ case 9: // Discharge Over Current
+ ctNo = 0;
+ param1 = mData.ValueData.current; param2 = 0;
+ break;
+ case 10: // Low SOC
+ ctNo = 0;
+ param1 = mData.ValueData.SOC; param2 = 0;
+ break;
+ case 11: // Low SOH
+ ctNo = 0;
+ try
+ {
+ var sohProp = mData.ValueData.GetType().GetProperty("SOH");
+ if (sohProp != null)
+ {
+ object v = sohProp.GetValue(mData.ValueData, null);
+ param1 = Convert.ToDouble(v);
+ }
+ else
+ {
+ param1 = mData.ValueData.SOC;
+ }
+ }
+ catch
+ {
+ param1 = mData.ValueData.SOC;
+ }
+ param2 = 0;
+ break;
+ case 12: // Cell Voltage Difference
+ ctNo = 0;
+ param1 = mData.AvgData.minCellVoltage; param2 = mData.AvgData.maxCellVoltage;
+ break;
+ case 13: // Short Circuit
+ ctNo = 0;
+ param1 = mData.ValueData.voltage; param2 = mData.ValueData.current;
+ break;
+ case 14: // Module Comm Fail
+ ctNo = 0;
+ param1 = 0; param2 = 0;
+ break;
+ case 15: // MOSFET Over Temerature
+ ctNo = 0;
+ param1 = mData.ValueData.MosTemperature; param2 = 0;
+ break;
+ case 16: // CB Off
+ ctNo = 0;
+ param1 = mData.ValueData.voltage; param2 = mData.ValueData.current;
+ break;
+ case 17: // Voltage Measurement Error
+ ctNo = 0;
+ param1 = mData.AvgData.minCellVoltage; param2 = mData.AvgData.maxCellVoltage;
+ break;
+ case 18: // Temperature Measurement Error
+ ctNo = 0;
+ param1 = mData.AvgData.minTemp; param2 = mData.AvgData.maxTemp;
+ break;
+ case 19: // Battery Cell Unbalance
+ ctNo = 0;
+ param1 = mData.AvgData.minCellVoltage; param2 = mData.AvgData.maxCellVoltage;
+ break;
+ case 20: // Emergency Alarm
+ ctNo = 0;
+ param1 = mData.ValueData.voltage; param2 = mData.ValueData.current;
+ break;
+
+ // 상태 코드(스냅샷 저장) — 오타 보정: CHARING → CHARGING
+ case 21: // STS_STAND_BY
+ case 22: // STS_CHARGING
+ case 23: // STS_DISCHARGING
+ case 24: // STS_FLOAT_CHARGING
+ case 25: // STS_PRE_CHARGING
+ ctNo = 0;
+ param1 = mData.ValueData.voltage; param2 = mData.ValueData.current;
+ break;
+
+ default: // STS_UNKNOWN 등
+ ctNo = 0; param1 = 0; param2 = 0; param3 = 0;
+ break;
+ }
+
+ p[j++].Value = ctNo; // 6 ct_no
+ p[j++].Value = param1; // 7 alarm_param_1
+ p[j++].Value = param2; // 8 alarm_param_2
+ p[j++].Value = param3; // 9 alarm_param_3
+
+ command.ExecuteNonQuery();
+ }
+ tran.Commit();
+ return true;
+ }
+ catch
+ {
+ try { tran.Rollback(); } catch { /* ignore */ }
+ throw;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ }
+ }
+ }
+ }
+ #endregion
+
+ #region CREATE HISTORY DB TABLE
+ public static void DbCreate(string modelName, DateTime aDateTime)
+ {
+ // 일자 기준 DB 파일명 (yyMM/yyMMdd)
+ string dbFilename = string.Format(
+ csDbUtils.LogDbFileNameFormat,
+ aDateTime.ToString("yyMM"),
+ aDateTime.ToString("yyMMdd"),
+ modelName);
+
+ // 실행파일 경로 + 로그 DB 상대경로 + 파일명 안전 결합
+ string exeDir = Path.GetDirectoryName(Application.ExecutablePath);
+ if (string.IsNullOrEmpty(exeDir))
+ exeDir = AppDomain.CurrentDomain.BaseDirectory;
+
+ string logPath = (csDbUtils.LogDbFilePath ?? string.Empty)
+ .TrimStart(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
+ string dbDir = csUtils.CombineSafe(exeDir, logPath);
+ string dbFilePath = csUtils.CombineSafe(dbDir, dbFilename);
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilePath));
+
+ if (File.Exists(dbFilePath) == false)
+ // Create database
+ SQLiteConnection.CreateFile(dbFilePath);
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Create table
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ command.CommandText = DbConstData.Database.CreateTable;
+ command.ExecuteNonQuery();
+ }
+ }
+ catch (Exception)
+ {
+ }
+ finally
+ {
+ connection.Close();
+ }
+ }
+ }
+ #endregion
+
+ #region FLUSH ALARM HISTORY
+ // csDbThread 클래스 내부 어딘가(예: #region DB THREAD 아래)
+ private void FlushNow(string reason = null)
+ {
+ try
+ {
+ if (Config == null) return;
+
+ // 모델/수량 재확인
+ var modelName = csConstData.UART_MODEL[Config.UartModelIndex];
+ mQty = (Config.CommType == csConstData.CommType.COMM_RS485) ? Config.ModuleQty : 1;
+
+ // 스냅샷 확보
+ CsDeviceData snapshot;
+ lock (_stateLock)
+ {
+ snapshot = DeviceData != null ? DeviceData.DeepCopy() : null;
+ }
+ if (snapshot == null) return;
+
+ var now = DateTime.Now;
+ var anyAlarm = false;
+
+ // 모듈 값 1회 저장
+ int count = Math.Max(1, mQty);
+ for (int i = 0; i < count; i++)
+ {
+ // RS-485는 i+1, 단일 UART는 1
+ snapshot.ModuleData[i].mNo =
+ (Config.CommType == csConstData.CommType.COMM_RS485) ? (i + 1) : 1;
+
+ csDbUtils.BmsLogDataInsert(modelName, ref snapshot.ModuleData[i], now, 1);
+ }
+
+ // STOP 정보 기록
+ anyAlarm |= BmsAlarmDataInsert(modelName, (int)DbConstData.Alarm.STOP, (int)DbConstData.Flag.INFORMATION, snapshot.ModuleData[0], now);
+
+ if (anyAlarm)
+ {
+ CurrAlarmHistory = csDbUtils.GetBmsAlarmDataByDataTable(modelName, DateTime.Now, "");
+ RaiseOnUpdateAlarmHistory(CurrAlarmHistory);
+ }
+
+ if (!string.IsNullOrEmpty(reason))
+ RaiseOnPrint($"DB flushed ({reason}).");
+ }
+ catch (Exception ex)
+ {
+ RaiseOnPrint($"Flush error{(reason != null ? "(" + reason + ")" : "")}: {ex.Message}");
+ // 치명적 예외는 로깅만 하고 흐름 유지
+ csLog.SystemDbErrorLog(Config, ex.Message, DateTime.Now, Application.ExecutablePath);
+ }
+ }
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Threads/csUartThread.cs b/LFP_Manager/Threads/csUartThread.cs
new file mode 100644
index 0000000..70ef8f1
--- /dev/null
+++ b/LFP_Manager/Threads/csUartThread.cs
@@ -0,0 +1,780 @@
+using System;
+
+using System.Threading;
+using System.IO.Ports;
+using System.Windows.Forms;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Utils;
+using DevExpress.XtraGauges.Core.Model;
+using System.Collections.Concurrent;
+using System.ComponentModel;
+
+namespace LFP_Manager.Threads
+{
+ #region DELEGATE
+ // 표준 이벤트 패턴
+ public sealed class DataRecvEventArgs : EventArgs
+ {
+ public byte[] Data { get; }
+ public DataRecvEventArgs(byte[] data) => Data = data;
+ }
+
+ public sealed class PrintEventArgs : EventArgs
+ {
+ public int Id { get; }
+ public string Message { get; }
+ public PrintEventArgs(int id, string message)
+ => (Id, Message) = (id, message);
+ }
+ #endregion
+
+ class csUartThread
+ {
+ #region DELEGATE
+ // 표준 이벤트 패턴
+ public sealed class ModuleDataEventArgs : EventArgs
+ {
+ public CsDeviceData.DeviceModuleData Module { get; }
+ public ModuleDataEventArgs(CsDeviceData.DeviceModuleData module) => Module = module;
+ }
+ #endregion
+
+ #region CONSTANTS
+ private const int RX_PACKET_BUFFER_SIZE = 512;
+ #endregion
+
+ #region VARIABLES
+
+ private readonly CommConfig Config;
+ private CsDeviceData.DeviceModuleData ModuleData;
+ private Thread _serialComm = null;
+ private SerialPort sPort = null;
+ private CancellationTokenSource _cts;
+ private volatile bool _serialPortThreadEnd = true;
+
+ private readonly ISynchronizeInvoke _ui; // 보통 Form 또는 Control
+
+ public int ModuleId = 0;
+ private bool UartPolling = false;
+ private bool AutoUartTx = true;
+
+ private int addr_ch = 0;
+ private ushort RequestRegAddr = 0x0000; //Byul Init 0x0000
+ private ushort RequestRegLen = 50;
+ private bool rFlag = false;
+ private int rFlag2 = 0;
+
+ private ushort ReadRegAddr = 0x0000; //Byul Init 0x0000
+ private ushort ReadRegLen = 0x0000; //Byul Init 0x0000
+
+ private ushort WriteRegAddr = 0x0000; //Byul Init 0x0000
+ private short WriteCoilRegData = 0;
+ private byte[] WriteRegData;
+
+ private readonly ConcurrentQueue _rxQ = new ConcurrentQueue();
+
+ private TUartTxBuff UartTxBuff;
+
+ // 이벤트
+ public event EventHandler OnUpdate;
+ public event EventHandler OnDataRecv;
+ public event EventHandler OnPrint;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public csUartThread(int mId,
+ CommConfig aConfig,
+ ISynchronizeInvoke uiInvoker, // ← 추가
+ CsDeviceData.DeviceModuleData aModuleData)
+ {
+ ModuleId = mId;
+ Config = aConfig;
+ ModuleData = aModuleData;
+ _ui = uiInvoker; // Form(this) 또는 어떤 Control
+
+ UartTxBuff = new TUartTxBuff();
+ }
+
+ public bool Start(ref CommConfig aConfig, int sId, bool aPolling)
+ {
+ ModuleId = sId;
+ UartPolling = aPolling;
+
+ //if (!Open(aConfig.UartPort, aConfig.UartBaudrate))
+ if (!Open(aConfig.UartPort, 115200))
+ return false;
+
+ // 이중 시작 방지
+ if (_serialComm != null && _serialComm.IsAlive)
+ return true;
+
+ _serialPortThreadEnd = false;
+ _cts = new CancellationTokenSource();
+
+ _serialComm = new Thread(() => uartCommThread(_cts.Token))
+ {
+ IsBackground = true,
+ Name = "UartCommThread"
+ };
+ _serialComm.Start();
+ return true;
+ }
+
+ private void Stop()
+ {
+ _serialPortThreadEnd = true;
+ var cts = _cts;
+ _cts = null;
+ if (cts != null && !cts.IsCancellationRequested)
+ cts.Cancel();
+
+ var t = _serialComm;
+ _serialComm = null;
+ if (t != null && t.IsAlive)
+ {
+ try { t.Join(500); } catch { /* timeout 시 로그만 */ }
+ }
+
+ Close(); // SerialPort 닫기 및 핸들러 해제
+ }
+
+ public void Dispose()
+ {
+ Stop();
+ }
+
+ #endregion
+
+ #region COMMPORT CONTROLS
+
+ private void sDataReceived(object sender, SerialDataReceivedEventArgs e)
+ {
+ try
+ {
+ var sp = (SerialPort)sender;
+ int available = sp.BytesToRead;
+ if (available <= 0) return;
+
+ byte[] tmp = new byte[available];
+ int read = sp.Read(tmp, 0, tmp.Length);
+ for (int i = 0; i < read; i++)
+ _rxQ.Enqueue(tmp[i]);
+ }
+ catch (Exception)
+ {
+ /* 필요시 로그 */
+ }
+ }
+
+ private void sErrorReceived(object sender, System.IO.Ports.SerialErrorReceivedEventArgs e)
+ {
+ //
+ //csMakeDataFunction.SetData()
+ }
+
+ private void sPinChanged(object sender, System.IO.Ports.SerialPinChangedEventArgs e)
+ {
+ //
+ }
+
+ private bool Open(string cPort, int cBaudrate)
+ {
+ sPort = new SerialPort();
+ sPort.PortName = cPort;
+ sPort.BaudRate = cBaudrate;
+ sPort.DataReceived += sDataReceived;
+ sPort.ErrorReceived += sErrorReceived;
+ sPort.PinChanged += sPinChanged;
+
+ try
+ {
+ sPort.Open();
+ }
+ catch (Exception ex)
+ {
+ throw new Exception("Error Open - " + ex.Message);
+ }
+
+ return sPort.IsOpen;
+ }
+
+ private void Close()
+ {
+ if (sPort != null)
+ {
+ try
+ {
+ sPort.DataReceived -= sDataReceived;
+ sPort.ErrorReceived -= sErrorReceived;
+ sPort.PinChanged -= sPinChanged;
+ if (sPort.IsOpen) sPort.Close();
+ }
+ finally
+ {
+ sPort.Dispose();
+ sPort = null;
+ }
+ }
+ }
+
+ #endregion
+
+ #region PUBLIC FUNCTION
+
+ public void SetPolling(bool flag, int sId, ref CsDeviceData.DeviceModuleData aSystemData)
+ {
+ ModuleId = sId;
+ UartPolling = flag;
+ ModuleData = aSystemData;
+ ModuleData.mNo = ModuleId;
+ }
+
+ public void SetAutoTx(bool autoTx)
+ {
+ AutoUartTx = autoTx;
+ }
+
+ public void SetWriteReg(ushort WriteAddr, byte[] WriteData, bool ReplyFlag, int type)
+ {
+ WriteRegAddr = WriteAddr;
+
+ TUartTRxData uartTRxData = new TUartTRxData();
+ uartTRxData.type = type;
+ uartTRxData.data = WriteData;
+ uartTRxData.length = uartTRxData.data.Length;
+
+ UartTxBuff?.PutBuff(uartTRxData);
+ }
+
+ public void SetParam(ushort WriteAddr, short[] WriteData)
+ {
+ short[] wData = new short[1];
+ wData[0] = WriteData[0];
+
+ byte[] sData = CsModbusFunction.MakeWriteRegisterData((ushort)ModuleId, WriteAddr, wData);
+
+ if (sData != null)
+ {
+ TUartTRxData aData = new TUartTRxData();
+ aData.length = sData.Length;
+ aData.data = sData;
+
+ UartTxBuff.PutBuff(aData);
+ }
+ }
+
+ public void SendProcessFromApp(int sId, int mode, int index, int flag
+ , ref CsDeviceData.DeviceModuleData.DeviceParamData aParam, ref CsDeviceData.DeviceModuleData.DeviceCalibration aCalib)
+ {
+ short[] data = null;
+
+ switch (mode)
+ {
+ case csConstData.UART_PARAM_LIST.CELL_UNDER_VOLTAGE: // Cell Under Volatge Parameter
+ data = new short[1];
+ data[0] = aParam.CellUnderVoltageWarning; SetParam((ushort)(mode + 0), data);
+ data[0] = aParam.CellUnderVoltageTrip; SetParam((ushort)(mode + 1), data);
+ data[0] = aParam.CellUnderVoltageRelease; SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.CELL_OVER_VOLTAGE: // Cell Over Volatge Parameter
+ data = new short[1];
+ data[0] = aParam.CellOverVoltageWarning; SetParam((ushort)(mode + 0), data);
+ data[0] = aParam.CellOverVoltageTrip; SetParam((ushort)(mode + 1), data);
+ data[0] = aParam.CellOverVoltageRelease; SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.PACK_UNDER_VOLTAGE: // Pack Under Volatge Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.SysUnderVoltageWarning * 10); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.SysUnderVoltageTrip * 10); SetParam((ushort)(mode + 1), data);
+ data[0] = (short)(aParam.SysUnderVoltageRelease * 10); SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.PACK_OVER_VOLTAGE: // Pack Over Volatge Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.SysOverVoltageWarning * 10); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.SysOverVoltageTrip * 10); SetParam((ushort)(mode + 1), data);
+ data[0] = (short)(aParam.SysOverVoltageRelease * 10); SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.CHG_LOW_TEMPERATURE: // Charge Low Temperature Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.ChaLowTempWarning + 50); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.ChaLowTempTrip + 50); SetParam((ushort)(mode + 1), data);
+ data[0] = (short)(aParam.ChaLowTempRelease + 50); SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.CHG_HIGH_TEMPERATURE: // Pack High Temperature Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.ChaHighTempWarning + 50); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.ChaHighTempTrip + 50); SetParam((ushort)(mode + 1), data);
+ data[0] = (short)(aParam.ChaHighTempRelease + 50); SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.DCH_LOW_TEMPERATURE: // Charge Low Temperature Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.DchLowTempWarning + 50); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.DchLowTempTrip + 50); SetParam((ushort)(mode + 1), data);
+ data[0] = (short)(aParam.DchLowTempRelease + 50); SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.DCH_HIGH_TEMPERATURE: // Pack High Temperature Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.DchHighTempWarning + 50); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.DchHighTempTrip + 50); SetParam((ushort)(mode + 1), data);
+ data[0] = (short)(aParam.DchHighTempRelease + 50); SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.CHG_OVER_CURRENT: // Charge Over Current Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.ChaOverCurrentReleaseTime * 1); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.ChaOverCurrentTrip1 * 10); SetParam((ushort)(mode + 2), data);
+ data[0] = (short)(aParam.ChaOverCurrentTrip2 * 10); SetParam((ushort)(mode + 5), data);
+ break;
+ case csConstData.UART_PARAM_LIST.DCH_OVER_CURRENT: // Discharge Over Current Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.DchOverCurrentReleaseTime * 1); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.DchOverCurrentTrip1 * 10); SetParam((ushort)(mode + 2), data);
+ data[0] = (short)(aParam.DchOverCurrentTrip2 * 10); SetParam((ushort)(mode + 5), data);
+ break;
+ case csConstData.UART_PARAM_LIST.LOW_CAPACITY:
+ data = new short[1];
+ data[0] = aParam.LowSocWarning; SetParam((ushort)(mode + 0), data);
+ break;
+ case csConstData.UART_PARAM_LIST.DEFAULT_PARAM: // Default Parameter
+ int i = 0;
+
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+
+ try
+ {
+ //WaitForm.Show();
+ data = new short[1];
+
+ i = csConstData.UART_PARAM_LIST.CELL_UNDER_VOLTAGE;
+ data[0] = csConstData.UART_PARAM_DEFAULT.Warn_Cell_UV; SetParam((ushort)(i + 0), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Cell_UV; SetParam((ushort)(i + 1), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Release_Cell_UV; SetParam((ushort)(i + 2), data);
+ i = csConstData.UART_PARAM_LIST.PACK_UNDER_VOLTAGE;
+ data[0] = csConstData.UART_PARAM_DEFAULT.Warn_Pack_UV; SetParam((ushort)(i + 0), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Pack_UV; SetParam((ushort)(i + 1), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Release_Pack_UV; SetParam((ushort)(i + 2), data);
+ i = csConstData.UART_PARAM_LIST.CELL_OVER_VOLTAGE;
+ data[0] = csConstData.UART_PARAM_DEFAULT.Warn_Cell_OV; SetParam((ushort)(i + 0), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Cell_OV; SetParam((ushort)(i + 1), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Release_Cell_OV; SetParam((ushort)(i + 2), data);
+ i = csConstData.UART_PARAM_LIST.PACK_OVER_VOLTAGE;
+ data[0] = csConstData.UART_PARAM_DEFAULT.Warn_Pack_OV; SetParam((ushort)(i + 0), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Pack_OV; SetParam((ushort)(i + 1), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Release_Pack_OV; SetParam((ushort)(i + 2), data);
+
+ i = csConstData.UART_PARAM_LIST.CHG_OVER_CURRENT;
+ data[0] = csConstData.UART_PARAM_DEFAULT.Times_Charge_OC; SetParam((ushort)(i - 2), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.ReleaseTime_Charge_OC; SetParam((ushort)(i + 0), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Charge_OC1; SetParam((ushort)(i + 2), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Charge_OC2; SetParam((ushort)(i + 5), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Delay_Charge_OC1; SetParam((ushort)(i + 8), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Delay_Charge_OC2; SetParam((ushort)(i + 9), data);
+
+ i = csConstData.UART_PARAM_LIST.DCH_OVER_CURRENT;
+ data[0] = csConstData.UART_PARAM_DEFAULT.Times_Discharge_OC; SetParam((ushort)(i - 2), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.ReleaseTime_Discharge_OC; SetParam((ushort)(i + 0), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Discharge_OC1; SetParam((ushort)(i + 2), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Discharge_OC2; SetParam((ushort)(i + 5), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Delay_Discharge_OC1; SetParam((ushort)(i + 8), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Delay_Discharge_OC2; SetParam((ushort)(i + 9), data);
+
+ i = csConstData.UART_PARAM_LIST.CHG_LOW_TEMPERATURE;
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Warn_Charge_UT + 50); SetParam((ushort)(i + 0), data);
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Protect_Charge_UT + 50); SetParam((ushort)(i + 1), data);
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Release_Charge_UT + 50); SetParam((ushort)(i + 2), data);
+ i = csConstData.UART_PARAM_LIST.CHG_HIGH_TEMPERATURE;
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Warn_Charge_OT + 50); SetParam((ushort)(i + 0), data);
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Protect_Charge_OT + 50); SetParam((ushort)(i + 1), data);
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Release_Charge_OT + 50); SetParam((ushort)(i + 2), data);
+ i = csConstData.UART_PARAM_LIST.DCH_LOW_TEMPERATURE;
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Warn_Discharge_UT + 50); SetParam((ushort)(i + 0), data);
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Protect_Discharge_UT + 50); SetParam((ushort)(i + 1), data);
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Release_Discharge_UT + 50); SetParam((ushort)(i + 2), data);
+ i = csConstData.UART_PARAM_LIST.DCH_HIGH_TEMPERATURE;
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Warn_Discharge_OT + 50); SetParam((ushort)(i + 0), data);
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Protect_Discharge_OT + 50); SetParam((ushort)(i + 1), data);
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Release_Discharge_OT + 50); SetParam((ushort)(i + 2), data);
+
+ i = csConstData.UART_PARAM_LIST.LOW_CAPACITY;
+ data[0] = csConstData.UART_PARAM_DEFAULT.Warn_Low_Capacity + 0; SetParam((ushort)(i + 0), data);
+
+ i = csConstData.UART_PARAM_LIST.ENV_LOW_TEMPERATURE;
+ data[0] = 0; SetParam((ushort)(i + 0), data);
+ data[0] = 0; SetParam((ushort)(i + 1), data);
+ data[0] = 0; SetParam((ushort)(i + 2), data);
+ i = csConstData.UART_PARAM_LIST.ENV_HIGH_TEMPERATURE;
+ data[0] = 0; SetParam((ushort)(i + 0), data);
+ data[0] = 0; SetParam((ushort)(i + 1), data);
+ data[0] = 0; SetParam((ushort)(i + 2), data);
+ }
+ catch (Exception)
+ {
+
+ }
+ finally
+ {
+ //WaitForm?.Close();
+ }
+ break;
+ case 15: // Capcity change
+ data = new short[1];
+ i = csConstData.UART_PARAM_LIST.DESIGN_CAPACITY;
+ data[0] = (short)aCalib.CapCalib.DesignCapacity; SetParam((ushort)(i + 0), data);
+ i = csConstData.UART_PARAM_LIST.SOC_VALUE;
+ data[0] = (short)aCalib.CapCalib.SocValue; SetParam((ushort)(i + 0), data);
+ break;
+ case 16: // Charge Mode
+ data = new short[1];
+ i = csConstData.UART_CALIB_ADDR_LIST.CHAGE_MODE;
+ data[0] = (short)aCalib.ChaMode.Mode; SetParam((ushort)(i + 0), data);
+ data[0] = (short)aCalib.ChaMode.Value; SetParam((ushort)(i + 1), data);
+ break;
+ case 17: // BMS DateTime Set
+ data = new short[2];
+ i = csConstData.UART_CALIB_ADDR_LIST.BMS_DATETIME;
+ data[0] = (short)aCalib.BmsDateTime.sValue[0];
+ data[1] = (short)aCalib.BmsDateTime.sValue[1]; SetParam((ushort)(i + 0), data);
+ break;
+ case 18:
+ data = new short[1];
+ i = csConstData.UART_CALIB_ADDR_LIST.ANTI_THEFT_GYRO;
+ data[0] = (short)aCalib.AntiTheft.GyroScope; SetParam((ushort)(i + 0), data);
+ break;
+ case 19: // Clear Protect
+ data = new short[1];
+ i = csConstData.UART_CALIB_ADDR_LIST.ANTI_THEFT_GYRO;
+ data[0] = (short)0; SetParam((ushort)(i + 0), data);
+ data[0] = (short)aCalib.AntiTheft.GyroScope; SetParam((ushort)(i + 0), data);
+ break;
+ case 20:
+ data = new short[1];
+ i = csConstData.UART_CALIB_ADDR_LIST.ANTI_THEFT_COMM;
+ data[0] = (short)aCalib.AntiTheft.Comm; SetParam((ushort)(i + 0), data);
+ break;
+ default:
+ break;
+ }
+ }
+
+ #endregion
+
+ #region RX BUFFERING
+
+ private int GetBuff()
+ {
+ return _rxQ.TryDequeue(out var b) ? (0x0100 | b) : 0;
+ }
+
+ private void FlushBuff()
+ {
+ while (_rxQ.TryDequeue(out _)) { }
+ }
+
+ #endregion
+
+ #region TX BUFFERING
+
+ private byte[] MakeWriteRegData(ushort DevID, ushort WriteAddr, ushort WriteLen, ref ushort[] WriteData)
+ {
+ byte[] wData = null;
+
+ if (WriteLen > 0)
+ {
+
+ }
+
+ return wData;
+ }
+
+ private string MakeCheckSum(byte[] sData, int len)
+ {
+ string result = "";
+ int checksum = 0;
+
+ for (int i = 0; i < len; i++)
+ {
+ checksum += sData[i + 1];
+ }
+
+ checksum = ~checksum + 1;
+
+ result = String.Format("{0:X2}{1:X2}", (byte)(checksum >> 8), (byte)checksum);
+
+ return result;
+ }
+
+ private byte[] MakeTxDataUart()
+ {
+ byte[] sData = null;
+
+ rFlag2 = 0;
+
+ if ((UartTxBuff != null) && (UartTxBuff.CheckBuff()))
+ {
+ TUartTRxData sBuff = UartTxBuff.GetBuff();
+ if (sBuff != null)
+ {
+ sData = sBuff.data;
+ rFlag = true;
+ rFlag2 = sBuff.type;
+ }
+ }
+ else
+ {
+ if (UartPolling && AutoUartTx)
+ {
+ ushort sCmd;
+ switch (addr_ch)
+ {
+ case 0:
+ addr_ch = 1;
+ RequestRegAddr = 0x0000; //Byul Init 0x0000
+ RequestRegLen = 0x0040;
+ sCmd = csSerialCommFunction.READ_HOLDING_REG;
+ rFlag = true;
+ break;
+ case 1:
+ addr_ch = 2;
+ RequestRegAddr = 0x0040;
+ RequestRegLen = 0x0040;
+ sCmd = csSerialCommFunction.READ_HOLDING_REG;
+ rFlag = true;
+ break;
+ case 2:
+ addr_ch = 3;
+ RequestRegAddr = 0x0080;
+ RequestRegLen = 0x0020 + 7;
+ sCmd = csSerialCommFunction.READ_HOLDING_REG;
+ rFlag = true;
+ break;
+ case 3:
+ if (Config.ModuleQty > 1)
+ {
+ ModuleId++;
+ if (ModuleId > Config.ModuleQty)
+ {
+ ModuleId = 1;
+ }
+ }
+ addr_ch = 0;
+ sCmd = csSerialCommFunction.NO_CMD;
+ rFlag = false;
+ break;
+ default:
+ addr_ch = 0;
+ RequestRegAddr = 0x0000; //Byul Init 0x0000
+ RequestRegLen = 100;
+ sCmd = csSerialCommFunction.READ_HOLDING_REG;
+ break;
+ }
+ if (sCmd == csSerialCommFunction.NO_CMD)
+ {
+ sData = null;
+ }
+ else
+ {
+ sData = csSerialCommFunction.MakeReadRegisterData((ushort)ModuleId, sCmd, RequestRegAddr, RequestRegLen);
+ }
+ }
+ }
+ return sData;
+ }
+
+ #endregion
+
+ #region COMM THREAD
+
+ private readonly byte[] ReadBuf = new byte[RX_PACKET_BUFFER_SIZE];
+ ushort rPosition = 0;
+ bool BuffStart = false;
+
+ private void RecvPacketInit()
+ {
+ BuffStart = false;
+ rPosition = 0;
+ }
+
+ private void uartCommThread(CancellationToken token)
+ {
+ int RecvTimeout = Config.RecvWaitTime;
+ int TimeOutCount = 0;
+
+ StartSend:
+ while (!token.IsCancellationRequested && !_serialPortThreadEnd)
+ {
+ if (sPort == null || !sPort.IsOpen) { Thread.Sleep(50); continue; }
+
+ FlushBuff();
+
+ byte[] txData = MakeTxDataUart();
+ if (txData != null)
+ {
+ try
+ {
+ sPort.Write(txData, 0, txData.Length);
+ RaiseOnPrint(txData[0], csLog.trx_data_print(txData, txData.Length, 0));
+ }
+ catch
+ {
+ /* 로그 */
+ RaiseOnPrint(ModuleId, "UART-232 Thread - TX Buff Error !");
+ }
+ }
+
+ if (rFlag == true)
+ {
+ var deadline = DateTime.UtcNow.AddMilliseconds(RecvTimeout);
+ RecvPacketInit();
+
+ while (DateTime.UtcNow < deadline)
+ {
+ int gd = GetBuff();
+ if ((gd & 0x0100) == 0) { Thread.Sleep(1); continue; }
+
+ byte cData = (byte)(gd & 0xFF);
+
+ if (!BuffStart)
+ {
+ if (cData == (byte)ModuleId || cData == 0x7F)
+ {
+ rPosition = 0;
+ ReadBuf[rPosition++] = cData;
+ BuffStart = true;
+ }
+ }
+ else
+ {
+ if (rPosition >= ReadBuf.Length) { RecvPacketInit(); continue; }
+ ReadBuf[rPosition++] = cData;
+
+ int chk = CsSerialCommFunctionDelta.ModbusPacketFromSlaveCheck(ReadBuf, rPosition);
+ if (chk == 0) continue;
+
+ RaiseOnPrint(ReadBuf[0], csLog.trx_data_print(ReadBuf, rPosition, 1));
+
+ if (chk == 1)
+ {
+ int mID = ReadBuf[0];
+ if (mID > 0) mID--;
+ ModuleData.CommFail = false;
+ ModuleData.ShelfCommFail = false;
+ var rc = csSerialCommFunction.SerialRxProcess(
+ ReadBuf, RequestRegAddr, (ushort)rPosition, ref ModuleData);
+
+ var snapshot1 = ModuleData; // 필요 시 DeepCopy
+ RaiseOnUpdate(snapshot1);
+ Thread.Sleep(5);
+ goto StartSend;
+ }
+ else if (chk == 2)
+ {
+ rFlag = false;
+ RaiseOnPrint(ReadBuf[0], csLog.trx_data_print(ReadBuf, rPosition, 1));
+
+ goto StartSend;
+ }
+ else // -1
+ {
+ RecvPacketInit();
+ Thread.Sleep(50);
+ goto StartSend;
+ }
+ }
+ }
+
+ // timeout
+ if (rPosition > 0)
+ {
+ RaiseOnPrint(ReadBuf[0], csLog.trx_data_print(ReadBuf, rPosition, 1));
+ }
+ else
+ {
+ WriteRegAddr = 0;
+ TimeOutCount++;
+ if (TimeOutCount >= 5)
+ {
+ TimeOutCount = 5;
+ //SystemData[0].CommFail = true;
+ if (ModuleData.ShelfCommFail == false)
+ {
+ ModuleData.Reset();
+ ModuleData.ShelfCommFail = true;
+ }
+ }
+ Thread.Sleep(100);
+ }
+ var snapshot2 = ModuleData; // 필요 시 DeepCopy
+ RaiseOnUpdate(snapshot2);
+ }
+ else
+ {
+ Thread.Sleep(100);
+ } /* if (rFlag == true) */
+ rPosition = 0;
+ Thread.Sleep(50);
+ }
+ }
+
+ #endregion
+
+ #region SAFETY RAISE HELPER
+ private void RaiseOnUpdate(CsDeviceData.DeviceModuleData snapshot)
+ {
+ var handler = OnUpdate;
+ if (handler == null) return;
+
+ var args = new ModuleDataEventArgs(snapshot);
+
+ if (_ui != null && _ui.InvokeRequired)
+ {
+ try { _ui.BeginInvoke(new Action(() => handler(this, args)), null); }
+ catch { /* 폼 종료 중 등 예외 무시(로그만) */ }
+ }
+ else
+ {
+ handler(this, args);
+ }
+ }
+
+ private void RaiseOnDataRecv(byte[] data)
+ {
+ var handler = OnDataRecv;
+ if (handler == null) return;
+
+ var args = new DataRecvEventArgs(data);
+
+ if (_ui != null && _ui.InvokeRequired)
+ {
+ try { _ui.BeginInvoke(new Action(() => handler(this, args)), null); }
+ catch { }
+ }
+ else
+ {
+ handler(this, args);
+ }
+ }
+
+ private void RaiseOnPrint(int id, string msg)
+ {
+ var handler = OnPrint;
+ if (handler == null) return;
+
+ var args = new PrintEventArgs(id, msg);
+
+ if (_ui != null && _ui.InvokeRequired)
+ {
+ try { _ui.BeginInvoke(new Action(() => handler(this, args)), null); }
+ catch { }
+ }
+ else
+ {
+ handler(this, args);
+ }
+ }
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Utils/CsCRC16.cs b/LFP_Manager/Utils/CsCRC16.cs
new file mode 100644
index 0000000..71e3d18
--- /dev/null
+++ b/LFP_Manager/Utils/CsCRC16.cs
@@ -0,0 +1,89 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.CompilerServices;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace LFP_Manager.Utils
+{
+ internal class CsCRC16
+ {
+ static readonly byte[] auchCRCHi = {
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
+ 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
+ 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
+ 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,
+ 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
+ 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
+ 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
+ 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
+ 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
+ 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
+ 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
+ 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
+ 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40
+ };
+
+ static readonly byte[] auchCRCLo = {
+ 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4,
+ 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,
+ 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD,
+ 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,
+ 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7,
+ 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A,
+ 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE,
+ 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,
+ 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2,
+ 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,
+ 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB,
+ 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,
+ 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91,
+ 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,
+ 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88,
+ 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
+ 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,0x40
+ };
+ private static ushort GetCrc16(byte[] pby, int nSize)
+ {
+ byte hi = 0xFF, lo = 0xFF;
+ for (int i = 0; i < nSize; i++)
+ {
+ ushort idx = (ushort)(lo ^ pby[i]);
+ lo = (byte)(hi ^ auchCRCHi[idx]);
+ hi = auchCRCLo[idx];
+ }
+ return (ushort)((hi << 8) | lo); // [Hi:lo>>8 | Lo:lo]
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static bool TryAppendCrcLowHigh(byte[] buf, int payloadLen, int type)
+ {
+ if (buf == null || payloadLen < 0 || buf.Length < payloadLen + 2)
+ return false;
+
+ ushort crc = GetCrc16(buf, payloadLen);
+ buf[payloadLen + 0] = (byte)((crc >> 0) & 0xFF); // Low
+ buf[payloadLen + 1] = (byte)((crc >> 8) & 0xFF); // High
+
+ return true;
+ }
+
+ // CsCRC16에 Span 버전이 없다면 아래 형태로 추가를 권장합니다.
+ public static ushort CsCRC16_GetCrc16(ReadOnlySpan data)
+ {
+ byte hi = 0xFF, lo = 0xFF;
+ for (int i = 0; i < data.Length; i++)
+ {
+ ushort idx = (ushort)(lo ^ data[i]);
+ lo = (byte)(auchCRCHi[idx] ^ hi);
+ hi = auchCRCLo[idx];
+ }
+ return (ushort)((hi << 8) | lo);
+ }
+ }
+}
diff --git a/LFP_Manager/Utils/CsDbProcess.cs b/LFP_Manager/Utils/CsDbProcess.cs
new file mode 100644
index 0000000..e3bd449
--- /dev/null
+++ b/LFP_Manager/Utils/CsDbProcess.cs
@@ -0,0 +1,1400 @@
+using LFP_Manager.DataStructure;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SQLite;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Utils
+{
+ class csDbProcess
+ {
+ // Query - SELECT * FROM TABLE_NAME like('%neon%',field_name) - 문자를 포함하는 데이터 검색
+ public static string DbFileName = @"LFPS-48100S-J_INV.db";
+ public static string DbFilePathFormat = @"\db\";
+ public static string DbFileNameFormat = @"\db\{0}_{1}.db";
+ public static string DbSchemaTableFileName = @"\sql\DB_SCHEMA_TABLE.sql";
+ public static string ModuleTableName = @"TModule";
+
+ public static string LogDbFilePath = @"\db";
+ public static string LogDbFileNameFormat = @"\{0}\{1}_{2}_LOG.DB";
+ public static string LogDbSchemaTableFileName = @"\sql\LOG_DB_SCHEMA_TABLE.sql";
+
+ public static DateTime Delay(int ms)
+ {
+ DateTime thisMoment = DateTime.Now;
+ TimeSpan duration = new TimeSpan(0, 0, 0, 0, ms);
+ DateTime afterMoment = thisMoment.Add(duration);
+
+ while (afterMoment >= thisMoment)
+ {
+ System.Windows.Forms.Application.DoEvents();
+
+ thisMoment = DateTime.Now;
+ }
+
+ return DateTime.Now;
+ }
+
+ //트랜잭션 시작
+ public static void BeginTran(SQLiteConnection conn)
+ {
+ SQLiteCommand command = new SQLiteCommand("Begin", conn);
+ command.ExecuteNonQuery();
+ command.Dispose();
+ }
+
+ //트랜잭션 완료
+ public static void CommitTran(SQLiteConnection conn)
+ {
+ SQLiteCommand command = new SQLiteCommand("Commit", conn);
+ command.ExecuteNonQuery();
+ command.Dispose();
+ }
+
+ #region CREATE DATABASE
+
+ public static void DbCreate(string mSN, string bName)
+ {
+ string result = "";
+ string dbFilename = String.Format(DbFileNameFormat, MakeLotNumber(mSN, bName), bName);
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilePath));
+
+ if (File.Exists(dbFilePath) == true)
+ {
+ //throw new Exception("Already have db file - Failed to create db file");
+ return;
+ }
+ else
+ {
+ // Create database
+ SQLiteConnection.CreateFile(dbFilePath);
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Create table
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + DbSchemaTableFileName;
+ string query = File.ReadAllText(schemaFile);
+
+ command.CommandText = query;
+ SQLiteDataReader reader = null;
+ reader = command.ExecuteReader();
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return;
+ }
+
+ public static void LogDbCreate(string aModel)
+ {
+ string result = "";
+ string ModelName = aModel;
+ //public static string LogDbFileNameFormat = @"\{0}\{1}_{2}_LOG.DB";
+ string dbFilename = String.Format(LogDbFileNameFormat
+ , String.Format("{0:yyMM}", DateTime.Now)
+ , String.Format("{0:yyMMdd}", DateTime.Now)
+ , ModelName
+ );
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + LogDbFilePath + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilePath));
+
+ if (File.Exists(dbFilePath) == true)
+ {
+ //throw new Exception("Already have db file - Failed to create db file");
+ return;
+ }
+ else
+ {
+ // Create database
+ SQLiteConnection.CreateFile(dbFilePath);
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Create table
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + LogDbSchemaTableFileName;
+ string query = File.ReadAllText(schemaFile);
+
+ command.CommandText = query;
+ SQLiteDataReader reader = null;
+ reader = command.ExecuteReader();
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return;
+ }
+
+ public static void LogDbCreateNew(string aModel)
+ {
+ string result = "";
+ string ModelName = aModel;
+ //public static string LogDbFileNameFormat = @"\{0}\{1}_{2}_LOG.DB";
+ string dbFilename = String.Format(LogDbFileNameFormat
+ , String.Format("{0:yyMM}", DateTime.Now)
+ , String.Format("{0:yyMMdd}", DateTime.Now)
+ , ModelName
+ );
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + LogDbFilePath + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilePath));
+
+ // Create database
+ SQLiteConnection.CreateFile(dbFilePath);
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Create table
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + LogDbSchemaTableFileName;
+ string query = File.ReadAllText(schemaFile);
+
+ command.CommandText = query;
+ SQLiteDataReader reader = null;
+ reader = command.ExecuteReader();
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return;
+ }
+
+ #endregion
+
+ #region MAKE LOT NUMBER
+ public static string MakeLotNumber(string mSN)
+ {
+ string LotNo = mSN.Substring(1, 11) + "000";
+ return LotNo;
+ }
+
+ public static string MakeLotNumber(string mSN, string bName)
+ {
+ string LotNo;
+
+ if (bName == "BMCB_J")
+ LotNo = mSN.Substring(0, 10) + "0000";
+ else
+ LotNo = mSN.Substring(1, 11) + "000";
+ return LotNo;
+ }
+
+ #endregion
+
+ #region Excute Database
+ public static DataTable DbSqlExcute(string path, string query, bool create_db_flag = false)
+ {
+ string result = "";
+ DataTable dtResult = null;
+ string dbFilename = Path.GetDirectoryName(path) + DbFileName;
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFilename)) == false)
+ Directory.CreateDirectory(Path.GetDirectoryName(dbFilename));
+
+ // Create database
+ if (File.Exists(dbFilename) == false)
+ {
+ if (create_db_flag == true)
+ SQLiteConnection.CreateFile(dbFilename);
+ else
+ throw new Exception("No database file - " + DbFileName);
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilename;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Create table
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //command.CommandText = "CREATE TABLE File (Name text, Size bigint, Modified datetime);";
+ command.CommandText = query;
+ SQLiteDataReader reader = null;
+ //command.ExecuteNonQuery();
+ reader = command.ExecuteReader();
+ dtResult = new DataTable();
+ dtResult.Load(reader);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable DbSqlExcuteA1(string path, string query)
+ {
+ DataTable dtResult = null;
+ string dbFilename = System.IO.Path.GetDirectoryName(path) + DbFileName;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilename)) == false)
+ Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilename));
+
+ if (File.Exists(dbFilename) == false)
+ // Create database
+ SQLiteConnection.CreateFile(dbFilename);
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilename;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Excute Query
+ var adpt = new SQLiteDataAdapter(query, connection);
+ DataSet ds = new DataSet();
+ adpt.Fill(ds);
+
+ dtResult = ds.Tables[0];
+ }
+ catch (Exception e)
+ {
+ throw e;
+ }
+ finally
+ {
+ connection.Close();
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable DbSqlExcuteA(string lot, string query, string bName, bool create_db_flag = false)
+ {
+ string result = "";
+ DataTable dtResult = new DataTable();
+ string lotNo = lot;
+ string dbFilename = String.Format(DbFileNameFormat, lotNo, bName);
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false)
+ {
+ if (create_db_flag)
+ Directory.CreateDirectory(Path.GetDirectoryName(dbFilePath));
+ else
+ throw new Exception("No DB file path - " + Path.GetDirectoryName(dbFilePath));
+ }
+ if (File.Exists(dbFilePath) == false)
+ {
+ if (create_db_flag)
+ SQLiteConnection.CreateFile(dbFilePath);
+ else
+ throw new Exception(String.Format("No DB file - DbSqlExcuteA ({0})", dbFilename));
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Excute Query
+ var adpt = new SQLiteDataAdapter(query, connection);
+ DataSet ds = new DataSet();
+ adpt.Fill(ds);
+ if (ds.Tables.Count > 0)
+ dtResult = ds.Tables[0];
+ }
+ catch (Exception ex)
+ {
+ result = ex.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable DbSqlExcuteA2(string dbFileName, string query, bool create_db_flag = false)
+ {
+ string result = "";
+ DataTable dtResult = new DataTable();
+ string lotNo = dbFileName.Substring(0, 9);
+ string dbFilename = String.Format(DbFilePathFormat, lotNo) + dbFileName;
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false)
+ {
+ if (create_db_flag)
+ Directory.CreateDirectory(Path.GetDirectoryName(dbFilePath));
+ else
+ throw new Exception("No DB file path - " + Path.GetDirectoryName(dbFilePath));
+ }
+ if (File.Exists(dbFilePath) == false)
+ {
+ if (create_db_flag)
+ SQLiteConnection.CreateFile(dbFilePath);
+ else
+ throw new Exception(String.Format("No DB file - DbSqlExcuteA ({0})", dbFilename));
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Excute Query
+ var adpt = new SQLiteDataAdapter(query, connection);
+ DataSet ds = new DataSet();
+ adpt.Fill(ds);
+ if (ds.Tables.Count > 0)
+ dtResult = ds.Tables[0];
+ }
+ catch (Exception ex)
+ {
+ result = ex.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+ public static DataTable DbSqlExcuteA3(string dbFileName, string query, bool create_db_flag = false)
+ {
+ string result = "";
+ DataTable dtResult = new DataTable();
+ string dbFilePath = dbFileName;
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false)
+ {
+ if (create_db_flag)
+ Directory.CreateDirectory(Path.GetDirectoryName(dbFilePath));
+ else
+ throw new Exception("No DB file path - " + Path.GetDirectoryName(dbFilePath));
+ }
+ if (File.Exists(dbFilePath) == false)
+ {
+ if (create_db_flag)
+ SQLiteConnection.CreateFile(dbFilePath);
+ else
+ throw new Exception(String.Format("No DB file - DbSqlExcuteA ({0})", dbFileName));
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Excute Query
+ var adpt = new SQLiteDataAdapter(query, connection);
+ DataSet ds = new DataSet();
+ adpt.Fill(ds);
+ if (ds.Tables.Count > 0)
+ dtResult = ds.Tables[0];
+ }
+ catch (Exception ex)
+ {
+ result = ex.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ #endregion
+
+ #region BMS DATA INSERT AND UPDATE
+
+ public static void BmsLogDataInsert(string modelName, ref CsDeviceData.DeviceModuleData mData, DateTime dateTime, int cvUnit)
+ {
+ if (string.IsNullOrEmpty(modelName))
+ throw new ArgumentNullException(nameof(modelName));
+ if (mData == null)
+ throw new ArgumentNullException(nameof(mData));
+ if (cvUnit <= 0)
+ throw new ArgumentException("cvUnit must be greater than 0", nameof(cvUnit));
+
+ string dbFilename = GetLogDbFileName(modelName);
+ string dbFilePath = GetLogDbFilePath(dbFilename);
+ ValidateDbPath(dbFilePath);
+
+ using (var connection = new SQLiteConnection(string.Format("Data Source={0}", dbFilePath)))
+ {
+ try
+ {
+ connection.Open();
+ using (var transaction = connection.BeginTransaction())
+ {
+ try
+ {
+ InsertModuleData(connection, modelName, mData, dateTime, cvUnit);
+ transaction.Commit();
+ }
+ catch
+ {
+ transaction.Rollback();
+ throw;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(string.Format("Failed to insert BMS log data: {0}", ex.Message), ex);
+ }
+ }
+ }
+
+ private static string GetLogDbFileName(string modelName)
+ {
+ return string.Format(LogDbFileNameFormat,
+ DateTime.Now.ToString("yyMM"),
+ DateTime.Now.ToString("yyMMdd"),
+ modelName);
+ }
+
+ private static string GetLogDbFilePath(string dbFilename)
+ {
+ string exePath = Path.GetDirectoryName(Application.ExecutablePath);
+ // LogDbFilePath가 이미 '\'로 시작한다면 제거
+ string cleanLogPath = LogDbFilePath.TrimStart('\\');
+ string cleanDbFilename = dbFilename.TrimStart('\\');
+ string fullPath = Path.Combine(exePath, cleanLogPath);
+ return Path.Combine(fullPath, cleanDbFilename);
+ }
+
+ private static void ValidateDbPath(string dbFilePath)
+ {
+ string directory = Path.GetDirectoryName(dbFilePath);
+ if (!Directory.Exists(directory))
+ throw new DirectoryNotFoundException(string.Format("Log DB directory not found: {0}", directory));
+ if (!File.Exists(dbFilePath))
+ throw new FileNotFoundException(string.Format("Log DB file not found: {0}", dbFilePath));
+ }
+
+ private static void InsertModuleData(SQLiteConnection connection, string modelName, CsDeviceData.DeviceModuleData mData, DateTime dateTime, int cvUnit)
+ {
+ var columnNames = GetColumnNames(mData);
+ var parameters = CreateParameters(mData, dateTime, cvUnit);
+
+ using (var command = connection.CreateCommand())
+ {
+ var paramNames = new List();
+ foreach (var param in parameters)
+ {
+ paramNames.Add("@" + param.ParameterName);
+ }
+
+ command.CommandText = string.Format(
+ "INSERT INTO TModuleValue ({0}) VALUES ({1})",
+ string.Join(", ", columnNames),
+ string.Join(", ", paramNames));
+
+ command.Parameters.AddRange(parameters);
+ command.ExecuteNonQuery();
+ }
+ }
+
+ private static List GetColumnNames(CsDeviceData.DeviceModuleData mData)
+ {
+ var columns = new List
+ {
+ "create_date",
+ "module_no",
+ "model_name",
+ "module_sn",
+ "fw_ver",
+ "comm_fail",
+ "op_status",
+ "alarm_status",
+ "warning",
+ "fault",
+ "module_voltage",
+ "module_current",
+ "module_soc",
+ "module_soh",
+ "module_cyclecount"
+ };
+
+ // Add cell voltage columns
+ for (int i = 1; i <= mData.cellQty; i++)
+ {
+ columns.Add(string.Format("cell_voltage_{0:00}", i));
+ }
+
+ // Add temperature columns
+ for (int i = 1; i <= mData.tempQty; i++)
+ {
+ columns.Add(string.Format("temperature_{0:00}", i));
+ }
+
+ columns.Add("ext1_temp");
+ columns.Add("ext2_temp");
+ columns.Add("chg_option");
+
+ return columns;
+ }
+
+ private static SQLiteParameter[] CreateParameters(CsDeviceData.DeviceModuleData mData, DateTime dateTime, int cvUnit)
+ {
+ var parameters = new List
+ {
+ new SQLiteParameter("create_date", dateTime),
+ new SQLiteParameter("module_no", mData.mNo),
+ new SQLiteParameter("model_name", mData.Information.ModelName),
+ new SQLiteParameter("module_sn", mData.Information.HwSerialNumber),
+ new SQLiteParameter("fw_ver", mData.Information.SwProductRev),
+ new SQLiteParameter("comm_fail", mData.ShelfCommFail),
+ new SQLiteParameter("op_status", mData.StatusData.status),
+ new SQLiteParameter("alarm_status", mData.StatusData.batteryStatus),
+ new SQLiteParameter("warning", mData.StatusData.warning),
+ new SQLiteParameter("fault", mData.StatusData.protect),
+ new SQLiteParameter("module_voltage", (mData.ValueData.voltage / 10.0).ToString()),
+ new SQLiteParameter("module_current", (mData.ValueData.current / 10.0).ToString()),
+ new SQLiteParameter("module_soc", (mData.ValueData.SOC / 10.0).ToString()),
+ new SQLiteParameter("module_soh", (mData.ValueData.SOH / 10.0).ToString()),
+ new SQLiteParameter("module_cyclecount", mData.ValueData.cycleCount.ToString())
+ };
+
+ // Add cell voltage parameters
+ for (int i = 0; i < mData.cellQty; i++)
+ {
+ parameters.Add(new SQLiteParameter(
+ string.Format("cell_voltage_{0:00}", i + 1),
+ (mData.ValueData.CellVoltage[i] / (float)cvUnit).ToString()));
+ }
+
+ // Add temperature parameters
+ for (int i = 0; i < mData.tempQty; i++)
+ {
+ parameters.Add(new SQLiteParameter(
+ string.Format("temperature_{0:00}", i + 1),
+ (mData.ValueData.CellTemperature[i] / 10.0).ToString()));
+ }
+
+ parameters.Add(new SQLiteParameter("ext1_temp", (mData.ValueData.MosTemperature / 10.0).ToString()));
+ parameters.Add(new SQLiteParameter("ext2_temp", (mData.ValueData.AmbTemperature / 10.0).ToString()));
+ parameters.Add(new SQLiteParameter("chg_option", mData.CalibrationData.Current.ChargeOption.ToString()));
+
+ return parameters.ToArray();
+ }
+
+ public static DataTable GetDataTable(string bSN, string aTableName, string bName)
+ {
+ string result = "";
+ DataTable dtResult = null;
+ string dbFilename = String.Format(DbFileNameFormat, MakeLotNumber(bSN, bName), bName);
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFilePath) == false)
+ throw new Exception("No DB file");
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = String.Format("SELECT * FROM {0}", aTableName);
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ dtResult = new DataTable();
+ adapter.Fill(dtResult);
+ dtResult.TableName = aTableName;
+
+ CommitTran(connection);
+
+ System.Windows.Forms.Application.DoEvents();
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable GetDataTableBySelect(string bSN, string sql, string aTableName, string bName)
+ {
+ string result = "";
+ DataTable dtResult = null;
+ string dbFilename = String.Format(DbFileNameFormat, MakeLotNumber(bSN, bName), bName);
+ string dbFilePath = System.IO.Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFilePath) == false)
+ throw new Exception(String.Format("No DB file - {0}", dbFilePath));
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = sql;
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ dtResult = new DataTable();
+ adapter.Fill(dtResult);
+ dtResult.TableName = aTableName;
+
+ System.Windows.Forms.Application.DoEvents();
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+
+ CommitTran(connection);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "")
+ throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable GetDataTableBySelectFromDbName(string dbFileName, string sql, string aTableName, string bName)
+ {
+ string result = "";
+ DataTable dtResult = null;
+
+ string lotNo = csDbUtils.MakeLotNumber(dbFileName.Substring(0, 8), bName);
+ string dbFilename = String.Format(@"\db\{0}\{1}", lotNo, dbFileName);
+ string dbFilePath = System.IO.Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFilePath) == false)
+ throw new Exception(String.Format("No DB file - {0}", dbFilePath));
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = sql;
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ dtResult = new DataTable();
+ adapter.Fill(dtResult);
+ dtResult.TableName = aTableName;
+
+ System.Windows.Forms.Application.DoEvents();
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+
+ CommitTran(connection);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "")
+ throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable GetDataTableByFileName(string fileName, string sql, string aTableName)
+ {
+ string result = "";
+ DataTable dtResult = null;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(fileName)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(fileName) == false)
+ throw new Exception("No DB file");
+ // Open database
+ string strConn = @"Data Source=" + fileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = sql;
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ dtResult = new DataTable();
+ adapter.Fill(dtResult);
+ dtResult.TableName = aTableName;
+
+ System.Windows.Forms.Application.DoEvents();
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+
+ CommitTran(connection);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "")
+ throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable GetModuleMatchTableByFgNo(string fg_no, string bName)
+ {
+ DataTable dtResult = null;
+
+ int a, b, c;
+ a = Convert.ToInt32(fg_no);
+ b = a / 300 + 1;
+ c = a % 300;
+ if ((c == 0) && (b > 0)) b--;
+ string mSN = String.Format("1{0:yy}{1:00}{2:000}", DateTime.Now, b, c);
+ string lotNo = csDbUtils.MakeLotNumber(mSN, bName);
+ string dbfilePath = Path.GetDirectoryName(Application.ExecutablePath) + String.Format(DbFilePathFormat, lotNo);
+ string[] filePaths = Directory.GetFiles(dbfilePath, "*.db");
+
+ if (filePaths.Length > 0)
+ {
+ for (int i = 0; i < filePaths.Length; i++)
+ {
+ string fileName = Path.GetFileName(filePaths[i]);
+ byte[] bfilName = Encoding.ASCII.GetBytes(fileName);
+
+ dtResult = GetDataTableByFileName(filePaths[i], String.Format("SELECT * FROM TModuleMatch where fg_no={0}", fg_no), "TModuleMatch");
+ if ((dtResult != null) && (dtResult.Rows.Count == 1)) break;
+ }
+ }
+ if ((dtResult == null) || (dtResult.Rows.Count == 0))
+ throw new Exception(String.Format("No match data - {0}", fg_no));
+
+ return dtResult;
+ }
+
+ public static void BmsPcbMatchDataInsert(string dbFileName, DataRow sRow)
+ {
+ string result = "";
+ int resultCode = (int)SQLiteErrorCode.Unknown;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFileName)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFileName) == false)
+ throw new Exception(String.Format("No DB file - BmsDataInsert ({0})", dbFileName));
+
+ // Open database
+ string strConn = @"Data Source=" + dbFileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait
+ {
+ StartPosition = FormStartPosition.CenterScreen
+ };
+
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = "INSERT INTO"
+ + " TBmsPcbMatchTable"
+ + " (PCB1_SERIAL_NUMBER, MODULE_SERIAL_NUMBER, create_date, modify_date)" // 2
+ + " Values (?,?,?,?);";
+ SQLiteParameter[] p = new SQLiteParameter[4];
+
+ for (int i = 0; i < 4; i++)
+ {
+ p[i] = new SQLiteParameter();
+ command.Parameters.Add(p[i]);
+ }
+
+ int j = 0;
+ p[j++].Value = sRow["PCB1_SERIAL_NUMBER"]; // pcb_sn
+ p[j++].Value = sRow["MODULE_SERIAL_NUMBER"]; // module_sn
+ p[j++].Value = DateTime.Now; // create_date
+ p[j++].Value = DateTime.Now; // modify_date
+
+ command.ExecuteNonQuery();
+
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+ System.Windows.Forms.Application.DoEvents();
+
+ CommitTran(connection);
+ }
+ }
+ catch (SQLiteException sqle)
+ {
+ // Handle DB exception
+ result = sqle.Message;
+ resultCode = sqle.ErrorCode;
+ }
+ catch (IndexOutOfRangeException ie)
+ {
+ // If you think there might be a problem with index range in the loop, for example
+ result = ie.Message;
+ resultCode = 9999;
+ }
+ catch (Exception ex)
+ {
+ result = ex.Message;
+ resultCode = 9998;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "")
+ {
+ if (resultCode == 9998) throw new Exception(result);
+ else if (resultCode == 9999) throw new IndexOutOfRangeException(result);
+ else throw new SQLiteException((SQLiteErrorCode)resultCode, result);
+ }
+ }
+ }
+ }
+
+ public static void ErrorLogInsert(string dbFileName, DataRow sRow, string Process, string ErrType, string ErrMsg)
+ {
+ string result = "";
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFileName)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFileName) == false)
+ throw new Exception(String.Format("No DB file - ErrorLogInsert ({0})", dbFileName));
+
+ // Open database
+ string strConn = @"Data Source=" + dbFileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = "INSERT INTO"
+ + " TErrorLogTable"
+ + " (create_date, MODULE_SERIAL_NUMBER, PCB1_SERIAL_NUMBER, PROCESS, ERROR_TYPE, ERROR_MSG)" // 2
+ + " Values (?,?,?,?,?,?);";
+ SQLiteParameter[] p = new SQLiteParameter[6];
+
+ for (int i = 0; i < 6; i++)
+ {
+ p[i] = new SQLiteParameter();
+ command.Parameters.Add(p[i]);
+ }
+
+ int j = 0;
+ p[j++].Value = DateTime.Now; // create_date
+ p[j++].Value = sRow["MODULE_SERIAL_NUMBER"]; // module_sn
+ p[j++].Value = sRow["PCB1_SERIAL_NUMBER"]; // pcb_sn
+ p[j++].Value = Process; // process
+ p[j++].Value = ErrType; // error type
+ p[j++].Value = ErrMsg; // error message
+
+ command.ExecuteNonQuery();
+
+ CommitTran(connection);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ }
+
+ #endregion
+
+ #region SELECT QUARY
+
+ public static int DbQuaryExcuteToDataTable(string dbFileName, string Quary, ref DataTable rDT)
+ {
+ int result = 0;
+ string resultStr = String.Empty;
+
+ string strConn = @"Data Source=" + dbFileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = Quary;
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ rDT = new DataTable();
+ adapter.Fill(rDT);
+ //rDT.TableName = "TModuleValue";
+
+ CommitTran(connection);
+
+ result = rDT.Rows.Count;
+
+ System.Windows.Forms.Application.DoEvents();
+ }
+ }
+ catch (Exception e)
+ {
+ resultStr = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (resultStr != "") throw new Exception(resultStr);
+ }
+ }
+ return result;
+ }
+
+ public static void CreateLogDbFile(string dbFileName)
+ {
+ string result = "";
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFileName)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFileName) == true)
+ throw new Exception(String.Format("Already have DB file - DbQuaryExcuteToDbFile({0})", dbFileName));
+
+ // Create database
+ SQLiteConnection.CreateFile(dbFileName);
+
+ // Open database
+ string strConn = @"Data Source=" + dbFileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + LogDbSchemaTableFileName;
+ string query = File.ReadAllText(schemaFile);
+
+ command.CommandText = query;
+ SQLiteDataReader reader = null;
+ reader = command.ExecuteReader();
+
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+ System.Windows.Forms.Application.DoEvents();
+
+ CommitTran(connection);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ }
+
+ public static void DbInsertDataToDbFile(string dbFileName, DataRow dtRow)
+ {
+ string result = "";
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFileName)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFileName) == false)
+ throw new Exception(String.Format("No DB file - DbInsertDataToDbFile({0})", dbFileName));
+
+ // Open database
+ string strConn = @"Data Source=" + dbFileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ command.CommandText = String.Format("INSERT INTO TModuleValue (");
+ command.CommandText += "create_date" // 0
+ + ", module_no" // 1
+ + ", pcb_sn" // 2
+ + ", module_sn" // 3
+ + ", fw_ver" // 4
+ + ", comm_fail" // 5
+ + ", op_status" // 6
+ + ", alarm_status" // 7
+ + ", warning" // 8
+ + ", fault" // 9
+ + ", module_voltage" // 10
+ + ", module_current" // 11
+ + ", module_soc" // 12
+ + ", module_soh" // 13
+ ;
+ for (int i = 0; i < 15; i++)
+ {
+ command.CommandText += String.Format(", cell_voltage_{0:00}", i + 1); // 14 ~ 28; 15 cells
+ }
+ for (int i = 0; i < 6; i++)
+ {
+ command.CommandText += String.Format(", temperature_{0:00}", i + 1); // 29 ~ 34; 6 temps
+ }
+ command.CommandText += ""
+ + ", chg_option" // 35
+ + ", chg_cal" // 36
+ + ", dch_cal" // 37
+ + ")"
+ + " Values (";
+
+ int total = dtRow.Table.Columns.Count;
+
+ for (int i = 0; i < (total - 1); i++) command.CommandText += "?,";
+ command.CommandText += "?);";
+
+ SQLiteParameter[] p = new SQLiteParameter[total];
+
+ for (int i = 0; i < total; i++)
+ {
+ if (i == 0)
+ p[i] = new SQLiteParameter(DbType.DateTime);
+ else
+ p[i] = new SQLiteParameter();
+ command.Parameters.Add(p[i]);
+ }
+
+ int j = 0;
+ p[j++].Value = String.Format("{0:yyyy/MM/dd HH:mm:ss}", dtRow["create_date"]); // 0 create_date
+ p[j++].Value = dtRow["module_no"]; // 1 module_no
+ p[j++].Value = dtRow["pcb_sn"]; // 2 pcb_sn
+ p[j++].Value = dtRow["module_sn"]; // 3 module_sn
+ p[j++].Value = dtRow["fw_ver"]; // 4 fw_ver
+ p[j++].Value = dtRow["comm_fail"]; // 5 comm_fail
+ p[j++].Value = dtRow["op_status"]; // 6 op_status
+ p[j++].Value = dtRow["alarm_status"]; // 7 alarm_status
+ p[j++].Value = dtRow["warning"]; // 8 warning
+ p[j++].Value = dtRow["fault"]; // 9 fault
+ p[j++].Value = dtRow["module_voltage"]; // 10 module_voltage
+ p[j++].Value = dtRow["module_current"]; // 11 module_current
+ p[j++].Value = dtRow["module_soc"]; // 12 module_soc
+ p[j++].Value = dtRow["module_soh"]; // 13 module_soh
+
+ for (int i = 0; i < 15; i++)
+ {
+ p[j++].Value = dtRow[String.Format("cell_voltage_{0:00}", i + 1)]; // 14 cell_voltage_01 28
+ }
+ for (int i = 0; i < 6; i++)
+ {
+ p[j++].Value = dtRow[String.Format("temperature_{0:00}", i + 1)]; // 29 cell_voltage_01 36
+ }
+
+ p[j++].Value = dtRow["chg_option"]; // 37 chg_option
+ p[j++].Value = dtRow["chg_cal"]; // 38 chg_cal
+ p[j++].Value = dtRow["dch_cal"]; // 39 dch_cal
+
+ command.ExecuteNonQuery();
+
+ CommitTran(connection);
+ }
+ }
+ catch (SQLiteException se)
+ {
+ if (se.ResultCode != SQLiteErrorCode.Constraint)
+ result = se.Message;
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ }
+
+ public static DataTable BmsDataSelectToDataTable(CommConfig aConfig, DateTime aDate, string qry)
+ {
+ string result = "";
+ DataTable dtResult = null;
+ string ModelName = csConstData.UART_MODEL[aConfig.UartModelIndex];
+ string dbFilename = String.Format(LogDbFileNameFormat
+ , String.Format("{0:yyMM}", aDate)
+ , String.Format("{0:yyMMdd}", aDate)
+ , ModelName
+ );
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + LogDbFilePath + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ return dtResult;
+ if (File.Exists(dbFilePath) == false)
+ return dtResult;
+
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = String.Format("SELECT * FROM TModuleValue {0}", qry);
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ dtResult = new DataTable();
+ adapter.Fill(dtResult);
+ dtResult.TableName = "TModuleValue";
+
+ CommitTran(connection);
+
+ System.Windows.Forms.Application.DoEvents();
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+ #endregion
+
+ public class SQLITE
+ {
+ private SQLiteConnection con;
+ private SQLiteCommand cmd;
+ private SQLiteDataAdapter adapter;
+
+ public SQLITE(string databasename)
+ {
+ con = new SQLiteConnection(string.Format("Data Source={0};Compress=True;", databasename));
+ }
+
+ public int Execute(string sql_statement)
+ {
+ con.Open();
+ cmd = con.CreateCommand();
+ cmd.CommandText = sql_statement;
+ int row_updated;
+ try
+ {
+ row_updated = cmd.ExecuteNonQuery();
+ }
+ catch
+ {
+ con.Close();
+ return 0;
+ }
+ con.Close();
+ return row_updated;
+ }
+ public DataTable GetDataTable(string tablename)
+ {
+ DataTable DT = new DataTable();
+ con.Open();
+ cmd = con.CreateCommand();
+ cmd.CommandText = string.Format("SELECT * FROM {0}", tablename);
+ adapter = new SQLiteDataAdapter(cmd);
+ adapter.AcceptChangesDuringFill = false;
+ adapter.Fill(DT);
+ con.Close();
+ DT.TableName = tablename;
+ return DT;
+ }
+ public void SaveDataTable(DataTable DT)
+ {
+ try
+ {
+ Execute(string.Format("DELETE FROM {0}", DT.TableName));
+ con.Open();
+ cmd = con.CreateCommand();
+ cmd.CommandText = string.Format("SELECT * FROM {0}", DT.TableName);
+ adapter = new SQLiteDataAdapter(cmd);
+ SQLiteCommandBuilder builder = new SQLiteCommandBuilder(adapter);
+ adapter.Update(DT);
+ con.Close();
+ }
+ catch (Exception Ex)
+ {
+ MessageBox.Show(Ex.Message);
+ }
+ }
+ }
+ }
+}
diff --git a/LFP_Manager/Utils/csDBUtils.cs b/LFP_Manager/Utils/csDBUtils.cs
new file mode 100644
index 0000000..b93c65a
--- /dev/null
+++ b/LFP_Manager/Utils/csDBUtils.cs
@@ -0,0 +1,1554 @@
+using LFP_Manager.DataStructure;
+using System;
+using System.Data;
+using System.Data.SQLite;
+using System.IO;
+using System.Text;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Utils
+{
+ class csDbUtils
+ {
+ // Query - SELECT * FROM TABLE_NAME like('%neon%',field_name) - 문자를 포함하는 데이터 검색
+ public static string DbFileName = @"LFPS-48100S-J_INV.db";
+ public static string DbFilePathFormat = @"\db\";
+ public static string DbFileNameFormat = @"\db\{0}_{1}.db";
+ public static string DbSchemaTableFileName = @"\sql\DB_SCHEMA_TABLE.sql";
+ public static string ModuleTableName = @"TModule";
+
+ public static string LogDbFilePath = @"\db";
+ public static string LogDbFileNameFormat = @"\{0}\{1}_{2}_LOG.DB";
+ public static string LogDbSchemaTableFileName = @"\sql\LOG_DB_SCHEMA_TABLE.sql";
+
+ public static DateTime Delay(int ms)
+ {
+ DateTime thisMoment = DateTime.Now;
+ TimeSpan duration = new TimeSpan(0, 0, 0, 0, ms);
+ DateTime afterMoment = thisMoment.Add(duration);
+
+ while (afterMoment >= thisMoment)
+ {
+ System.Windows.Forms.Application.DoEvents();
+
+ thisMoment = DateTime.Now;
+ }
+
+ return DateTime.Now;
+ }
+
+ //트랜잭션 시작
+ public static void BeginTran(SQLiteConnection conn)
+ {
+ SQLiteCommand command = new SQLiteCommand("Begin", conn);
+ command.ExecuteNonQuery();
+ command.Dispose();
+ }
+
+ //트랜잭션 완료
+ public static void CommitTran(SQLiteConnection conn)
+ {
+ SQLiteCommand command = new SQLiteCommand("Commit", conn);
+ command.ExecuteNonQuery();
+ command.Dispose();
+ }
+
+ #region CREATE DATABASE
+
+ public static void DbCreate(string mSN, string bName)
+ {
+ string result = "";
+ string dbFilename = String.Format(DbFileNameFormat, MakeLotNumber(mSN, bName), bName);
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilePath));
+
+ if (File.Exists(dbFilePath) == true)
+ {
+ //throw new Exception("Already have db file - Failed to create db file");
+ return;
+ }
+ else
+ {
+ // Create database
+ SQLiteConnection.CreateFile(dbFilePath);
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Create table
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + DbSchemaTableFileName;
+ string query = File.ReadAllText(schemaFile);
+
+ command.CommandText = query;
+ SQLiteDataReader reader = null;
+ reader = command.ExecuteReader();
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return;
+ }
+
+ public static void LogDbCreate(string aModel)
+ {
+ string result = "";
+ string ModelName = aModel;
+ //public static string LogDbFileNameFormat = @"\{0}\{1}_{2}_LOG.DB";
+ string dbFilename = String.Format(LogDbFileNameFormat
+ , String.Format("{0:yyMM}", DateTime.Now)
+ , String.Format("{0:yyMMdd}", DateTime.Now)
+ , ModelName
+ );
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + LogDbFilePath + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilePath));
+
+ if (File.Exists(dbFilePath) == true)
+ {
+ //throw new Exception("Already have db file - Failed to create db file");
+ return;
+ }
+ else
+ {
+ // Create database
+ SQLiteConnection.CreateFile(dbFilePath);
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Create table
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + LogDbSchemaTableFileName;
+ string query = File.ReadAllText(schemaFile);
+
+ command.CommandText = query;
+ SQLiteDataReader reader = null;
+ reader = command.ExecuteReader();
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return;
+ }
+
+ public static void LogDbCreateNew(string aModel)
+ {
+ string result = "";
+ string ModelName = aModel;
+ //public static string LogDbFileNameFormat = @"\{0}\{1}_{2}_LOG.DB";
+ string dbFilename = String.Format(LogDbFileNameFormat
+ , String.Format("{0:yyMM}", DateTime.Now)
+ , String.Format("{0:yyMMdd}", DateTime.Now)
+ , ModelName
+ );
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + LogDbFilePath + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilePath));
+
+ // Create database
+ SQLiteConnection.CreateFile(dbFilePath);
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Create table
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + LogDbSchemaTableFileName;
+ string query = File.ReadAllText(schemaFile);
+
+ command.CommandText = query;
+ SQLiteDataReader reader = null;
+ reader = command.ExecuteReader();
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return;
+ }
+
+ #endregion
+
+ #region MAKE LOT NUMBER
+ public static string MakeLotNumber(string mSN)
+ {
+ string LotNo = mSN.Substring(1, 11) + "000";
+ return LotNo;
+ }
+
+ public static string MakeLotNumber(string mSN, string bName)
+ {
+ string LotNo;
+
+ if (bName == "BMCB_J")
+ LotNo = mSN.Substring(0, 10) + "0000";
+ else
+ LotNo = mSN.Substring(1, 11) + "000";
+ return LotNo;
+ }
+
+ #endregion
+
+ #region Excute Database
+ public static DataTable DbSqlExcute(string path, string query, bool create_db_flag = false)
+ {
+ string result = "";
+ DataTable dtResult = null;
+ string dbFilename = Path.GetDirectoryName(path) + DbFileName;
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFilename)) == false)
+ Directory.CreateDirectory(Path.GetDirectoryName(dbFilename));
+
+ // Create database
+ if (File.Exists(dbFilename) == false)
+ {
+ if (create_db_flag == true)
+ SQLiteConnection.CreateFile(dbFilename);
+ else
+ throw new Exception("No database file - " + DbFileName);
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilename;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Create table
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //command.CommandText = "CREATE TABLE File (Name text, Size bigint, Modified datetime);";
+ command.CommandText = query;
+ SQLiteDataReader reader = null;
+ //command.ExecuteNonQuery();
+ reader = command.ExecuteReader();
+ dtResult = new DataTable();
+ dtResult.Load(reader);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable DbSqlExcuteA1(string path, string query)
+ {
+ DataTable dtResult = null;
+ string dbFilename = System.IO.Path.GetDirectoryName(path) + DbFileName;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilename)) == false)
+ Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilename));
+
+ if (File.Exists(dbFilename) == false)
+ // Create database
+ SQLiteConnection.CreateFile(dbFilename);
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilename;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Excute Query
+ var adpt = new SQLiteDataAdapter(query, connection);
+ DataSet ds = new DataSet();
+ adpt.Fill(ds);
+
+ dtResult = ds.Tables[0];
+ }
+ catch (Exception e)
+ {
+ throw e;
+ }
+ finally
+ {
+ connection.Close();
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable DbSqlExcuteA(string lot, string query, string bName, bool create_db_flag = false)
+ {
+ string result = "";
+ DataTable dtResult = new DataTable();
+ string lotNo = lot;
+ string dbFilename = String.Format(DbFileNameFormat, lotNo, bName);
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false)
+ {
+ if (create_db_flag)
+ Directory.CreateDirectory(Path.GetDirectoryName(dbFilePath));
+ else
+ throw new Exception("No DB file path - " + Path.GetDirectoryName(dbFilePath));
+ }
+ if (File.Exists(dbFilePath) == false)
+ {
+ if (create_db_flag)
+ SQLiteConnection.CreateFile(dbFilePath);
+ else
+ throw new Exception(String.Format("No DB file - DbSqlExcuteA ({0})", dbFilename));
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Excute Query
+ var adpt = new SQLiteDataAdapter(query, connection);
+ DataSet ds = new DataSet();
+ adpt.Fill(ds);
+ if (ds.Tables.Count > 0)
+ dtResult = ds.Tables[0];
+ }
+ catch (Exception ex)
+ {
+ result = ex.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable DbSqlExcuteA2(string dbFileName, string query, bool create_db_flag = false)
+ {
+ string result = "";
+ DataTable dtResult = new DataTable();
+ string lotNo = dbFileName.Substring(0, 9);
+ string dbFilename = String.Format(DbFilePathFormat, lotNo) + dbFileName;
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false)
+ {
+ if (create_db_flag)
+ Directory.CreateDirectory(Path.GetDirectoryName(dbFilePath));
+ else
+ throw new Exception("No DB file path - " + Path.GetDirectoryName(dbFilePath));
+ }
+ if (File.Exists(dbFilePath) == false)
+ {
+ if (create_db_flag)
+ SQLiteConnection.CreateFile(dbFilePath);
+ else
+ throw new Exception(String.Format("No DB file - DbSqlExcuteA ({0})", dbFilename));
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Excute Query
+ var adpt = new SQLiteDataAdapter(query, connection);
+ DataSet ds = new DataSet();
+ adpt.Fill(ds);
+ if (ds.Tables.Count > 0)
+ dtResult = ds.Tables[0];
+ }
+ catch (Exception ex)
+ {
+ result = ex.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+ public static DataTable DbSqlExcuteA3(string dbFileName, string query, bool create_db_flag = false)
+ {
+ string result = "";
+ DataTable dtResult = new DataTable();
+ string dbFilePath = dbFileName;
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false)
+ {
+ if (create_db_flag)
+ Directory.CreateDirectory(Path.GetDirectoryName(dbFilePath));
+ else
+ throw new Exception("No DB file path - " + Path.GetDirectoryName(dbFilePath));
+ }
+ if (File.Exists(dbFilePath) == false)
+ {
+ if (create_db_flag)
+ SQLiteConnection.CreateFile(dbFilePath);
+ else
+ throw new Exception(String.Format("No DB file - DbSqlExcuteA ({0})", dbFileName));
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Excute Query
+ var adpt = new SQLiteDataAdapter(query, connection);
+ DataSet ds = new DataSet();
+ adpt.Fill(ds);
+ if (ds.Tables.Count > 0)
+ dtResult = ds.Tables[0];
+ }
+ catch (Exception ex)
+ {
+ result = ex.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ #endregion
+
+ #region BMS DATA INSERT AND UPDATE
+
+ public static void BmsLogDataInsert(string ModelName, ref CsDeviceData.DeviceModuleData mData, DateTime dateTime, int cvUnit)
+ {
+ string result = "";
+ //string ModelName = csConstData.CAN_MODEL[aConfig.CanModelIndex];
+ //public static string LogDbFileNameFormat = @"\{0}\{1}_{2}_LOG.DB";
+ string dbFilename = String.Format(LogDbFileNameFormat
+ , String.Format("{0:yyMM}", DateTime.Now)
+ , String.Format("{0:yyMMdd}", DateTime.Now)
+ , ModelName
+ );
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + LogDbFilePath + dbFilename;
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false)
+ throw new Exception("No Log DB file path");
+ if (File.Exists(dbFilePath) == false)
+ throw new Exception(String.Format("No Log DB file - BmsLogDataInsert ({0})", dbFilename));
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = String.Format("INSERT INTO TModuleValue (");
+ command.CommandText += "create_date" // 0
+ + ", module_no" // 1
+ + ", model_name" // 2
+ + ", module_sn" // 3
+ + ", fw_ver" // 4
+ + ", comm_fail" // 5
+ + ", op_status" // 6
+ + ", alarm_status" // 7
+ + ", warning" // 8
+ + ", fault" // 9
+ + ", module_voltage" // 10
+ + ", module_current" // 11
+ + ", module_soc" // 12
+ + ", module_soh" // 13
+ + ", module_cyclecount" // 14
+ ;
+ for (int i = 0; i < mData.cellQty; i++)
+ {
+ command.CommandText += String.Format(", cell_voltage_{0:00}", i + 1); // 14 ~ 28; 15 cells
+ }
+ for (int i = 0; i < mData.tempQty; i++)
+ {
+ command.CommandText += String.Format(", temperature_{0:00}", i + 1); // 29 ~ 32; 6 temps
+ }
+ command.CommandText += ""
+ + ", ext1_temp" // 35
+ + ", ext2_temp" // 35
+ + ", chg_option" // 35
+ + ")"
+ + " Values (";
+
+ int total = 15 + mData.cellQty + mData.tempQty + 3;
+
+ for (int i = 0; i < (total - 1); i++) command.CommandText += "?,";
+ command.CommandText += "?);";
+
+ SQLiteParameter[] p = new SQLiteParameter[total];
+
+ for (int i = 0; i < total; i++)
+ {
+ if (i == 0)
+ p[i] = new SQLiteParameter(DbType.DateTime);
+ else
+ p[i] = new SQLiteParameter();
+ command.Parameters.Add(p[i]);
+ }
+
+ int j = 0;
+ p[j++].Value = dateTime; // 0 create_date
+ p[j++].Value = mData.mNo; // 1 Module No
+ p[j++].Value = mData.Information.ModelName; // 2 model_name
+ p[j++].Value = mData.Information.HwSerialNumber; // 3 module_sn
+ p[j++].Value = mData.Information.SwProductRev; // 4 fw_ver
+
+ p[j++].Value = mData.ShelfCommFail; // 5 comm_fail
+ p[j++].Value = mData.StatusData.status; // 6 op_status
+ p[j++].Value = mData.StatusData.batteryStatus; // 7 alarm_status
+ p[j++].Value = mData.StatusData.warning; // 8 warning
+ p[j++].Value = mData.StatusData.protect; // 9 fault
+ p[j++].Value = ((float)mData.ValueData.voltage / 10).ToString(); // 10 module_voltage
+ p[j++].Value = ((float)mData.ValueData.current / 10).ToString(); // 11 module_current
+ p[j++].Value = ((float)mData.ValueData.SOC / 10).ToString(); // 12 module_soc
+ p[j++].Value = ((float)mData.ValueData.SOH / 10).ToString(); // 13 module_soh
+ p[j++].Value = ((float)mData.ValueData.cycleCount / 1).ToString(); // 14 module_soh
+
+ for (int i = 0; i < mData.cellQty; i++)
+ {
+ p[j++].Value = ((float)mData.ValueData.CellVoltage[i] / cvUnit).ToString(); // 15 cell_voltage_01
+ }
+ for (int i = 0; i < mData.tempQty; i++)
+ {
+ p[j++].Value = ((float)mData.ValueData.CellTemperature[i] / 10).ToString(); // 30 temperature_01
+ }
+ p[j++].Value = ((float)mData.ValueData.MosTemperature / 10).ToString(); // 34 temperature_ext1 - FET Temp
+ p[j++].Value = ((float)mData.ValueData.AmbTemperature / 10).ToString(); // 35 temperature_ext2 - Lmt Temp
+
+ p[j++].Value = mData.CalibrationData.Current.ChargeOption.ToString(); // 36 chg_option
+
+ command.ExecuteNonQuery();
+
+ CommitTran(connection);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ }
+
+ public static DataTable GetDataTable(string bSN, string aTableName, string bName)
+ {
+ string result = "";
+ DataTable dtResult = null;
+ string dbFilename = String.Format(DbFileNameFormat, MakeLotNumber(bSN, bName), bName);
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFilePath) == false)
+ throw new Exception("No DB file");
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = String.Format("SELECT * FROM {0}", aTableName);
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ dtResult = new DataTable();
+ adapter.Fill(dtResult);
+ dtResult.TableName = aTableName;
+
+ CommitTran(connection);
+
+ System.Windows.Forms.Application.DoEvents();
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable GetDataTableBySelect(string bSN, string sql, string aTableName, string bName)
+ {
+ string result = "";
+ DataTable dtResult = null;
+ string dbFilename = String.Format(DbFileNameFormat, MakeLotNumber(bSN, bName), bName);
+ string dbFilePath = System.IO.Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFilePath) == false)
+ throw new Exception(String.Format("No DB file - {0}", dbFilePath));
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = sql;
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ dtResult = new DataTable();
+ adapter.Fill(dtResult);
+ dtResult.TableName = aTableName;
+
+ System.Windows.Forms.Application.DoEvents();
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+
+ CommitTran(connection);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "")
+ throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable GetDataTableBySelectFromDbName(string dbFileName, string sql, string aTableName, string bName)
+ {
+ string result = "";
+ DataTable dtResult = null;
+
+ string lotNo = csDbUtils.MakeLotNumber(dbFileName.Substring(0, 8), bName);
+ string dbFilename = String.Format(@"\db\{0}\{1}", lotNo, dbFileName);
+ string dbFilePath = System.IO.Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFilePath) == false)
+ throw new Exception(String.Format("No DB file - {0}", dbFilePath));
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = sql;
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ dtResult = new DataTable();
+ adapter.Fill(dtResult);
+ dtResult.TableName = aTableName;
+
+ System.Windows.Forms.Application.DoEvents();
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+
+ CommitTran(connection);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "")
+ throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable GetDataTableByFileName(string fileName, string sql, string aTableName)
+ {
+ string result = "";
+ DataTable dtResult = null;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(fileName)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(fileName) == false)
+ throw new Exception("No DB file");
+ // Open database
+ string strConn = @"Data Source=" + fileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = sql;
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ dtResult = new DataTable();
+ adapter.Fill(dtResult);
+ dtResult.TableName = aTableName;
+
+ System.Windows.Forms.Application.DoEvents();
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+
+ CommitTran(connection);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "")
+ throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable GetModuleMatchTableByFgNo(string fg_no, string bName)
+ {
+ DataTable dtResult = null;
+
+ int a, b, c;
+ a = Convert.ToInt32(fg_no);
+ b = a / 300 + 1;
+ c = a % 300;
+ if ((c == 0) && (b > 0)) b--;
+ string mSN = String.Format("1{0:yy}{1:00}{2:000}", DateTime.Now, b, c);
+ string lotNo = csDbUtils.MakeLotNumber(mSN, bName);
+ string dbfilePath = Path.GetDirectoryName(Application.ExecutablePath) + String.Format(DbFilePathFormat, lotNo);
+ string[] filePaths = Directory.GetFiles(dbfilePath, "*.db");
+
+ if (filePaths.Length > 0)
+ {
+ for (int i = 0; i < filePaths.Length; i++)
+ {
+ string fileName = Path.GetFileName(filePaths[i]);
+ byte[] bfilName = Encoding.ASCII.GetBytes(fileName);
+
+ dtResult = GetDataTableByFileName(filePaths[i], String.Format("SELECT * FROM TModuleMatch where fg_no={0}", fg_no), "TModuleMatch");
+ if ((dtResult != null) && (dtResult.Rows.Count == 1)) break;
+ }
+ }
+ if ((dtResult == null) || (dtResult.Rows.Count == 0))
+ throw new Exception(String.Format("No match data - {0}", fg_no));
+
+ return dtResult;
+ }
+
+ public static void BmsPcbMatchDataInsert(string dbFileName, DataRow sRow)
+ {
+ string result = "";
+ int resultCode = (int)SQLiteErrorCode.Unknown;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFileName)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFileName) == false)
+ throw new Exception(String.Format("No DB file - BmsDataInsert ({0})", dbFileName));
+
+ // Open database
+ string strConn = @"Data Source=" + dbFileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait
+ {
+ StartPosition = FormStartPosition.CenterScreen
+ };
+
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = "INSERT INTO"
+ + " TBmsPcbMatchTable"
+ + " (PCB1_SERIAL_NUMBER, MODULE_SERIAL_NUMBER, create_date, modify_date)" // 2
+ + " Values (?,?,?,?);";
+ SQLiteParameter[] p = new SQLiteParameter[4];
+
+ for (int i = 0; i < 4; i++)
+ {
+ p[i] = new SQLiteParameter();
+ command.Parameters.Add(p[i]);
+ }
+
+ int j = 0;
+ p[j++].Value = sRow["PCB1_SERIAL_NUMBER"]; // pcb_sn
+ p[j++].Value = sRow["MODULE_SERIAL_NUMBER"]; // module_sn
+ p[j++].Value = DateTime.Now; // create_date
+ p[j++].Value = DateTime.Now; // modify_date
+
+ command.ExecuteNonQuery();
+
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+ System.Windows.Forms.Application.DoEvents();
+
+ CommitTran(connection);
+ }
+ }
+ catch (SQLiteException sqle)
+ {
+ // Handle DB exception
+ result = sqle.Message;
+ resultCode = sqle.ErrorCode;
+ }
+ catch (IndexOutOfRangeException ie)
+ {
+ // If you think there might be a problem with index range in the loop, for example
+ result = ie.Message;
+ resultCode = 9999;
+ }
+ catch (Exception ex)
+ {
+ result = ex.Message;
+ resultCode = 9998;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "")
+ {
+ if (resultCode == 9998) throw new Exception(result);
+ else if (resultCode == 9999) throw new IndexOutOfRangeException(result);
+ else throw new SQLiteException((SQLiteErrorCode)resultCode, result);
+ }
+ }
+ }
+ }
+
+ public static void ErrorLogInsert(string dbFileName, DataRow sRow, string Process, string ErrType, string ErrMsg)
+ {
+ string result = "";
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFileName)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFileName) == false)
+ throw new Exception(String.Format("No DB file - ErrorLogInsert ({0})", dbFileName));
+
+ // Open database
+ string strConn = @"Data Source=" + dbFileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = "INSERT INTO"
+ + " TErrorLogTable"
+ + " (create_date, MODULE_SERIAL_NUMBER, PCB1_SERIAL_NUMBER, PROCESS, ERROR_TYPE, ERROR_MSG)" // 2
+ + " Values (?,?,?,?,?,?);";
+ SQLiteParameter[] p = new SQLiteParameter[6];
+
+ for (int i = 0; i < 6; i++)
+ {
+ p[i] = new SQLiteParameter();
+ command.Parameters.Add(p[i]);
+ }
+
+ int j = 0;
+ p[j++].Value = DateTime.Now; // create_date
+ p[j++].Value = sRow["MODULE_SERIAL_NUMBER"]; // module_sn
+ p[j++].Value = sRow["PCB1_SERIAL_NUMBER"]; // pcb_sn
+ p[j++].Value = Process; // process
+ p[j++].Value = ErrType; // error type
+ p[j++].Value = ErrMsg; // error message
+
+ command.ExecuteNonQuery();
+
+ CommitTran(connection);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ }
+
+ #endregion
+
+ #region ALARM HISTROTY DB FUNCTION
+ public static DataTable GetBmsAlarmDataByDataTable(string modelName, DateTime aDateTime, string qry)
+ {
+ // 결과 테이블(항상 non-null 반환)
+ var dtResult = new DataTable("TAlarmHistory");
+
+ // 일자 기준 DB 파일명 (yyMM/yyMMdd)
+ string dbFilename = string.Format(
+ LogDbFileNameFormat,
+ aDateTime.ToString("yyMM"),
+ aDateTime.ToString("yyMMdd"),
+ modelName);
+
+ // 실행파일 경로 + 로그 DB 상대경로 + 파일명 안전 결합
+ string exeDir = Path.GetDirectoryName(Application.ExecutablePath);
+ if (string.IsNullOrEmpty(exeDir))
+ exeDir = AppDomain.CurrentDomain.BaseDirectory;
+
+ string logPath = (LogDbFilePath ?? string.Empty)
+ .TrimStart(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
+ string dbDir = csUtils.CombineSafe(exeDir, logPath);
+ string dbFilePath = csUtils.CombineSafe(dbDir, dbFilename);
+
+ if (!File.Exists(dbFilePath))
+ return dtResult; // 빈 테이블 반환
+
+ // 당일 범위(00:00:00 ~ 다음날 00:00:00)
+ DateTime start = aDateTime.Date;
+ DateTime end = start.AddDays(1);
+
+ // 조회 컬럼 지정 (SELECT * 지양)
+ string cols = string.Join(", ", new[]
+ {
+ "create_date","alarm_code","alarm_status","alarm_cname","alarm_sname",
+ "module_no","ct_no","alarm_param_1","alarm_param_2","alarm_param_3"
+ });
+
+ // 기본 WHERE (날짜 범위)
+ string sql =
+ $"SELECT {cols} FROM TAlarmHistory " +
+ $"WHERE create_date >= @start AND create_date < @end";
+
+ // 주의) qry는 그대로 붙이면 인젝션 위험. 반드시 신뢰 가능한 내부 생성 문자열만 사용하세요.
+ if (!string.IsNullOrWhiteSpace(qry))
+ {
+ sql += " AND (" + qry + ")";
+ }
+
+ sql += " ORDER BY create_date DESC";
+
+ using (var connection = new SQLiteConnection(@"Data Source=" + dbFilePath))
+ {
+ connection.Open();
+ // ★ 성능/동시성 PRAGMA 적용 (WAL + busy_timeout 등) — C# 7.3 호환
+ csDbUtils.SqlitePragmaHelper.ApplyPragmas(connection, false); // forReader: false
+
+ using (var command = connection.CreateCommand())
+ {
+ command.CommandText = sql;
+
+ // 날짜 파라미터 바인딩 (SQLite는 TEXT/REAL/INTEGER 저장 허용. DbType.DateTime 사용)
+ var pStart = new SQLiteParameter("@start", DbType.DateTime) { Value = start };
+ var pEnd = new SQLiteParameter("@end", DbType.DateTime) { Value = end };
+ command.Parameters.Add(pStart);
+ command.Parameters.Add(pEnd);
+
+ using (var adapter = new SQLiteDataAdapter(command))
+ {
+ adapter.AcceptChangesDuringFill = false;
+ adapter.Fill(dtResult);
+ }
+ }
+
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ }
+
+ return dtResult;
+ }
+ #endregion
+
+ #region SELECT QUARY
+
+ public static int DbQuaryExcuteToDataTable(string dbFileName, string Quary, ref DataTable rDT)
+ {
+ int result = 0;
+ string resultStr = String.Empty;
+
+ string strConn = @"Data Source=" + dbFileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = Quary;
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ rDT = new DataTable();
+ adapter.Fill(rDT);
+ //rDT.TableName = "TModuleValue";
+
+ CommitTran(connection);
+
+ result = rDT.Rows.Count;
+
+ System.Windows.Forms.Application.DoEvents();
+ }
+ }
+ catch (Exception e)
+ {
+ resultStr = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (resultStr != "") throw new Exception(resultStr);
+ }
+ }
+ return result;
+ }
+
+ public static void CreateLogDbFile(string dbFileName)
+ {
+ string result = "";
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFileName)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFileName) == true)
+ throw new Exception(String.Format("Already have DB file - DbQuaryExcuteToDbFile({0})", dbFileName));
+
+ // Create database
+ SQLiteConnection.CreateFile(dbFileName);
+
+ // Open database
+ string strConn = @"Data Source=" + dbFileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + LogDbSchemaTableFileName;
+ string query = File.ReadAllText(schemaFile);
+
+ command.CommandText = query;
+ SQLiteDataReader reader = null;
+ reader = command.ExecuteReader();
+
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+ System.Windows.Forms.Application.DoEvents();
+
+ CommitTran(connection);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ }
+
+ public static void DbInsertDataToDbFile(string dbFileName, DataRow dtRow)
+ {
+ string result = "";
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFileName)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFileName) == false)
+ throw new Exception(String.Format("No DB file - DbInsertDataToDbFile({0})", dbFileName));
+
+ // Open database
+ string strConn = @"Data Source=" + dbFileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ command.CommandText = String.Format("INSERT INTO TModuleValue (");
+ command.CommandText += "create_date" // 0
+ + ", module_no" // 1
+ + ", pcb_sn" // 2
+ + ", module_sn" // 3
+ + ", fw_ver" // 4
+ + ", comm_fail" // 5
+ + ", op_status" // 6
+ + ", alarm_status" // 7
+ + ", warning" // 8
+ + ", fault" // 9
+ + ", module_voltage" // 10
+ + ", module_current" // 11
+ + ", module_soc" // 12
+ + ", module_soh" // 13
+ ;
+ for (int i = 0; i < 15; i++)
+ {
+ command.CommandText += String.Format(", cell_voltage_{0:00}", i + 1); // 14 ~ 28; 15 cells
+ }
+ for (int i = 0; i < 6; i++)
+ {
+ command.CommandText += String.Format(", temperature_{0:00}", i + 1); // 29 ~ 34; 6 temps
+ }
+ command.CommandText += ""
+ + ", chg_option" // 35
+ + ", chg_cal" // 36
+ + ", dch_cal" // 37
+ + ")"
+ + " Values (";
+
+ int total = dtRow.Table.Columns.Count;
+
+ for (int i = 0; i < (total - 1); i++) command.CommandText += "?,";
+ command.CommandText += "?);";
+
+ SQLiteParameter[] p = new SQLiteParameter[total];
+
+ for (int i = 0; i < total; i++)
+ {
+ if (i == 0)
+ p[i] = new SQLiteParameter(DbType.DateTime);
+ else
+ p[i] = new SQLiteParameter();
+ command.Parameters.Add(p[i]);
+ }
+
+ int j = 0;
+ p[j++].Value = String.Format("{0:yyyy/MM/dd HH:mm:ss}", dtRow["create_date"]); // 0 create_date
+ p[j++].Value = dtRow["module_no"]; // 1 module_no
+ p[j++].Value = dtRow["pcb_sn"]; // 2 pcb_sn
+ p[j++].Value = dtRow["module_sn"]; // 3 module_sn
+ p[j++].Value = dtRow["fw_ver"]; // 4 fw_ver
+ p[j++].Value = dtRow["comm_fail"]; // 5 comm_fail
+ p[j++].Value = dtRow["op_status"]; // 6 op_status
+ p[j++].Value = dtRow["alarm_status"]; // 7 alarm_status
+ p[j++].Value = dtRow["warning"]; // 8 warning
+ p[j++].Value = dtRow["fault"]; // 9 fault
+ p[j++].Value = dtRow["module_voltage"]; // 10 module_voltage
+ p[j++].Value = dtRow["module_current"]; // 11 module_current
+ p[j++].Value = dtRow["module_soc"]; // 12 module_soc
+ p[j++].Value = dtRow["module_soh"]; // 13 module_soh
+
+ for (int i = 0; i < 15; i++)
+ {
+ p[j++].Value = dtRow[String.Format("cell_voltage_{0:00}", i + 1)]; // 14 cell_voltage_01 28
+ }
+ for (int i = 0; i < 6; i++)
+ {
+ p[j++].Value = dtRow[String.Format("temperature_{0:00}", i + 1)]; // 29 cell_voltage_01 36
+ }
+
+ p[j++].Value = dtRow["chg_option"]; // 37 chg_option
+ p[j++].Value = dtRow["chg_cal"]; // 38 chg_cal
+ p[j++].Value = dtRow["dch_cal"]; // 39 dch_cal
+
+ command.ExecuteNonQuery();
+
+ CommitTran(connection);
+ }
+ }
+ catch (SQLiteException se)
+ {
+ if (se.ResultCode != SQLiteErrorCode.Constraint)
+ result = se.Message;
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ }
+
+ public static DataTable BmsDataSelectToDataTable(CommConfig aConfig, DateTime aDate, string qry)
+ {
+ string result = "";
+ DataTable dtResult = null;
+ string ModelName = csConstData.UART_MODEL[aConfig.UartModelIndex];
+ string dbFilename = String.Format(LogDbFileNameFormat
+ , String.Format("{0:yyMM}", aDate)
+ , String.Format("{0:yyMMdd}", aDate)
+ , ModelName
+ );
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + LogDbFilePath + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ return dtResult;
+ if (File.Exists(dbFilePath) == false)
+ return dtResult;
+
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = String.Format("SELECT * FROM TModuleValue {0}", qry);
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ dtResult = new DataTable();
+ adapter.Fill(dtResult);
+ dtResult.TableName = "TModuleValue";
+
+ CommitTran(connection);
+
+ System.Windows.Forms.Application.DoEvents();
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+ #endregion
+
+ #region DB PRAGMA FUNCTION
+ public static class SqlitePragmaHelper
+ {
+ ///
+ /// SQLite PRAGMA 설정을 적용합니다.
+ /// - forWriter = true : 로그 쓰기 스레드(INSERT)용 프로파일
+ /// - forWriter = false: UI 조회(SELECT)용 프로파일
+ ///
+ public static void ApplyPragmas(SQLiteConnection conn, bool forWriter)
+ {
+ // C# 7.3: using(var ...) 패턴 사용
+ using (var cmd = conn.CreateCommand())
+ {
+ var sb = new StringBuilder();
+
+ // 공통 권장값
+ sb.AppendLine("PRAGMA journal_mode=WAL;"); // 동시 읽기/쓰기
+ sb.AppendLine("PRAGMA busy_timeout=3000;"); // 잠금 대기(ms)
+ sb.AppendLine("PRAGMA temp_store=MEMORY;"); // 임시 테이블 메모리
+ sb.AppendLine("PRAGMA cache_size=-8000;"); // 8MB(음수=KB)
+
+ if (forWriter)
+ {
+ // 쓰기 성능/안정성 균형
+ sb.AppendLine("PRAGMA synchronous=NORMAL;");
+ sb.AppendLine("PRAGMA locking_mode=NORMAL;");
+ // sb.AppendLine("PRAGMA foreign_keys=OFF;"); // FK 미사용 시만
+ }
+ else
+ {
+ // 읽기 전용 커넥션(조회)
+ sb.AppendLine("PRAGMA synchronous=OFF;"); // 읽기에는 의미 거의 없음
+ sb.AppendLine("PRAGMA locking_mode=NORMAL;");
+ }
+
+ cmd.CommandText = sb.ToString();
+ cmd.ExecuteNonQuery();
+ }
+ }
+
+ ///
+ /// 환경/현장에 맞게 타임아웃/캐시 크기를 조절해서 적용하고 싶을 때.
+ /// cacheSizeKB: 음수면 KB 단위(권장), 예: -8000 = 8MB
+ ///
+ public static void ApplyPragmas(SQLiteConnection conn, bool forWriter, int busyTimeoutMs, int cacheSizeKB)
+ {
+ using (var cmd = conn.CreateCommand())
+ {
+ var sb = new StringBuilder();
+
+ sb.AppendLine("PRAGMA journal_mode=WAL;");
+ sb.AppendLine("PRAGMA busy_timeout=" + busyTimeoutMs + ";");
+ sb.AppendLine("PRAGMA temp_store=MEMORY;");
+ sb.AppendLine("PRAGMA cache_size=" + cacheSizeKB + ";");
+
+ if (forWriter)
+ {
+ sb.AppendLine("PRAGMA synchronous=NORMAL;");
+ sb.AppendLine("PRAGMA locking_mode=NORMAL;");
+ }
+ else
+ {
+ sb.AppendLine("PRAGMA synchronous=OFF;");
+ sb.AppendLine("PRAGMA locking_mode=NORMAL;");
+ }
+
+ cmd.CommandText = sb.ToString();
+ cmd.ExecuteNonQuery();
+ }
+ }
+
+ ///
+ /// 현재 PRAGMA 상태를 로깅(디버깅용).
+ ///
+ public static void LogPragmas(SQLiteConnection conn, System.Action log)
+ {
+ var names = new[]
+ {
+ "journal_mode","synchronous","busy_timeout","temp_store",
+ "cache_size","locking_mode","wal_autocheckpoint","page_size","mmap_size"
+ };
+
+ using (var cmd = conn.CreateCommand())
+ {
+ for (int i = 0; i < names.Length; i++)
+ {
+ cmd.CommandText = "PRAGMA " + names[i] + ";";
+ object val = cmd.ExecuteScalar();
+ if (log != null)
+ log("PRAGMA " + names[i] + " = " + (val ?? "(null)"));
+ }
+ }
+ }
+
+ ///
+ /// WAL 파일을 DB로 반영하고 WAL 파일을 truncate 합니다.
+ /// 프로그램 종료 시 1회 또는 하루 1회 등으로 호출 권장.
+ ///
+ public static void WalCheckpointTruncate(SQLiteConnection conn)
+ {
+ using (var cmd = conn.CreateCommand())
+ {
+ cmd.CommandText = "PRAGMA wal_checkpoint(TRUNCATE);";
+ cmd.ExecuteNonQuery();
+ }
+ }
+ }
+ #endregion
+
+ #region GRID VIEW COLUMN HIDE
+ // 바인딩 끝난 뒤(예: DataSource 설정 직후)에 실행
+ public static void HideColumns(DataGridView grid, params string[] names)
+ {
+ foreach (var name in names)
+ {
+ if (grid.Columns.Contains(name))
+ grid.Columns[name].Visible = false; // 칼럼 자체 숨김
+ }
+ }
+ #endregion
+
+ public class SQLITE
+ {
+ private SQLiteConnection con;
+ private SQLiteCommand cmd;
+ private SQLiteDataAdapter adapter;
+
+ public SQLITE(string databasename)
+ {
+ con = new SQLiteConnection(string.Format("Data Source={0};Compress=True;", databasename));
+ }
+
+ public int Execute(string sql_statement)
+ {
+ con.Open();
+ cmd = con.CreateCommand();
+ cmd.CommandText = sql_statement;
+ int row_updated;
+ try
+ {
+ row_updated = cmd.ExecuteNonQuery();
+ }
+ catch
+ {
+ con.Close();
+ return 0;
+ }
+ con.Close();
+ return row_updated;
+ }
+ public DataTable GetDataTable(string tablename)
+ {
+ DataTable DT = new DataTable();
+ con.Open();
+ cmd = con.CreateCommand();
+ cmd.CommandText = string.Format("SELECT * FROM {0}", tablename);
+ adapter = new SQLiteDataAdapter(cmd);
+ adapter.AcceptChangesDuringFill = false;
+ adapter.Fill(DT);
+ con.Close();
+ DT.TableName = tablename;
+ return DT;
+ }
+ public void SaveDataTable(DataTable DT)
+ {
+ try
+ {
+ Execute(string.Format("DELETE FROM {0}", DT.TableName));
+ con.Open();
+ cmd = con.CreateCommand();
+ cmd.CommandText = string.Format("SELECT * FROM {0}", DT.TableName);
+ adapter = new SQLiteDataAdapter(cmd);
+ SQLiteCommandBuilder builder = new SQLiteCommandBuilder(adapter);
+ adapter.Update(DT);
+ con.Close();
+ }
+ catch (Exception Ex)
+ {
+ MessageBox.Show(Ex.Message);
+ }
+ }
+ }
+ }
+}
diff --git a/LFP_Manager/Utils/csExcelControl.cs b/LFP_Manager/Utils/csExcelControl.cs
new file mode 100644
index 0000000..bd9d7ee
--- /dev/null
+++ b/LFP_Manager/Utils/csExcelControl.cs
@@ -0,0 +1,299 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.IO;
+using System.Data;
+using System.Data.OleDb;
+
+namespace LFP_Manager.Utils
+{
+ class csExcelControl
+ {
+ ///
+ /// Excel Database Control Class
+ /// version 0.1.5
+ ///
+ ///
+ /// 자유배포
+ /// 황현우 [ LiA's Blog ]
+ /// http://blog.naver.com/exila
+ /// CoreBank Co.,Ltd.
+ /// 불펌금지효.. 만든 사람의 성의좀 생각을..-_-;;
+ ///
+ /*---------------------------------------------------------------------
+ * Connection String 에는 어마어마한 옵션들이.. 주로 영문 사이트이긴
+ * 하지만 좀더 상세한 제어를 원한다면 OleDB Connection String 옵션과
+ * Extended Properties 에 들어가는 Excel Option 들을 살펴보는 것이 좋을
+ * 듯.. HDR = 첫줄을 헤더로 사용할 것인지,IMEX = 데이터유형적용여부 등등
+ *-------------------------------------------------------------------*/
+
+ // 확장명 XLS (Excel 97~2003 용)
+ private const string ConnectStrFrm_Excel97_2003 =
+ "Provider=Microsoft.Jet.OLEDB.4.0;" +
+ "Data Source=\"{0}\";" +
+ "Mode=ReadWrite|Share Deny None;" +
+ "Extended Properties='Excel 8.0; HDR={1}; IMEX={2}';" +
+ "Persist Security Info=False";
+
+ // 확장명 XLSX (Excel 2007 이상용)
+ private const string ConnectStrFrm_Excel =
+ "Provider=Microsoft.ACE.OLEDB.12.0;" +
+ "Data Source=\"{0}\";" +
+ "Mode=ReadWrite|Share Deny None;" +
+ "Extended Properties='Excel 12.0; HDR={1}; IMEX={2}';" +
+ "Persist Security Info=False";
+
+
+ ///
+ /// Excel 파일의 형태를 반환한다.
+ /// -2 : Error
+ /// -1 : 엑셀파일아님
+ /// 0 : 97-2003 엑셀 파일 (xls)0
+ /// 1 : 2007 이상 파일 (xlsx)
+ ///
+ ///
+ /// Excel File 명 전체 경로입니다.
+ ///
+ public static int ExcelFileType(string XlsFile)
+ {
+ byte[,] ExcelHeader = {
+ { 0xD0, 0xCF, 0x11, 0xE0, 0xA1 }, // XLS File Header
+ { 0x50, 0x4B, 0x03, 0x04, 0x14 } // XLSX File Header
+ };
+
+ // result -2 = error, -1 = not excel , 0 = xls , 1 = xlsx
+ int result = -1;
+ FileInfo FI = new FileInfo(XlsFile);
+ FileStream FS = FI.Open(FileMode.Open);
+
+ try
+ {
+ byte[] FH = new byte[5];
+ FS.Read(FH, 0, 5);
+ for (int i = 0; i < 2; i++)
+ {
+ for (int j = 0; j < 5; j++)
+ {
+ if (FH[j] != ExcelHeader[i, j]) break;
+ else if (j == 4) result = i;
+ }
+ if (result >= 0) break;
+ }
+ }
+ catch
+ {
+ result = (-2);
+ //throw e;
+ }
+ finally
+ {
+ FS.Close();
+ }
+ return result;
+ }
+
+ ///
+ /// Excel 파일을 DataSet 으로 변환하여 반환한다.
+ ///
+ ///
+ /// Excel File 명 PullPath
+ ///
+ ///
+ /// 첫번째 줄을 Field 명으로 사용할 것이지 여부
+ ///
+ private static DataSet OpenExcel(string FileName, bool UseHeader)
+ {
+ DataSet DS = null;
+
+ string[] HDROpt = { "NO", "YES" };
+ string HDR = "";
+ string ConnStr = "";
+
+ if (UseHeader)
+ HDR = HDROpt[1];
+ else
+ HDR = HDROpt[0];
+
+ int ExcelType = ExcelFileType(FileName);
+ switch (ExcelType)
+ {
+ case (-2): throw new Exception(FileName + "의 형식검사중 오류가 발생하였습니다."); // An error occurred during type inspection
+ case (-1): throw new Exception(FileName + "은 엑셀 파일형식이 아닙니다."); // Is not an Excel file format.
+ case ( 0): ConnStr = string.Format(ConnectStrFrm_Excel97_2003, FileName, HDR, "1"); break;
+ case ( 1): ConnStr = string.Format(ConnectStrFrm_Excel, FileName, HDR, "1"); break;
+ }
+
+ OleDbConnection OleDBConn = null;
+ OleDbDataAdapter OleDBAdap = null;
+ DataTable Schema;
+
+ try
+ {
+ OleDBConn = new OleDbConnection(ConnStr);
+ OleDBConn.Open();
+
+ Schema = OleDBConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
+
+ DS = new DataSet();
+
+ foreach (DataRow DR in Schema.Rows)
+ {
+ OleDBAdap = new OleDbDataAdapter(DR["TABLE_NAME"].ToString(), OleDBConn);
+
+ OleDBAdap.SelectCommand.CommandType = CommandType.TableDirect;
+ OleDBAdap.AcceptChangesDuringFill = false;
+
+ string TableName = DR["TABLE_NAME"].ToString().Replace("$", String.Empty).Replace("'", String.Empty);
+
+ if (DR["TABLE_NAME"].ToString().Contains("$")) OleDBAdap.Fill(DS, TableName);
+ }
+ }
+ catch (Exception e)
+ {
+ throw e;
+ }
+ finally
+ {
+ if (OleDBConn != null) OleDBConn.Close();
+ }
+ return DS;
+ }
+
+ ///
+ /// DataSet 을 Excel 파일로 저장한다.
+ ///
+ ///
+ /// Excel File 명 PullPath
+ ///
+ ///
+ /// Excel 로 저장할 대상 DataSet 객체.
+ ///
+ ///
+ /// 동일한 파일명이 있을 때 삭제 할 것인지 여부, 파일이 있고 false 면 저장안하고 그냥 false 를 리턴.
+ ///
+ ///
+ /// xls 형태로 저장할 것인지 여부, false 이면 xlsx 형태로 저장함.
+ ///
+ private static bool SaveExcel(string FileName, DataSet DS, bool ExistDel, bool OldExcel)
+ {
+ bool result = true;
+
+ if (File.Exists(FileName))
+ if (ExistDel) File.Delete(FileName);
+ else return result;
+
+ string TempFile = FileName;
+ // 파일 확장자가 xls 이나 xlsx 가 아니면 아예 파일을 안만들어서
+ // 템프파일로 생성후 지정한 파일명으로 변경..
+
+ OleDbConnection OleDBConn = null;
+
+ try
+ {
+ OleDbCommand Cmd = null;
+ string ConnStr = "";
+
+ if (OldExcel)
+ {
+ TempFile = TempFile + ".xls";
+ ConnStr = string.Format(ConnectStrFrm_Excel97_2003, TempFile, "YES", "0");
+ }
+ else
+ {
+ TempFile = TempFile + ".xlsx";
+ ConnStr = string.Format(ConnectStrFrm_Excel, TempFile, "YES", "0");
+ }
+
+ OleDBConn = new OleDbConnection(ConnStr);
+ OleDBConn.Open();
+
+ // Create Table(s).. : 테이블 단위 처리
+ foreach (DataTable DT in DS.Tables)
+ {
+ String TableName = DT.TableName;
+
+ StringBuilder FldsInfo = new StringBuilder();
+ StringBuilder Flds = new StringBuilder();
+
+ // Create Field(s) String : 현재 테이블의 Field 명 생성
+ foreach (DataColumn Column in DT.Columns)
+ {
+ if (FldsInfo.Length > 0)
+ {
+ FldsInfo.Append(",");
+ Flds.Append(",");
+ }
+
+ FldsInfo.Append("[" + Column.ColumnName.Replace("'", "''") + "] CHAR(255)");
+ Flds.Append(Column.ColumnName.Replace("'", "''"));
+ }
+
+ // Table Create
+ Cmd = new OleDbCommand("CREATE TABLE " + TableName + "(" + FldsInfo.ToString() + ")", OleDBConn);
+ Cmd.ExecuteNonQuery();
+
+ // Insert Data
+ foreach (DataRow DR in DT.Rows)
+ {
+ StringBuilder Values = new StringBuilder();
+ foreach (DataColumn Column in DT.Columns)
+ {
+ if (Values.Length > 0) Values.Append(",");
+ Values.Append("'" + DR[Column.ColumnName].ToString().Replace("'", "''") + "'");
+ }
+
+ Cmd = new OleDbCommand(
+ "INSERT INTO [" + TableName + "$]" +
+ "(" + Flds.ToString() + ") " +
+ "VALUES (" + Values.ToString() + ")",
+ OleDBConn);
+ Cmd.ExecuteNonQuery();
+ }
+ }
+ }
+ catch (Exception)
+ {
+ result = false;
+ }
+ finally
+ {
+ if (OleDBConn != null) OleDBConn.Close();
+ try
+ {
+ if (File.Exists(TempFile))
+ {
+ File.Move(TempFile, FileName);
+ }
+ }
+ catch { }
+ }
+ return result;
+ }
+
+ ///
+ /// Excel 파일을 DataSet 으로 변환하여 반환한다.
+ ///
+ ///
+ /// 읽어올 Excel File 명(전체경로)입니다.
+ ///
+ public static DataSet OpenExcelDB(string ExcelFile)
+ {
+ return OpenExcel(ExcelFile, true);
+ }
+
+ ///
+ /// DataSet 을 Excel 파일로 저장한다. 동일 파일명이 있으면 Overwrite 됩니다.
+ ///
+ ///
+ /// 저장할 Excel File 명(전체경로)입니다.
+ ///
+ ///
+ /// 저장할 대상 DataSet 입니다.
+ ///
+ public static bool SaveExcelDB(string ExcelFile, DataSet DS)
+ {
+ return SaveExcel(ExcelFile, DS, true, false);
+ }
+ }
+}
diff --git a/LFP_Manager/Utils/csLog.cs b/LFP_Manager/Utils/csLog.cs
new file mode 100644
index 0000000..5b66396
--- /dev/null
+++ b/LFP_Manager/Utils/csLog.cs
@@ -0,0 +1,616 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.IO;
+using System.Runtime.InteropServices;
+
+using LFP_Manager.DataStructure;
+
+using log4net;
+using log4net.Appender;
+using log4net.Layout;
+using log4net.Repository.Hierarchy;
+
+namespace LFP_Manager.Utils
+{
+ public class csL4Logger
+ {
+ private static csL4Logger LoggerInstance;
+
+ public ILog log;
+ public RollingFileAppender rollingAppender;
+ public PatternLayout layout;
+ public log4net.Filter.LoggerMatchFilter lmf;
+
+ public static csL4Logger GetInstance()
+ {
+ if (LoggerInstance == null)
+ {
+ LoggerInstance = new csL4Logger();
+ }
+ return LoggerInstance;
+ }
+
+ public csL4Logger()
+ {
+ string FilePath = AppDomain.CurrentDomain.BaseDirectory + "\\Log\\App.log"; // 실행폴더 아래에 Log폴더
+
+ Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository();
+ hierarchy.Configured = true;
+
+ RollingFileAppender rollingAppender = new RollingFileAppender();
+ rollingAppender.Name = "logger";
+ rollingAppender.File = FilePath; // 로그파일 이름
+ rollingAppender.AppendToFile = true;
+
+ rollingAppender.StaticLogFileName = true;
+ rollingAppender.CountDirection = 1;
+ rollingAppender.RollingStyle = RollingFileAppender.RollingMode.Date;
+ rollingAppender.DatePattern = "_yyyyMMdd\".log\""; // 날짜가 변경되면 이전 로그에 붙은 이름
+
+ PatternLayout layout = new PatternLayout("%date [%-5level] %message%newline"); // 로그출력 포맷
+
+ rollingAppender.Layout = layout;
+
+ hierarchy.Root.AddAppender(rollingAppender);
+ rollingAppender.ActivateOptions();
+ hierarchy.Root.Level = log4net.Core.Level.All;
+
+ log = LogManager.GetLogger("logger");
+ Logger l = (Logger)log.Logger;
+ }
+
+ public void AddDebug(string LogMsg)
+ {
+ log.Debug(LogMsg);
+ }
+
+ public void AddError(string LogMsg)
+ {
+ log.Error(LogMsg);
+ }
+
+ public void Close()
+ {
+ LogManager.Shutdown();
+ }
+ }
+
+ class csLog
+ {
+ private static string SYSTEMLOG_FILE_DIR_M = "\\log\\systemlog";
+ private static string SYSTEMLOG_FILE_DIR = "\\log\\systemlog";
+
+ private static string DB_FILE_DIR = @"\db";
+
+ public static string GetLogFolder(string AppPath)
+ {
+ string path = System.IO.Path.GetDirectoryName(AppPath);
+
+ if (Directory.Exists(path + SYSTEMLOG_FILE_DIR_M) == false)
+ Directory.CreateDirectory(path + SYSTEMLOG_FILE_DIR_M);
+
+ return path + SYSTEMLOG_FILE_DIR_M;
+ }
+
+ public static string GetDbFolder(string AppPath)
+ {
+ string path = System.IO.Path.GetDirectoryName(AppPath);
+
+ if (Directory.Exists(path + DB_FILE_DIR) == false)
+ Directory.CreateDirectory(path + DB_FILE_DIR);
+
+ return path + DB_FILE_DIR;
+ }
+
+ public static void SystemDataLog(int RackID, CommConfig sConfig, CsDeviceData.DeviceModuleData mData, DateTime aTime, string AppPath)
+ {
+ SYSTEMLOG_FILE_DIR = String.Format("{0}\\SHELF{1}\\{2}", "\\log\\systemlog", RackID, String.Format("{0:yyyyMM}", aTime));
+
+ FileStream logFile = null;
+ string path = System.IO.Path.GetDirectoryName(AppPath);
+ string FileName = String.Format(path + SYSTEMLOG_FILE_DIR + "\\SHELF{0}_LOG_{1}.csv", RackID, String.Format("{0:yyMMdd}", aTime));
+ byte[] logData;
+
+ if (Directory.Exists(path + SYSTEMLOG_FILE_DIR) == false)
+ Directory.CreateDirectory(path + SYSTEMLOG_FILE_DIR);
+
+ if (File.Exists(FileName) == false)
+ {
+ logFile = new FileStream(FileName, FileMode.CreateNew, FileAccess.ReadWrite);
+ logData = WriteDataHeader(aTime, mData);
+ logFile.Write(logData, 0, logData.Length);
+ logFile.Close();
+ }
+
+ logFile = null;
+ //logFile = new FileStream(FileName, FileMode.Open, FileAccess.ReadWrite);
+ logFile = new FileStream(FileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
+
+ if (logFile != null)
+ {
+ logFile.Seek(0, SeekOrigin.End);
+ logData = WriteData(aTime, sConfig, mData);
+ logFile.Write(logData, 0, logData.Length);
+ logFile.Close();
+ }
+ }
+
+ public static void SystemTotalDataLog(CommConfig sConfig, CsDeviceData.DeviceSystemTotalData tData, DateTime aTime, string AppPath, string LogFileName)
+ {
+ SYSTEMLOG_FILE_DIR = String.Format("{0}\\MAIN\\{1}", "\\log\\systemlog", String.Format("{0:yyyyMM}", aTime));
+
+ FileStream logFile = null;
+ string path = System.IO.Path.GetDirectoryName(AppPath);
+ //string FileName = String.Format(path + SYSTEMLOG_FILE_DIR + "\\SHELF{0}_LOG_{1}.csv", RackID, String.Format("{0:yyMMdd}", aTime));
+ string FileName = String.Format(path + SYSTEMLOG_FILE_DIR + "\\MAIN_LOG_{0}.csv", LogFileName);
+ byte[] logData;
+
+ if (Directory.Exists(path + SYSTEMLOG_FILE_DIR) == false)
+ Directory.CreateDirectory(path + SYSTEMLOG_FILE_DIR);
+
+ if (File.Exists(FileName) == false)
+ {
+ logFile = new FileStream(FileName, FileMode.CreateNew, FileAccess.ReadWrite);
+ logData = WriteTotalDataHeader(aTime);
+ logFile.Write(logData, 0, logData.Length);
+ logFile.Close();
+ }
+
+ logFile = null;
+ //logFile = new FileStream(FileName, FileMode.Open, FileAccess.ReadWrite);
+ logFile = new FileStream(FileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
+
+ if (logFile != null)
+ {
+ logFile.Seek(0, SeekOrigin.End);
+ logData = WriteTotalData(aTime, sConfig, tData);
+ logFile.Write(logData, 0, logData.Length);
+ logFile.Close();
+ }
+ }
+
+ public static void SystemDataLog(int mID, CommConfig sConfig, CsDeviceData.DeviceModuleData mData, DateTime aTime, string AppPath, string LogFileName)
+ {
+ SYSTEMLOG_FILE_DIR = String.Format("{0}\\SHELF{1}\\{2}", "\\log\\systemlog", mID, String.Format("{0:yyyyMM}", aTime));
+
+ FileStream logFile = null;
+ string path = Path.GetDirectoryName(AppPath);
+ //string FileName = String.Format(path + SYSTEMLOG_FILE_DIR + "\\SHELF{0}_LOG_{1}.csv", RackID, String.Format("{0:yyMMdd}", aTime));
+ string FileName = String.Format(path + SYSTEMLOG_FILE_DIR + "\\SHELF{0}_LOG_{1}.csv", mID, LogFileName);
+ byte[] logData;
+
+ if (Directory.Exists(path + SYSTEMLOG_FILE_DIR) == false)
+ Directory.CreateDirectory(path + SYSTEMLOG_FILE_DIR);
+
+ if (File.Exists(FileName) == false)
+ {
+ logFile = new FileStream(FileName, FileMode.CreateNew, FileAccess.ReadWrite);
+ logData = WriteDataHeader(aTime, mData);
+ logFile.Write(logData, 0, logData.Length);
+ logFile.Close();
+ }
+
+ logFile = null;
+ //logFile = new FileStream(FileName, FileMode.Open, FileAccess.ReadWrite);
+ logFile = new FileStream(FileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
+
+ if (logFile != null)
+ {
+ logFile.Seek(0, SeekOrigin.End);
+ logData = WriteData(aTime, sConfig, mData);
+ logFile.Write(logData, 0, logData.Length);
+ logFile.Close();
+ }
+ }
+
+ #region SYSTEM DATE LOGGING
+
+ private static byte[] WriteTotalDataHeader(DateTime aDateTime)
+ {
+ string tt;
+ string sdata;
+
+ tt = aDateTime.ToString("yyyy-MM-dd HH:mm:ss");
+ sdata = String.Format(
+ "{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},"
+ , "DATETIME" // 0
+ , "INTERFACE" // 1
+ , "MODEL" // 2
+ , "COMM STATUS" // 3
+ , "STATUS" // 4
+ , "ALARM" // 5
+ , "VOLTAGE" // 6
+ , "CURRENT" // 7
+ , "SOC" // 8
+ , "MAX. TEMP" // 9
+ );
+ sdata += "\r\n";
+
+ Byte[] info =
+ new UTF8Encoding(true).GetBytes(sdata);
+
+ return info;
+ }
+
+ private static byte[] WriteDataHeader(DateTime aDateTime, CsDeviceData.DeviceModuleData mData)
+ {
+ string tt;
+ string sdata;
+
+ tt = aDateTime.ToString("yyyy-MM-dd HH:mm:ss");
+ sdata = String.Format(
+ "{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},"
+ , "DATETIME" // 0
+ , "INTERFACE" // 1
+ , "MODEL" // 2
+ , "FW_VER" // 3
+ , "MODULE_SN" // 4
+ , "COMM STATUS" // 5
+ , "STATUS" // 6
+ , "ALARM" // 7
+ , "VOLTAGE" // 8
+ , "CURRENT" // 9
+ , "SOC" // 10
+ , "SOH" // 11
+ , "CYCLES" // 12
+ );
+ sdata += "CV_DIFF,";
+ for (int i = 0; i < mData.cellQty; i++)
+ {
+ sdata += String.Format("{0},", String.Format("Cell_{0}", i + 1));
+ }
+
+ sdata += "TP_DIFF,";
+ for (int i = 0; i < mData.tempQty; i++)
+ {
+ sdata += String.Format("{0},", String.Format("Temp_{0}", i + 1));
+ }
+
+ sdata += String.Format("{0},", String.Format("EXT1_Temp"));
+ sdata += String.Format("{0},", String.Format("EXT2_Temp"));
+
+ sdata += String.Format(
+ "{0},{1},{2},"
+ , "Warning" // 0
+ , "Fault" // 1
+ , "CB" // 2
+ );
+ sdata += "\r\n";
+
+ Byte[] info =
+ new UTF8Encoding(true).GetBytes(sdata);
+
+ return info;
+ }
+
+ private static string GetStatusString(ushort aStatus)
+ {
+ string result = "";
+
+ if (aStatus == 0)
+ {
+ result = "STANDBY";
+ }
+ else if (aStatus == 1)
+ {
+ result = "CHARGING";
+ }
+ else if (aStatus == 2)
+ {
+ result = "DISCHARGING";
+ }
+ else if (aStatus == 3)
+ {
+ result = "FLOATING";
+ }
+ else
+ {
+ result = "UNKNOWN";
+ }
+ return result;
+ }
+
+ private static string GetAlarmString(ushort aAlarm)
+ {
+ string result = "";
+ bool[] rackStatus = csUtils.UInt16ToBitArray(aAlarm);
+
+ if (aAlarm == 0) result = "NORMAL";
+ else if (aAlarm == 1) result = "WARNING";
+ else if (aAlarm == 2) result = "FAULT";
+ else if (aAlarm == 3) result = "WARMING UP";
+ else result = "UNKNOWN";
+
+ return result;
+ }
+
+ private static string GetInterface(int sCommType)
+ {
+ string result = "";
+
+ result = "UART";
+
+ return result;
+ }
+
+ private static string GetModelName(CommConfig sConfig)
+ {
+ string result = "";
+
+ result = csConstData.UART_MODEL[sConfig.UartModelIndex];
+
+ return result;
+ }
+
+ private static string GetCommStatus(CommConfig sConfig, CsDeviceData.DeviceModuleData mData)
+ {
+ string result = "";
+
+ switch (sConfig.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ result = mData.CommFail == false ? "NORM" : "FAIL";
+ break;
+ case csConstData.CommType.COMM_RS485:
+ result = mData.CommFail == false ? "NORM" : "FAIL";
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ if (mData.CommFail == false)
+ {
+ if (mData.ShelfCommFail == false) result = "NORM";
+ else result = "FAIL";
+ }
+ else
+ {
+ result = "OFF-LINE";
+ }
+ break;
+ default:
+ break;
+ }
+ return result;
+ }
+
+ private static string GetCommStatus(CsDeviceData.DeviceSystemTotalData aTotalData)
+ {
+ string result = "";
+
+ if (aTotalData.CommFail)
+ result = "OFF-LINE";
+ else
+ result = "NORM";
+
+ return result;
+ }
+
+ private static byte[] WriteTotalData(DateTime aLog, CommConfig sConfig, CsDeviceData.DeviceSystemTotalData tData)
+ {
+ string tt;
+ string sdata;
+
+ tt = aLog.ToString("yyyy-MM-dd HH:mm:ss");
+ sdata = String.Format(
+ "{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},"
+ , tt // 0 DATETIME
+ , GetInterface(sConfig.CommType) // 1 INTERFACE
+ , GetModelName(sConfig) // 2 MODEL
+ , GetCommStatus(tData) // 3 COMM STATUS
+ , GetStatusString(tData.StatusData.status) // 4 STATUS
+ , GetAlarmString(tData.StatusData.batteryStatus) // 5 ALARM
+ , String.Format("{0:#0.0}", Convert.ToDouble(tData.ValueData.TotalVoltage) / 10) // 6 voltageOfPack
+ , String.Format("{0:#0.0}", Convert.ToDouble(tData.ValueData.TotalCurrent) / 10) // 7 current
+ , String.Format("{0:#0.0}", Convert.ToDouble(tData.ValueData.TotalSOC) / 10) // 8 SOC
+ , String.Format("{0:#0.0}", Convert.ToDouble(tData.ValueData.TotalTemp) / 10) // 9 Max Temperature
+ );
+ sdata += "\r\n";
+
+ Byte[] info =
+ new UTF8Encoding(true).GetBytes(sdata);
+
+ return info;
+ }
+
+ private static byte[] WriteData(DateTime aLog, CommConfig sConfig, CsDeviceData.DeviceModuleData mData)
+ {
+ string tt;
+ string sdata;
+
+ tt = string.Format("{0:yyyy-MM-dd HH:mm:ss}", aLog);
+ sdata = String.Format(
+ "{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},"
+ , tt // 0 DATETIME
+ , GetInterface(sConfig.CommType) // 1 INTERFACE
+ , mData.Information.ModelName // 2 MODEL
+ , mData.Information.SwProductRev // 3 FW Ver
+ , mData.Information.HwSerialNumber // 4 SN
+ , GetCommStatus(sConfig, mData) // 5 COMM STATUS
+ , GetStatusString(mData.StatusData.status) // 6 STATUS
+ , GetAlarmString(mData.StatusData.batteryStatus) // 7 ALARM
+ , String.Format("{0:#0.0}", Convert.ToDouble(mData.ValueData.voltage) / 10) // 8 voltageOfPack
+ , String.Format("{0:#0.0}", Convert.ToDouble(mData.ValueData.current) / 10) // 9 current
+ , String.Format("{0:#0.0}", Convert.ToDouble(mData.ValueData.SOC) / 10) // 10 SOC
+ , String.Format("{0:#0.0}", Convert.ToDouble(mData.ValueData.SOH) / 10) // 11 SOH
+ , String.Format("{0}", Convert.ToDouble(mData.ValueData.cycleCount) / 1) // 12 Cycle Count
+ );
+
+ sdata += String.Format("{0:#0.000},", Convert.ToDouble(mData.AvgData.diffCellVoltage) / 1000); // 13 Cell Voltage Diff
+ for (int i = 0; i < mData.cellQty; i++)
+ {
+ sdata += String.Format("{0:#0.000},", Convert.ToDouble(mData.ValueData.CellVoltage[i]) / 1000); // 14 - 28 Cell Voltage n
+ }
+
+ sdata += String.Format("{0:#0.0},", Convert.ToDouble(mData.AvgData.diffTemp) / 10); // 29 Temperature Diff
+ for (int i = 0; i < mData.tempQty; i++)
+ {
+ sdata += String.Format("{0:#0.0},", Convert.ToDouble(mData.ValueData.CellTemperature[i]) / 10); // 30 - 33 Cell Temperature n
+ }
+
+ sdata += String.Format("{0:#0.0},", Convert.ToDouble(mData.ValueData.MosTemperature) / 10); // 34 Ext1 Temperature n
+ sdata += String.Format("{0:#0.0},", Convert.ToDouble(mData.ValueData.AmbTemperature) / 10); // 35 Ext2 Temperature n
+
+ sdata += String.Format(
+ "{0},{1},{2},"
+ , String.Format("0x{0}", mData.StatusData.warning.ToString("X4")) // 0 Warning
+ , String.Format("0x{0}", mData.StatusData.protect.ToString("X4")) // 1 Protection
+ , String.Format("0x{0}", mData.StatusData.cellBallanceStatus.ToString("X4")) // 2 cellBallanceStatus
+ );
+ sdata += "\r\n";
+
+ Byte[] info =
+ new UTF8Encoding(true).GetBytes(sdata);
+
+ return info;
+ }
+ #endregion
+
+ #region DATA PRINT
+
+ public static string data_print(byte[] data, int len)
+ {
+ byte[] ASC;
+ int i, j;
+ string result = "";
+
+ ASC = new byte[20];
+
+ if (len > 2)
+ {
+ if (ASC != null)
+ {
+ for (i = 0; i < (len / 16 + 1); i++)
+ {
+ result += String.Format("0x{0:X8} ", (int)(i * 16));
+ for (j = 0; j < 16; j++)
+ {
+ if ((i * 16 + j) >= data.Length)
+ {
+ result += " ";
+ ASC[j] = (byte)' ';
+ }
+ else
+ {
+ result += String.Format("{0:X2} ", data[(i * 16) + j]);
+ if (data[i * 16 + j] < ' ')
+ ASC[j] = (byte)'.';
+ else
+ {
+ if ((j == 15) && (data[i * 16 + j] > 128))
+ ASC[j] = (byte)'.';
+ else
+ ASC[j] = data[i * 16 + j];
+ }
+ }
+ }
+ ASC[16] = 0x00;
+ result += "\r\n";
+ //result += String.Format(" {0}\r\n", ASC.ToArray().ToString());
+ }
+ }
+ result += "\r\n";
+ //result += String.Format("ID: {0:X2}\r\n", data[6]);
+ //result += String.Format("CMD: {0:X2}\r\n", data[7]);
+ //result += String.Format("S-A: {0:X4}({0:d})\r\n", (data[8] << 8) | data[9]);
+ //result += String.Format("S-L: {0:X4}({0:d})\r\n", (data[10] << 8) | data[11]);
+ }
+
+ return result;
+ }
+ public static string trx_data_print(byte[] data, int len, int flag)
+ {
+ int i, j;
+ string result = "";
+
+ if (len > 2)
+ {
+ for (i = 0; i < (len / 16 + 1); i++)
+ {
+ if (flag == 0)
+ { result += string.Format("[{0:yyyy-MM-dd HH:mm:ss.fff}] TX({1:0000}): ", DateTime.Now, len); }
+ else
+ { result += string.Format("[{0:yyyy-MM-dd HH:mm:ss.fff}] RX({1:0000}): ", DateTime.Now, len); }
+
+ for (j = 0; j < 16; j++)
+ {
+ if ((i * 16 + j) >= len)
+ {
+ result += " ";
+ }
+ else
+ {
+ result += string.Format("{0:X2} ", data[(i * 16) + j]);
+ }
+ }
+ result += "\r\n";
+ }
+ }
+ return result;
+ }
+ public static string trx_msg_print(string msg, int flag)
+ {
+ string result = "";
+
+ if (flag == 0)
+ {
+ result += string.Format("[{0:yyyy-MM-dd HH:mm:ss.fff}] TX({1}) ", DateTime.Now, msg);
+ }
+ else
+ {
+ result += string.Format("[{0:yyyy-MM-dd HH:mm:ss.fff}] RX({1}) ", DateTime.Now, msg);
+ }
+ return result;
+ }
+
+ #endregion
+
+ #region DB ERROR LOG
+ public static void SystemDbErrorLog(CommConfig sConfig, string sEvent, DateTime aTime, string AppPath)
+ {
+ SYSTEMLOG_FILE_DIR = string.Format(@"{0}\SystemErr\{1}", @"\log\systemlog", string.Format("{0:yyyyMM}", aTime));
+ string path = Path.GetDirectoryName(AppPath);
+ string FileName = string.Format(path + SYSTEMLOG_FILE_DIR + @"\SYS_ERROR_LOG_{0}.txt", string.Format("{0:yyMMdd}", aTime));
+ byte[] logData;
+
+ if (Directory.Exists(path + SYSTEMLOG_FILE_DIR) == false)
+ {
+ Directory.CreateDirectory(path + SYSTEMLOG_FILE_DIR);
+ }
+
+ FileStream logFile;
+ if (File.Exists(FileName) == false)
+ {
+ logFile = new FileStream(FileName, FileMode.CreateNew, FileAccess.ReadWrite);
+ logFile.Close();
+ }
+
+ logFile = new FileStream(FileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
+
+ if (logFile != null)
+ {
+ logFile.Seek(0, SeekOrigin.End);
+ logData = WriteDbEventData(aTime, sEvent);
+ logFile.Write(logData, 0, logData.Length);
+ logFile.Close();
+ }
+ }
+ private static byte[] WriteDbEventData(DateTime aLog, String sEvent)
+ {
+ string tt;
+ string sdata;
+
+ tt = aLog.ToString("yyyy-MM-dd HH:mm:ss");
+ sdata = String.Format(
+ "{0} {1}\r\n"
+ , tt // 0 DATETIME
+ , sEvent // 1 Event Log Data
+ );
+
+ byte[] info = new UTF8Encoding(true).GetBytes(sdata);
+
+ return info;
+ }
+ #endregion
+
+ }
+}
diff --git a/LFP_Manager/Utils/csUtils.cs b/LFP_Manager/Utils/csUtils.cs
new file mode 100644
index 0000000..eb75b24
--- /dev/null
+++ b/LFP_Manager/Utils/csUtils.cs
@@ -0,0 +1,301 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+using LFP_Manager.DataStructure;
+
+namespace LFP_Manager.Utils
+{
+ static class csUtils
+ {
+ public static readonly byte[] auchCRCHi = {
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
+ 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
+ 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
+ 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,
+ 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
+ 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
+ 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
+ 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
+ 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
+ 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
+ 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
+ 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
+ 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40
+ };
+
+ public static readonly byte[] auchCRCLo = {
+ 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4,
+ 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,
+ 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD,
+ 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,
+ 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7,
+ 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A,
+ 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE,
+ 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,
+ 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2,
+ 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,
+ 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB,
+ 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,
+ 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91,
+ 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,
+ 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88,
+ 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
+ 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,0x40
+ };
+
+ #region CRC Calculation
+ ///
+ /// Modbus CRC-16 계산
+ ///
+ public static byte[] CalculateCRC(byte[] data, int length)
+ {
+ if (data == null || length <= 0 || length > data.Length)
+ throw new ArgumentException("Invalid data or length");
+
+ ushort crc = 0xFFFF;
+
+ for (int i = 0; i < length; i++)
+ {
+ crc ^= data[i];
+ for (int j = 0; j < 8; j++)
+ {
+ if ((crc & 1) == 1)
+ crc = (ushort)((crc >> 1) ^ 0xA001);
+ else
+ crc >>= 1;
+ }
+ }
+
+ return new byte[] { (byte)(crc & 0xFF), (byte)(crc >> 8) };
+ }
+ #endregion
+
+ public static int GetModuleQty(CommConfig aConfig)
+ {
+ int mQty = 0;
+
+ switch (aConfig.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ mQty = 1;
+ break;
+ case csConstData.CommType.COMM_RS485:
+ mQty = aConfig.ModuleQty;
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ mQty = 1;
+ break;
+ default:
+ mQty = 0;
+ break;
+ }
+ return mQty;
+ }
+
+ public static void TypingOnlyNumber(object sender, KeyPressEventArgs e, bool includePoint, bool includeMinus)
+ {
+ bool isValidInput = false;
+ if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
+ {
+ if (includePoint == true) { if (e.KeyChar == '.') isValidInput = true; }
+ if (includeMinus == true) { if (e.KeyChar == '-') isValidInput = true; }
+
+ if (isValidInput == false) e.Handled = true;
+ }
+
+ if (includePoint == true)
+ {
+ if (e.KeyChar == '.' && (string.IsNullOrEmpty((sender as DevExpress.XtraEditors.TextEdit).Text.Trim()) || (sender as DevExpress.XtraEditors.TextEdit).Text.IndexOf('.') > -1)) e.Handled = true;
+ }
+ if (includeMinus == true)
+ {
+ if (e.KeyChar == '-' && (!string.IsNullOrEmpty((sender as DevExpress.XtraEditors.TextEdit).Text.Trim()) || (sender as DevExpress.XtraEditors.TextEdit).Text.IndexOf('-') > -1)) e.Handled = true;
+ }
+ }
+
+ public static bool[] Int16ToBitArray(Int16 data)
+ {
+ bool[] result = new bool[16];
+
+ for (int i = 0; i < 16; i++)
+ {
+ result[i] = (((data >> i) & 0x0001) == 0x0001) ? true : false;
+ }
+
+ return result;
+ }
+
+ public static bool[] UInt16ToBitArray(UInt16 data)
+ {
+ bool[] result = new bool[16];
+
+ for (int i = 0; i < 16; i++)
+ {
+ result[i] = (((data >> i) & 0x0001) == 0x0001) ? true : false;
+ }
+
+ return result;
+ }
+
+ public static byte[] GetCRC(byte[] pby, UInt16 nSize)
+ {
+ byte[] result = new byte[2];
+ UInt16 uIndex, i;
+ UInt16 crc;
+ byte uchCRCHi = 0xff;
+ byte uchCRCLo = 0xff;
+
+ for (i = 0; i < nSize; i++)
+ {
+ uIndex = (UInt16)(uchCRCHi ^ pby[i]);
+ uchCRCHi = (byte)(uchCRCLo ^ csConstData.CRC_Data.auchCRCHi[uIndex]);
+ uchCRCLo = csConstData.CRC_Data.auchCRCLo[uIndex];
+ }
+ crc = (UInt16)(((UInt16)uchCRCHi << 8) | uchCRCLo);
+
+ result[1] = (byte)(crc / 256);
+ result[0] = (byte)(crc % 256);
+
+ return result;
+ }
+
+ public static byte StrByte2toByte(byte a, byte b)
+ {
+ byte result = 0;
+ byte a1 = 0, b1 = 0;
+
+ if ((a >= (byte)'0')&&(a <= (byte)'9'))
+ {
+ a1 = (byte)(a - (byte)'0');
+ }
+ else if ((a >= (byte)'a')&&(a <= (byte)'f'))
+ {
+ a1 = (byte)(a - (byte)'a');
+ }
+ else if ((a >= (byte)'A')&&(a <= (byte)'F'))
+ {
+ a1 = (byte)((a - (byte)'A') + 0x0A);
+ }
+
+ if ((b >= (byte)'0') && (b <= (byte)'9'))
+ {
+ b1 = (byte)(b - (byte)'0');
+ }
+ else if ((b >= (byte)'a') && (b <= (byte)'f'))
+ {
+ b1 = (byte)(b - (byte)'a');
+ }
+ else if ((b >= (byte)'A') && (b <= (byte)'F'))
+ {
+ b1 = (byte)((b - (byte)'A') + 0x0A);
+ }
+
+ result = (byte)((b1 << 4) | a1);
+
+ return result;
+ }
+
+ public static byte[] StrToByteArray(byte[] rData, int offset, int rlen)
+ {
+ int len = (rlen - 2) / 2;
+ byte[] result = new byte[len];
+
+ for (int i = 0; i < len; i++)
+ {
+ result[i] = StrByte2toByte(rData[(i * 2) + offset + 2], rData[(i * 2) + offset + 1]);
+ }
+
+ return result;
+ }
+
+ public static byte[] StringToByte(string str)
+ {
+ byte[] StrByte = Encoding.UTF8.GetBytes(str); return StrByte;
+ }
+
+ #region OPERATING WARNING FUCTION
+
+ public static bool BitCheck(short rData, int pos)
+ {
+ if (((rData >> pos) & 0x0001) == 0x0001)
+ return true;
+ else
+ return false;
+ }
+
+ #endregion
+
+ #region TIMESTAMP FUNCTION
+ public static UInt32 CalcKKTimeStamp(DateTime tDate)
+ {
+ //Time of test and calibration. Local time in seconds since 2000.
+ //Ex:
+ //Epoch time offset (1 January 2000 00:00:00) = 946684800
+ //Current epoch time (1 October 2019 12:00:00) = 1569931200
+ //Timestamp = 1569931200 - 946684800 = 623246400
+ //(Used 'https://www.epochconverter.com/' for conversion)
+ DateTime baseDate = new DateTime(2000, 1, 1, 0, 0, 0);
+
+ int bDate = ConvertToUnixTimestamp(baseDate);
+ int nDate = ConvertToUnixTimestamp(tDate);
+
+ return (UInt32)(nDate - bDate);
+ }
+
+ public static DateTime ConvertTimeStampToDateTime(UInt32 tStamp)
+ {
+ DateTime result = new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Utc);
+
+ result = result.AddSeconds(tStamp);
+
+ // DateTimeOffset.Now.ToUnixTimeSeconds() // (.NET Framework 4.6 +/.NET Core),
+ // older versions:
+ //var epoch = (DateTime.UtcNow - new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds;
+
+ return result;
+ }
+
+ public static int ConvertToUnixTimestamp(DateTime date)
+ {
+ DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0);
+ TimeSpan diff = date - origin;
+ return (int)Math.Floor(diff.TotalSeconds);
+ }
+ #endregion
+
+ #region DateTime Format Methods
+ ///
+ /// DateTime을 기본 형식으로 변환합니다. (yyyy-MM-dd HH:mm:ss)
+ ///
+ public static string FormatDateTime(DateTime dateTime)
+ {
+ return dateTime.ToString("yyyy-MM-dd HH:mm:ss");
+ }
+ #endregion
+
+ #region HELPERS
+ public static class MathEx
+ {
+ public static int Clamp(int value, int min, int max)
+ {
+ if (min > max) { var t = min; min = max; max = t; } // 방어적
+ if (value < min) return min;
+ if (value > max) return max;
+ return value;
+ }
+ }
+ #endregion
+
+ #region COMBINE HELPER
+ public static string CombineSafe(string dir, string file) => Path.Combine(dir ?? "", (file ?? "").TrimStart('\\', '/'));
+ #endregion
+ }
+}
diff --git a/LFP_Manager/app.config b/LFP_Manager/app.config
new file mode 100644
index 0000000..5edc23b
--- /dev/null
+++ b/LFP_Manager/app.config
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/dll/ControlCAN.dll b/LFP_Manager/dll/ControlCAN.dll
new file mode 100644
index 0000000..5df15bc
Binary files /dev/null and b/LFP_Manager/dll/ControlCAN.dll differ
diff --git a/LFP_Manager/dll/IPAddressControlLib.dll b/LFP_Manager/dll/IPAddressControlLib.dll
new file mode 100644
index 0000000..642eb20
Binary files /dev/null and b/LFP_Manager/dll/IPAddressControlLib.dll differ
diff --git a/LFP_Manager/dll/SnmpSharpNet.dll b/LFP_Manager/dll/SnmpSharpNet.dll
new file mode 100644
index 0000000..a6104ee
Binary files /dev/null and b/LFP_Manager/dll/SnmpSharpNet.dll differ
diff --git a/LFP_Manager/dll/Tftp.Net.dll b/LFP_Manager/dll/Tftp.Net.dll
new file mode 100644
index 0000000..c1bcfed
Binary files /dev/null and b/LFP_Manager/dll/Tftp.Net.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/CAN232.dll b/LFP_Manager/dll/kerneldlls/CAN232.dll
new file mode 100644
index 0000000..f0f4fb6
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/CAN232.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/CANETE.dll b/LFP_Manager/dll/kerneldlls/CANETE.dll
new file mode 100644
index 0000000..2c1b041
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/CANETE.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/CANET_TCP.dll b/LFP_Manager/dll/kerneldlls/CANET_TCP.dll
new file mode 100644
index 0000000..060ac4a
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/CANET_TCP.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/CANWIFI_TCP.dll b/LFP_Manager/dll/kerneldlls/CANWIFI_TCP.dll
new file mode 100644
index 0000000..a1f566b
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/CANWIFI_TCP.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/CANWIFI_UDP.dll b/LFP_Manager/dll/kerneldlls/CANWIFI_UDP.dll
new file mode 100644
index 0000000..e715e5f
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/CANWIFI_UDP.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/PC104C2.dll b/LFP_Manager/dll/kerneldlls/PC104C2.dll
new file mode 100644
index 0000000..ca44ce8
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/PC104C2.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/PC104CAN.dll b/LFP_Manager/dll/kerneldlls/PC104CAN.dll
new file mode 100644
index 0000000..e0ed7c5
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/PC104CAN.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/PCI5121.dll b/LFP_Manager/dll/kerneldlls/PCI5121.dll
new file mode 100644
index 0000000..231017c
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/PCI5121.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/PCI9820B.DLL b/LFP_Manager/dll/kerneldlls/PCI9820B.DLL
new file mode 100644
index 0000000..784296e
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/PCI9820B.DLL differ
diff --git a/LFP_Manager/dll/kerneldlls/gisadll.dll b/LFP_Manager/dll/kerneldlls/gisadll.dll
new file mode 100644
index 0000000..e657290
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/gisadll.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/gpcidll.dll b/LFP_Manager/dll/kerneldlls/gpcidll.dll
new file mode 100644
index 0000000..1d3ae86
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/gpcidll.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/isa5420.dll b/LFP_Manager/dll/kerneldlls/isa5420.dll
new file mode 100644
index 0000000..bace86a
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/isa5420.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/kerneldll.ini b/LFP_Manager/dll/kerneldlls/kerneldll.ini
new file mode 100644
index 0000000..3899f0e
--- /dev/null
+++ b/LFP_Manager/dll/kerneldlls/kerneldll.ini
@@ -0,0 +1,31 @@
+[KERNELDLL]
+COUNT=29
+1=PCI51XXE.dll
+2=PCI9810B.dll
+3=USBCAN.dll
+4=USBCAN.dll
+5=PCI9820B.dll
+6=CAN232.dll
+7=PCI51XXE.dll
+8=CANLite.dll
+9=ISA9620B.dll
+10=ISA5420.dll
+11=PC104CAN.dll
+12=CANETE.dll
+13=DNP9810B.dll
+14=PCI9840B.dll
+15=PC104C2.dll
+16=PCI9820I.dll
+17=CANET_TCP.dll
+18=pec9920.dll
+19=pci50xx_u.dll
+20=USBCAN_E.dll
+21=USBCAN_E.dll
+22=pci50xx_u.dll
+23=topcliff_can.dll
+24=pcie9221.dll
+25=CANWIFI_TCP.dll
+26=CANWIFI_UDP.dll
+27=pcie9120.dll
+28=pcie9110.dll
+29=pcie9140.dll
diff --git a/LFP_Manager/dll/kerneldlls/usbcan.dll b/LFP_Manager/dll/kerneldlls/usbcan.dll
new file mode 100644
index 0000000..838e490
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/usbcan.dll differ
diff --git a/LFP_Manager/dll/log4net.dll b/LFP_Manager/dll/log4net.dll
new file mode 100644
index 0000000..ffc57e1
Binary files /dev/null and b/LFP_Manager/dll/log4net.dll differ
diff --git a/LFP_Manager/fmMain.Designer.cs b/LFP_Manager/fmMain.Designer.cs
new file mode 100644
index 0000000..3be09af
--- /dev/null
+++ b/LFP_Manager/fmMain.Designer.cs
@@ -0,0 +1,971 @@
+namespace LFP_Manager
+{
+ partial class fmMain
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmMain));
+ this.tmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.lcMain = new DevExpress.XtraLayout.LayoutControl();
+ this.gbDataLog = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl6 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnOpenLogFolder = new DevExpress.XtraEditors.SimpleButton();
+ this.btnLogStart = new DevExpress.XtraEditors.SimpleButton();
+ this.cbLogTime = new DevExpress.XtraEditors.ComboBoxEdit();
+ this.layoutControlGroup6 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lcitemLogTime = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.tabSystemStatus = new DevExpress.XtraTab.XtraTabControl();
+ this.pgSystem1 = new DevExpress.XtraTab.XtraTabPage();
+ this.layoutControl4 = new DevExpress.XtraLayout.LayoutControl();
+ this.ucShelfA = new LFP_Manager.Controls.ucShelfStatus();
+ this.layoutControlGroup4 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.pgSystem2 = new DevExpress.XtraTab.XtraTabPage();
+ this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl();
+ this.ucShelfB = new LFP_Manager.Controls.ucShelfStatus();
+ this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.pgSystem3 = new DevExpress.XtraTab.XtraTabPage();
+ this.layoutControl5 = new DevExpress.XtraLayout.LayoutControl();
+ this.ucShelfC = new LFP_Manager.Controls.ucShelfStatus();
+ this.layoutControlGroup5 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.gcLogging = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnLogClear = new DevExpress.XtraEditors.SimpleButton();
+ this.tabDataLog = new DevExpress.XtraTab.XtraTabControl();
+ this.tpDataLog = new DevExpress.XtraTab.XtraTabPage();
+ this.panelControl1 = new DevExpress.XtraEditors.PanelControl();
+ this.meDataLog = new DevExpress.XtraEditors.MemoEdit();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem14 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.gcTargetConfig = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.cbType = new DevExpress.XtraEditors.ComboBoxEdit();
+ this.btnStart = new DevExpress.XtraEditors.SimpleButton();
+ this.teTargetIP = new IPAddressControlLib.IPAddressControl();
+ this.lbTargetIP = new DevExpress.XtraEditors.LabelControl();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcitemType = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcgMain = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.tmrLogging = new System.Windows.Forms.Timer(this.components);
+ this.menuStrip1 = new System.Windows.Forms.MenuStrip();
+ this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
+ this.serialPort1 = new System.IO.Ports.SerialPort(this.components);
+ ((System.ComponentModel.ISupportInitialize)(this.lcMain)).BeginInit();
+ this.lcMain.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.gbDataLog)).BeginInit();
+ this.gbDataLog.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl6)).BeginInit();
+ this.layoutControl6.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.cbLogTime.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemLogTime)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.tabSystemStatus)).BeginInit();
+ this.tabSystemStatus.SuspendLayout();
+ this.pgSystem1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl4)).BeginInit();
+ this.layoutControl4.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ this.pgSystem2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit();
+ this.layoutControl3.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit();
+ this.pgSystem3.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl5)).BeginInit();
+ this.layoutControl5.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gcLogging)).BeginInit();
+ this.gcLogging.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit();
+ this.layoutControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.tabDataLog)).BeginInit();
+ this.tabDataLog.SuspendLayout();
+ this.tpDataLog.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl1)).BeginInit();
+ this.panelControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.meDataLog.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gcTargetConfig)).BeginInit();
+ this.gcTargetConfig.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.cbType.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemType)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcgMain)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).BeginInit();
+ this.menuStrip1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // tmrDisplay
+ //
+ this.tmrDisplay.Interval = 50;
+ this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick);
+ //
+ // lcMain
+ //
+ this.lcMain.Controls.Add(this.gbDataLog);
+ this.lcMain.Controls.Add(this.tabSystemStatus);
+ this.lcMain.Controls.Add(this.gcLogging);
+ this.lcMain.Controls.Add(this.gcTargetConfig);
+ this.lcMain.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.lcMain.Location = new System.Drawing.Point(0, 0);
+ this.lcMain.Name = "lcMain";
+ this.lcMain.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(901, 311, 250, 350);
+ this.lcMain.Root = this.lcgMain;
+ this.lcMain.Size = new System.Drawing.Size(913, 729);
+ this.lcMain.TabIndex = 0;
+ this.lcMain.Text = "layoutControl1";
+ //
+ // gbDataLog
+ //
+ this.gbDataLog.Controls.Add(this.layoutControl6);
+ this.gbDataLog.Location = new System.Drawing.Point(711, 580);
+ this.gbDataLog.Name = "gbDataLog";
+ this.gbDataLog.Size = new System.Drawing.Size(199, 146);
+ this.gbDataLog.TabIndex = 8;
+ this.gbDataLog.Text = "Data Logging";
+ //
+ // layoutControl6
+ //
+ this.layoutControl6.Controls.Add(this.btnOpenLogFolder);
+ this.layoutControl6.Controls.Add(this.btnLogStart);
+ this.layoutControl6.Controls.Add(this.cbLogTime);
+ this.layoutControl6.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl6.Location = new System.Drawing.Point(2, 22);
+ this.layoutControl6.Name = "layoutControl6";
+ this.layoutControl6.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1209, 389, 250, 350);
+ this.layoutControl6.Root = this.layoutControlGroup6;
+ this.layoutControl6.Size = new System.Drawing.Size(195, 122);
+ this.layoutControl6.TabIndex = 0;
+ this.layoutControl6.Text = "layoutControl6";
+ //
+ // btnOpenLogFolder
+ //
+ this.btnOpenLogFolder.Location = new System.Drawing.Point(3, 77);
+ this.btnOpenLogFolder.Name = "btnOpenLogFolder";
+ this.btnOpenLogFolder.Size = new System.Drawing.Size(189, 42);
+ this.btnOpenLogFolder.StyleController = this.layoutControl6;
+ this.btnOpenLogFolder.TabIndex = 6;
+ this.btnOpenLogFolder.Text = "Open Log Folder";
+ this.btnOpenLogFolder.Click += new System.EventHandler(this.btnOpenLogFolder_Click);
+ //
+ // btnLogStart
+ //
+ this.btnLogStart.Location = new System.Drawing.Point(3, 27);
+ this.btnLogStart.Name = "btnLogStart";
+ this.btnLogStart.Size = new System.Drawing.Size(189, 46);
+ this.btnLogStart.StyleController = this.layoutControl6;
+ this.btnLogStart.TabIndex = 5;
+ this.btnLogStart.Text = "Log Start";
+ this.btnLogStart.Click += new System.EventHandler(this.btnLogStart_Click);
+ //
+ // cbLogTime
+ //
+ this.cbLogTime.EditValue = "5";
+ this.cbLogTime.Location = new System.Drawing.Point(68, 3);
+ this.cbLogTime.Name = "cbLogTime";
+ this.cbLogTime.Properties.Appearance.Options.UseTextOptions = true;
+ this.cbLogTime.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cbLogTime.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+ new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+ this.cbLogTime.Properties.Items.AddRange(new object[] {
+ "1",
+ "5",
+ "10",
+ "15",
+ "30",
+ "60"});
+ this.cbLogTime.Size = new System.Drawing.Size(124, 20);
+ this.cbLogTime.StyleController = this.layoutControl6;
+ this.cbLogTime.TabIndex = 4;
+ //
+ // layoutControlGroup6
+ //
+ this.layoutControlGroup6.CustomizationFormText = "layoutControlGroup6";
+ this.layoutControlGroup6.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup6.GroupBordersVisible = false;
+ this.layoutControlGroup6.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lcitemLogTime,
+ this.layoutControlItem13,
+ this.layoutControlItem12});
+ this.layoutControlGroup6.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup6.Name = "layoutControlGroup6";
+ this.layoutControlGroup6.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup6.Size = new System.Drawing.Size(195, 122);
+ this.layoutControlGroup6.Text = "layoutControlGroup6";
+ this.layoutControlGroup6.TextVisible = false;
+ //
+ // lcitemLogTime
+ //
+ this.lcitemLogTime.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lcitemLogTime.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lcitemLogTime.Control = this.cbLogTime;
+ this.lcitemLogTime.CustomizationFormText = "Log Time";
+ this.lcitemLogTime.Location = new System.Drawing.Point(0, 0);
+ this.lcitemLogTime.MinSize = new System.Drawing.Size(119, 24);
+ this.lcitemLogTime.Name = "lcitemLogTime";
+ this.lcitemLogTime.Size = new System.Drawing.Size(193, 24);
+ this.lcitemLogTime.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemLogTime.Text = "Log Time";
+ this.lcitemLogTime.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemLogTime.TextSize = new System.Drawing.Size(60, 20);
+ this.lcitemLogTime.TextToControlDistance = 5;
+ //
+ // layoutControlItem13
+ //
+ this.layoutControlItem13.Control = this.btnLogStart;
+ this.layoutControlItem13.CustomizationFormText = "layoutControlItem13";
+ this.layoutControlItem13.Location = new System.Drawing.Point(0, 24);
+ this.layoutControlItem13.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem13.Name = "layoutControlItem13";
+ this.layoutControlItem13.Size = new System.Drawing.Size(193, 50);
+ this.layoutControlItem13.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem13.Text = "layoutControlItem13";
+ this.layoutControlItem13.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem13.TextToControlDistance = 0;
+ this.layoutControlItem13.TextVisible = false;
+ //
+ // layoutControlItem12
+ //
+ this.layoutControlItem12.Control = this.btnOpenLogFolder;
+ this.layoutControlItem12.CustomizationFormText = "layoutControlItem12";
+ this.layoutControlItem12.Location = new System.Drawing.Point(0, 74);
+ this.layoutControlItem12.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem12.Name = "layoutControlItem12";
+ this.layoutControlItem12.Size = new System.Drawing.Size(193, 46);
+ this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem12.Text = "layoutControlItem12";
+ this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem12.TextToControlDistance = 0;
+ this.layoutControlItem12.TextVisible = false;
+ //
+ // tabSystemStatus
+ //
+ this.tabSystemStatus.Location = new System.Drawing.Point(3, 65);
+ this.tabSystemStatus.Name = "tabSystemStatus";
+ this.tabSystemStatus.SelectedTabPage = this.pgSystem1;
+ this.tabSystemStatus.Size = new System.Drawing.Size(907, 511);
+ this.tabSystemStatus.TabIndex = 7;
+ this.tabSystemStatus.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] {
+ this.pgSystem1,
+ this.pgSystem2,
+ this.pgSystem3});
+ //
+ // pgSystem1
+ //
+ this.pgSystem1.Controls.Add(this.layoutControl4);
+ this.pgSystem1.Name = "pgSystem1";
+ this.pgSystem1.Size = new System.Drawing.Size(901, 482);
+ this.pgSystem1.Text = "SYSTEM #A";
+ //
+ // layoutControl4
+ //
+ this.layoutControl4.Controls.Add(this.ucShelfA);
+ this.layoutControl4.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl4.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl4.Name = "layoutControl4";
+ this.layoutControl4.Root = this.layoutControlGroup4;
+ this.layoutControl4.Size = new System.Drawing.Size(901, 482);
+ this.layoutControl4.TabIndex = 0;
+ this.layoutControl4.Text = "layoutControl4";
+ //
+ // ucShelfA
+ //
+ this.ucShelfA.Location = new System.Drawing.Point(3, 3);
+ this.ucShelfA.Name = "ucShelfA";
+ this.ucShelfA.Size = new System.Drawing.Size(895, 476);
+ this.ucShelfA.TabIndex = 4;
+ //
+ // layoutControlGroup4
+ //
+ this.layoutControlGroup4.CustomizationFormText = "layoutControlGroup4";
+ this.layoutControlGroup4.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup4.GroupBordersVisible = false;
+ this.layoutControlGroup4.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem7});
+ this.layoutControlGroup4.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup4.Name = "layoutControlGroup4";
+ this.layoutControlGroup4.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup4.Size = new System.Drawing.Size(901, 482);
+ this.layoutControlGroup4.Text = "layoutControlGroup4";
+ this.layoutControlGroup4.TextVisible = false;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.ucShelfA;
+ this.layoutControlItem7.CustomizationFormText = "layoutControlItem7";
+ this.layoutControlItem7.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(899, 480);
+ this.layoutControlItem7.Text = "layoutControlItem7";
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextToControlDistance = 0;
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // pgSystem2
+ //
+ this.pgSystem2.Controls.Add(this.layoutControl3);
+ this.pgSystem2.Name = "pgSystem2";
+ this.pgSystem2.Size = new System.Drawing.Size(901, 482);
+ this.pgSystem2.Text = "SYSTEM #B";
+ //
+ // layoutControl3
+ //
+ this.layoutControl3.Controls.Add(this.ucShelfB);
+ this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl3.Name = "layoutControl3";
+ this.layoutControl3.Root = this.layoutControlGroup3;
+ this.layoutControl3.Size = new System.Drawing.Size(901, 482);
+ this.layoutControl3.TabIndex = 0;
+ this.layoutControl3.Text = "layoutControl3";
+ //
+ // ucShelfB
+ //
+ this.ucShelfB.Location = new System.Drawing.Point(3, 3);
+ this.ucShelfB.Name = "ucShelfB";
+ this.ucShelfB.Size = new System.Drawing.Size(895, 476);
+ this.ucShelfB.TabIndex = 4;
+ //
+ // layoutControlGroup3
+ //
+ this.layoutControlGroup3.CustomizationFormText = "layoutControlGroup3";
+ this.layoutControlGroup3.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup3.GroupBordersVisible = false;
+ this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem9});
+ this.layoutControlGroup3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup3.Name = "layoutControlGroup3";
+ this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup3.Size = new System.Drawing.Size(901, 482);
+ this.layoutControlGroup3.Text = "layoutControlGroup3";
+ this.layoutControlGroup3.TextVisible = false;
+ //
+ // layoutControlItem9
+ //
+ this.layoutControlItem9.Control = this.ucShelfB;
+ this.layoutControlItem9.CustomizationFormText = "layoutControlItem9";
+ this.layoutControlItem9.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem9.Name = "layoutControlItem9";
+ this.layoutControlItem9.Size = new System.Drawing.Size(899, 480);
+ this.layoutControlItem9.Text = "layoutControlItem9";
+ this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem9.TextToControlDistance = 0;
+ this.layoutControlItem9.TextVisible = false;
+ //
+ // pgSystem3
+ //
+ this.pgSystem3.Controls.Add(this.layoutControl5);
+ this.pgSystem3.Name = "pgSystem3";
+ this.pgSystem3.Size = new System.Drawing.Size(901, 482);
+ this.pgSystem3.Text = "SYSTEM #C";
+ //
+ // layoutControl5
+ //
+ this.layoutControl5.Controls.Add(this.ucShelfC);
+ this.layoutControl5.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl5.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl5.Name = "layoutControl5";
+ this.layoutControl5.Root = this.layoutControlGroup5;
+ this.layoutControl5.Size = new System.Drawing.Size(901, 482);
+ this.layoutControl5.TabIndex = 0;
+ this.layoutControl5.Text = "layoutControl5";
+ //
+ // ucShelfC
+ //
+ this.ucShelfC.Location = new System.Drawing.Point(3, 3);
+ this.ucShelfC.Name = "ucShelfC";
+ this.ucShelfC.Size = new System.Drawing.Size(895, 476);
+ this.ucShelfC.TabIndex = 4;
+ //
+ // layoutControlGroup5
+ //
+ this.layoutControlGroup5.CustomizationFormText = "layoutControlGroup5";
+ this.layoutControlGroup5.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup5.GroupBordersVisible = false;
+ this.layoutControlGroup5.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem10});
+ this.layoutControlGroup5.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup5.Name = "layoutControlGroup5";
+ this.layoutControlGroup5.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup5.Size = new System.Drawing.Size(901, 482);
+ this.layoutControlGroup5.Text = "layoutControlGroup5";
+ this.layoutControlGroup5.TextVisible = false;
+ //
+ // layoutControlItem10
+ //
+ this.layoutControlItem10.Control = this.ucShelfC;
+ this.layoutControlItem10.CustomizationFormText = "layoutControlItem10";
+ this.layoutControlItem10.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem10.Name = "layoutControlItem10";
+ this.layoutControlItem10.Size = new System.Drawing.Size(899, 480);
+ this.layoutControlItem10.Text = "layoutControlItem10";
+ this.layoutControlItem10.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem10.TextToControlDistance = 0;
+ this.layoutControlItem10.TextVisible = false;
+ //
+ // gcLogging
+ //
+ this.gcLogging.Controls.Add(this.layoutControl2);
+ this.gcLogging.Location = new System.Drawing.Point(3, 580);
+ this.gcLogging.Name = "gcLogging";
+ this.gcLogging.Size = new System.Drawing.Size(704, 146);
+ this.gcLogging.TabIndex = 5;
+ this.gcLogging.Text = "Event";
+ //
+ // layoutControl2
+ //
+ this.layoutControl2.Controls.Add(this.btnLogClear);
+ this.layoutControl2.Controls.Add(this.tabDataLog);
+ this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl2.Location = new System.Drawing.Point(2, 22);
+ this.layoutControl2.Name = "layoutControl2";
+ this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1234, 235, 250, 350);
+ this.layoutControl2.Root = this.layoutControlGroup2;
+ this.layoutControl2.Size = new System.Drawing.Size(700, 122);
+ this.layoutControl2.TabIndex = 0;
+ this.layoutControl2.Text = "layoutControl2";
+ //
+ // btnLogClear
+ //
+ this.btnLogClear.Location = new System.Drawing.Point(640, 4);
+ this.btnLogClear.Name = "btnLogClear";
+ this.btnLogClear.Size = new System.Drawing.Size(56, 114);
+ this.btnLogClear.StyleController = this.layoutControl2;
+ this.btnLogClear.TabIndex = 5;
+ this.btnLogClear.Text = "Clear";
+ this.btnLogClear.Click += new System.EventHandler(this.btnLogClear_Click);
+ //
+ // tabDataLog
+ //
+ this.tabDataLog.Location = new System.Drawing.Point(4, 4);
+ this.tabDataLog.Name = "tabDataLog";
+ this.tabDataLog.SelectedTabPage = this.tpDataLog;
+ this.tabDataLog.Size = new System.Drawing.Size(632, 114);
+ this.tabDataLog.TabIndex = 4;
+ this.tabDataLog.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] {
+ this.tpDataLog});
+ //
+ // tpDataLog
+ //
+ this.tpDataLog.Controls.Add(this.panelControl1);
+ this.tpDataLog.Name = "tpDataLog";
+ this.tpDataLog.Size = new System.Drawing.Size(626, 85);
+ this.tpDataLog.Text = "Data Log";
+ //
+ // panelControl1
+ //
+ this.panelControl1.Controls.Add(this.meDataLog);
+ this.panelControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.panelControl1.Location = new System.Drawing.Point(0, 0);
+ this.panelControl1.Name = "panelControl1";
+ this.panelControl1.Size = new System.Drawing.Size(626, 85);
+ this.panelControl1.TabIndex = 0;
+ //
+ // meDataLog
+ //
+ this.meDataLog.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.meDataLog.Location = new System.Drawing.Point(2, 2);
+ this.meDataLog.Name = "meDataLog";
+ this.meDataLog.Size = new System.Drawing.Size(622, 81);
+ this.meDataLog.TabIndex = 0;
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2";
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem6,
+ this.layoutControlItem14});
+ this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup2.Name = "layoutControlGroup2";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(700, 122);
+ this.layoutControlGroup2.Text = "layoutControlGroup2";
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.tabDataLog;
+ this.layoutControlItem6.CustomizationFormText = "layoutControlItem6";
+ this.layoutControlItem6.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(104, 24);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(636, 118);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.Text = "layoutControlItem6";
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextToControlDistance = 0;
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // layoutControlItem14
+ //
+ this.layoutControlItem14.Control = this.btnLogClear;
+ this.layoutControlItem14.CustomizationFormText = "layoutControlItem14";
+ this.layoutControlItem14.Location = new System.Drawing.Point(636, 0);
+ this.layoutControlItem14.MinSize = new System.Drawing.Size(60, 26);
+ this.layoutControlItem14.Name = "layoutControlItem14";
+ this.layoutControlItem14.Size = new System.Drawing.Size(60, 118);
+ this.layoutControlItem14.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem14.Text = "layoutControlItem14";
+ this.layoutControlItem14.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem14.TextToControlDistance = 0;
+ this.layoutControlItem14.TextVisible = false;
+ //
+ // gcTargetConfig
+ //
+ this.gcTargetConfig.Controls.Add(this.layoutControl1);
+ this.gcTargetConfig.Location = new System.Drawing.Point(3, 3);
+ this.gcTargetConfig.Name = "gcTargetConfig";
+ this.gcTargetConfig.Size = new System.Drawing.Size(907, 58);
+ this.gcTargetConfig.TabIndex = 4;
+ this.gcTargetConfig.Text = "Target Config";
+ this.gcTargetConfig.Paint += new System.Windows.Forms.PaintEventHandler(this.gcTargetConfig_Paint);
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.cbType);
+ this.layoutControl1.Controls.Add(this.btnStart);
+ this.layoutControl1.Controls.Add(this.teTargetIP);
+ this.layoutControl1.Controls.Add(this.lbTargetIP);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(2, 22);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(318, 219, 250, 350);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(903, 34);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // cbType
+ //
+ this.cbType.Location = new System.Drawing.Point(399, 4);
+ this.cbType.Name = "cbType";
+ this.cbType.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cbType.Properties.Appearance.Options.UseFont = true;
+ this.cbType.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+ new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+ this.cbType.Properties.Items.AddRange(new object[] {
+ "LFPS-48100",
+ "LFPR-48300",
+ "LFPR-48600",
+ "LFPR-48900",
+ "LFPS-48150"});
+ this.cbType.Size = new System.Drawing.Size(178, 26);
+ this.cbType.StyleController = this.layoutControl1;
+ this.cbType.TabIndex = 7;
+ this.cbType.SelectedIndexChanged += new System.EventHandler(this.cbType_SelectedIndexChanged);
+ //
+ // btnStart
+ //
+ this.btnStart.Location = new System.Drawing.Point(725, 4);
+ this.btnStart.Name = "btnStart";
+ this.btnStart.Size = new System.Drawing.Size(174, 26);
+ this.btnStart.StyleController = this.layoutControl1;
+ this.btnStart.TabIndex = 6;
+ this.btnStart.Text = "START";
+ this.btnStart.Click += new System.EventHandler(this.btnStart_ClickA);
+ //
+ // teTargetIP
+ //
+ this.teTargetIP.AllowInternalTab = false;
+ this.teTargetIP.AutoHeight = true;
+ this.teTargetIP.BackColor = System.Drawing.SystemColors.Window;
+ this.teTargetIP.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.teTargetIP.Cursor = System.Windows.Forms.Cursors.IBeam;
+ this.teTargetIP.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.teTargetIP.Location = new System.Drawing.Point(101, 4);
+ this.teTargetIP.MinimumSize = new System.Drawing.Size(117, 26);
+ this.teTargetIP.Name = "teTargetIP";
+ this.teTargetIP.ReadOnly = false;
+ this.teTargetIP.Size = new System.Drawing.Size(239, 26);
+ this.teTargetIP.TabIndex = 5;
+ this.teTargetIP.Text = "192.168.0.200";
+ //
+ // lbTargetIP
+ //
+ this.lbTargetIP.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbTargetIP.Location = new System.Drawing.Point(4, 4);
+ this.lbTargetIP.Name = "lbTargetIP";
+ this.lbTargetIP.Size = new System.Drawing.Size(93, 26);
+ this.lbTargetIP.StyleController = this.layoutControl1;
+ this.lbTargetIP.TabIndex = 4;
+ this.lbTargetIP.Text = "IP Address";
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.emptySpaceItem2,
+ this.layoutControlItem2,
+ this.layoutControlItem3,
+ this.layoutControlItem4,
+ this.lcitemType});
+ this.layoutControlGroup1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(903, 34);
+ this.layoutControlGroup1.Text = "layoutControlGroup1";
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // emptySpaceItem2
+ //
+ this.emptySpaceItem2.AllowHotTrack = false;
+ this.emptySpaceItem2.CustomizationFormText = "emptySpaceItem2";
+ this.emptySpaceItem2.Location = new System.Drawing.Point(577, 0);
+ this.emptySpaceItem2.Name = "emptySpaceItem2";
+ this.emptySpaceItem2.Size = new System.Drawing.Size(144, 30);
+ this.emptySpaceItem2.Text = "emptySpaceItem2";
+ this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.lbTargetIP;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(97, 30);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.Text = "layoutControlItem2";
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextToControlDistance = 0;
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.teTargetIP;
+ this.layoutControlItem3.CustomizationFormText = "layoutControlItem3";
+ this.layoutControlItem3.Location = new System.Drawing.Point(97, 0);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(121, 30);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(243, 30);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.Text = "layoutControlItem3";
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextToControlDistance = 0;
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.btnStart;
+ this.layoutControlItem4.CustomizationFormText = "layoutControlItem4";
+ this.layoutControlItem4.Location = new System.Drawing.Point(721, 0);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(178, 30);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.Text = "layoutControlItem4";
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextToControlDistance = 0;
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // lcitemType
+ //
+ this.lcitemType.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lcitemType.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lcitemType.Control = this.cbType;
+ this.lcitemType.CustomizationFormText = "Type";
+ this.lcitemType.Location = new System.Drawing.Point(340, 0);
+ this.lcitemType.MinSize = new System.Drawing.Size(109, 28);
+ this.lcitemType.Name = "lcitemType";
+ this.lcitemType.Size = new System.Drawing.Size(237, 30);
+ this.lcitemType.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemType.Text = "Type";
+ this.lcitemType.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemType.TextSize = new System.Drawing.Size(50, 20);
+ this.lcitemType.TextToControlDistance = 5;
+ //
+ // lcgMain
+ //
+ this.lcgMain.CustomizationFormText = "lcgMain";
+ this.lcgMain.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.lcgMain.GroupBordersVisible = false;
+ this.lcgMain.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1,
+ this.layoutControlItem5,
+ this.layoutControlItem8,
+ this.layoutControlItem11});
+ this.lcgMain.Location = new System.Drawing.Point(0, 0);
+ this.lcgMain.Name = "Root";
+ this.lcgMain.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.lcgMain.Size = new System.Drawing.Size(913, 729);
+ this.lcgMain.Text = "Root";
+ this.lcgMain.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.gcTargetConfig;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.MaxSize = new System.Drawing.Size(0, 62);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(104, 62);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(911, 62);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.Text = "layoutControlItem1";
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextToControlDistance = 0;
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.gcLogging;
+ this.layoutControlItem5.CustomizationFormText = "layoutControlItem5";
+ this.layoutControlItem5.Location = new System.Drawing.Point(0, 577);
+ this.layoutControlItem5.MaxSize = new System.Drawing.Size(0, 150);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(104, 150);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(708, 150);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.Text = "layoutControlItem5";
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextToControlDistance = 0;
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.tabSystemStatus;
+ this.layoutControlItem8.CustomizationFormText = "layoutControlItem8";
+ this.layoutControlItem8.Location = new System.Drawing.Point(0, 62);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(911, 515);
+ this.layoutControlItem8.Text = "layoutControlItem8";
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem8.TextToControlDistance = 0;
+ this.layoutControlItem8.TextVisible = false;
+ //
+ // layoutControlItem11
+ //
+ this.layoutControlItem11.Control = this.gbDataLog;
+ this.layoutControlItem11.CustomizationFormText = "layoutControlItem11";
+ this.layoutControlItem11.Location = new System.Drawing.Point(708, 577);
+ this.layoutControlItem11.MaxSize = new System.Drawing.Size(203, 150);
+ this.layoutControlItem11.MinSize = new System.Drawing.Size(203, 150);
+ this.layoutControlItem11.Name = "layoutControlItem11";
+ this.layoutControlItem11.Size = new System.Drawing.Size(203, 150);
+ this.layoutControlItem11.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem11.Text = "layoutControlItem11";
+ this.layoutControlItem11.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem11.TextToControlDistance = 0;
+ this.layoutControlItem11.TextVisible = false;
+ //
+ // tmrLogging
+ //
+ this.tmrLogging.Interval = 500;
+ this.tmrLogging.Tick += new System.EventHandler(this.tmrLogging_Tick);
+ //
+ // menuStrip1
+ //
+ this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.toolStripMenuItem1});
+ this.menuStrip1.Location = new System.Drawing.Point(1, 24);
+ this.menuStrip1.Name = "menuStrip1";
+ this.menuStrip1.Size = new System.Drawing.Size(686, 24);
+ this.menuStrip1.TabIndex = 2;
+ this.menuStrip1.Text = "menuStrip1";
+ //
+ // toolStripMenuItem1
+ //
+ this.toolStripMenuItem1.Name = "toolStripMenuItem1";
+ this.toolStripMenuItem1.Size = new System.Drawing.Size(127, 20);
+ this.toolStripMenuItem1.Text = "toolStripMenuItem1";
+ //
+ // serialPort1
+ //
+ this.serialPort1.ErrorReceived += new System.IO.Ports.SerialErrorReceivedEventHandler(this.serialPort1_ErrorReceived);
+ this.serialPort1.PinChanged += new System.IO.Ports.SerialPinChangedEventHandler(this.serialPort1_PinChanged);
+ this.serialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.serialPort1_DataReceived);
+ //
+ // fmMain
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(913, 729);
+ this.Controls.Add(this.lcMain);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "fmMain";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "AMO LFP Monitor";
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.fmMain_FormClosing);
+ ((System.ComponentModel.ISupportInitialize)(this.lcMain)).EndInit();
+ this.lcMain.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.gbDataLog)).EndInit();
+ this.gbDataLog.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl6)).EndInit();
+ this.layoutControl6.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.cbLogTime.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemLogTime)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.tabSystemStatus)).EndInit();
+ this.tabSystemStatus.ResumeLayout(false);
+ this.pgSystem1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl4)).EndInit();
+ this.layoutControl4.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ this.pgSystem2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit();
+ this.layoutControl3.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit();
+ this.pgSystem3.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl5)).EndInit();
+ this.layoutControl5.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gcLogging)).EndInit();
+ this.gcLogging.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit();
+ this.layoutControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.tabDataLog)).EndInit();
+ this.tabDataLog.ResumeLayout(false);
+ this.tpDataLog.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl1)).EndInit();
+ this.panelControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.meDataLog.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gcTargetConfig)).EndInit();
+ this.gcTargetConfig.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.cbType.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemType)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcgMain)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).EndInit();
+ this.menuStrip1.ResumeLayout(false);
+ this.menuStrip1.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Timer tmrDisplay;
+ private DevExpress.XtraLayout.LayoutControl lcMain;
+ private DevExpress.XtraLayout.LayoutControlGroup lcgMain;
+ private DevExpress.XtraEditors.GroupControl gcTargetConfig;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+ private DevExpress.XtraEditors.LabelControl lbTargetIP;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private IPAddressControlLib.IPAddressControl teTargetIP;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraEditors.SimpleButton btnStart;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraEditors.GroupControl gcLogging;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.LayoutControl layoutControl2;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraTab.XtraTabControl tabDataLog;
+ private DevExpress.XtraTab.XtraTabPage tpDataLog;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraEditors.PanelControl panelControl1;
+ private DevExpress.XtraEditors.MemoEdit meDataLog;
+ private DevExpress.XtraTab.XtraTabControl tabSystemStatus;
+ private DevExpress.XtraTab.XtraTabPage pgSystem1;
+ private DevExpress.XtraTab.XtraTabPage pgSystem2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ private DevExpress.XtraLayout.LayoutControl layoutControl4;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup4;
+ private Controls.ucShelfStatus ucShelfA;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private DevExpress.XtraEditors.ComboBoxEdit cbType;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemType;
+ private DevExpress.XtraLayout.LayoutControl layoutControl3;
+ private Controls.ucShelfStatus ucShelfB;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
+ private DevExpress.XtraTab.XtraTabPage pgSystem3;
+ private DevExpress.XtraLayout.LayoutControl layoutControl5;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup5;
+ private Controls.ucShelfStatus ucShelfC;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
+ private DevExpress.XtraEditors.GroupControl gbDataLog;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11;
+ private DevExpress.XtraLayout.LayoutControl layoutControl6;
+ private DevExpress.XtraEditors.SimpleButton btnLogStart;
+ private DevExpress.XtraEditors.ComboBoxEdit cbLogTime;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup6;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemLogTime;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13;
+ private DevExpress.XtraEditors.SimpleButton btnOpenLogFolder;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12;
+ private System.Windows.Forms.Timer tmrLogging;
+ private System.Windows.Forms.MenuStrip menuStrip1;
+ private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;
+ private DevExpress.XtraEditors.SimpleButton btnLogClear;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem14;
+ private System.IO.Ports.SerialPort serialPort1;
+ }
+}
+
diff --git a/LFP_Manager/fmMain.cs b/LFP_Manager/fmMain.cs
new file mode 100644
index 0000000..6a63421
--- /dev/null
+++ b/LFP_Manager/fmMain.cs
@@ -0,0 +1,278 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using System.Net;
+using SnmpSharpNet;
+
+using System.Threading;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Threads;
+using LFP_Manager.Utils;
+
+using System.Diagnostics;
+
+namespace LFP_Manager
+{
+ public partial class fmMain : Form
+ {
+ DeviceSystemData[] SystemData;
+ csSnmpThread snmpThread;
+
+ public fmMain()
+ {
+ InitializeComponent();
+
+ StructDataInit();
+
+ cbType.SelectedIndex = 0;
+
+ ucShelfA.Start(0, SystemData[0]);
+ ucShelfB.Start(1, SystemData[1]);
+ ucShelfC.Start(2, SystemData[2]);
+
+ tabSystemStatus.TabPages[1].PageVisible = false;
+ tabSystemStatus.TabPages[2].PageVisible = false;
+
+ pgSystem1.Text = "SYSTEM";
+
+ tmrDisplay.Start();
+ }
+
+ private void StructDataInit()
+ {
+ SystemData = new DeviceSystemData[csConstData.SystemInfo.MAX_SYSTEM_SIZE];
+
+ for (int i = 0; i < csConstData.SystemInfo.MAX_SYSTEM_SIZE; i++)
+ {
+ SystemData[i] = new DeviceSystemData();
+ SystemData[i].ValueData = new DeviceValueData();
+ SystemData[i].ValueData.CellVoltage = new short[csConstData.SystemInfo.MAX_MODULE_CELL_SIZE];
+ SystemData[i].ValueData.CellTemperature = new short[csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE];
+
+ SystemData[i].AvgData = new DeviceAvgData();
+ SystemData[i].StatusData = new DeviceStatusData();
+
+ SystemData[i].CalibriationData = new DeviceCalibration();
+ SystemData[i].CalibriationData.CellVoltge = new CellVoltageCalib();
+ SystemData[i].CalibriationData.SystemVoltage = new SystemVoltageCalib();
+ SystemData[i].CalibriationData.ForcedBalancing = new ForcedBalControl();
+ SystemData[i].CalibriationData.Battery = new BatteryParameter();
+ }
+ }
+
+ private void UpdateData(object sender, DeviceSystemData[] rData)
+ {
+ SystemData = rData;
+ ucShelfA.UpdateData(SystemData[0]);
+ ucShelfB.UpdateData(SystemData[1]);
+ ucShelfC.UpdateData(SystemData[2]);
+ }
+
+ #region EVENT FUNCTION
+
+ private void tmrDisplay_Tick(object sender, EventArgs e)
+ {
+ if (snmpThread != null)
+ {
+ string data = snmpThread.GetResult();
+
+ if (data != "")
+ {
+ meDataLog.Text = data + "\r\n" + meDataLog.Text;
+ }
+ }
+ }
+
+ private void fmMain_FormClosing(object sender, FormClosingEventArgs e)
+ {
+ tmrDisplay.Stop();
+ if (snmpThread != null)
+ snmpThread.disposeThread();
+ }
+
+ private void btnStart_Click(object sender, EventArgs e)
+ {
+ if (snmpThread.GetStatus())
+ {
+ snmpThread.Start(teTargetIP.Text);
+ teTargetIP.Enabled = false;
+ btnStart.Text = "Stop";
+ }
+ else
+ {
+ snmpThread.Stop();
+ teTargetIP.Enabled = true;
+ btnStart.Text = "Start";
+ }
+ }
+
+ private void btnStart_ClickA(object sender, EventArgs e)
+ {
+ //if (snmpThread == null)
+ //{
+ // snmpThread = new csSnmpThread(Config, SystemData);
+ // snmpThread.OnUpdate += UpdateData;
+
+ // snmpThread.Start(teTargetIP.Text);
+
+ // teTargetIP.Enabled = false;
+ // cbType.Enabled = false;
+ // btnStart.Text = "Stop";
+ //}
+ //else
+ //{
+ // snmpThread.Stop();
+ // snmpThread.disposeThread();
+ // snmpThread = null;
+
+ // teTargetIP.Enabled = true;
+ // cbType.Enabled = true;
+ // btnStart.Text = "Start";
+ //}
+ }
+
+ #endregion
+
+ #region SUB EVENT
+
+ private void cbType_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ switch (cbType.SelectedIndex)
+ {
+ case 0: // KT LFPS-48100
+ case 1: // KT LFPR-48300
+ case 4: // ESS LFPS-48150
+ tabSystemStatus.TabPages[0].PageVisible = true;
+ tabSystemStatus.TabPages[1].PageVisible = false;
+ tabSystemStatus.TabPages[2].PageVisible = false;
+
+ pgSystem1.Text = "SYSTEM";
+ break;
+ case 2: // KT LFPR-48600
+ tabSystemStatus.TabPages[0].PageVisible = true;
+ tabSystemStatus.TabPages[1].PageVisible = true;
+ tabSystemStatus.TabPages[2].PageVisible = false;
+
+ pgSystem1.Text = "SYSTEM #A";
+ pgSystem2.Text = "SYSTEM #B";
+ break;
+ case 3: // KT LFPR-48900
+ tabSystemStatus.TabPages[0].PageVisible = true;
+ tabSystemStatus.TabPages[1].PageVisible = true;
+ tabSystemStatus.TabPages[2].PageVisible = true;
+
+ pgSystem1.Text = "SYSTEM #A";
+ pgSystem2.Text = "SYSTEM #B";
+ pgSystem3.Text = "SYSTEM #C";
+ break;
+ }
+ }
+
+ #endregion
+
+ private void btnOpenLogFolder_Click(object sender, EventArgs e)
+ {
+ System.Diagnostics.Process ps = new System.Diagnostics.Process();
+ ps.StartInfo.FileName = "explorer.exe";
+ ps.StartInfo.Arguments = csLog.GetLogFolder(Application.ExecutablePath);
+ ps.StartInfo.WorkingDirectory = csLog.GetLogFolder(Application.ExecutablePath);
+ ps.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
+
+ ps.Start();
+ }
+
+ #region LOG TIMER TICK EVENT
+
+ DateTime bakDateTime;
+
+ private void tmrLogging_Tick(object sender, EventArgs e)
+ {
+ DateTime cDate = DateTime.Now;
+ int ss;
+
+ if (cbType.Enabled == false)
+ {
+ if (SystemData[0].CommFail == false)
+ {
+ ss = Convert.ToInt16(cbLogTime.Text);
+
+ if (
+ ((bakDateTime.Minute != cDate.Minute)
+ || (bakDateTime.Second != cDate.Second))
+ && ((cDate.Second % ss) == 0)
+ )
+ {
+ for (int i = 0; i < csConstData.SystemInfo.MAX_SYSTEM_SIZE; i++)
+ {
+ try
+ {
+ //csLog.SystemDataLog(i + 1, Config, SystemData[i], cDate, Application.ExecutablePath);
+ bakDateTime = cDate;
+ }
+ catch (Exception ex)
+ {
+ string snmpResult = "[" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "] " + String.Format("Exception : {0}", ex.Message);
+
+ meDataLog.Text = snmpResult + "\r\n" + meDataLog.Text;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ bool logging = false;
+
+ private void btnLogStart_Click(object sender, EventArgs e)
+ {
+ if (logging == true)
+ {
+ tmrLogging.Stop();
+ cbLogTime.Enabled = true;
+ logging = false;
+ btnLogStart.Text = "Log Start";
+ }
+ else
+ {
+ tmrLogging.Start();
+ cbLogTime.Enabled = false;
+ logging = true;
+ btnLogStart.Text = "Log Stop";
+ }
+ }
+
+ private void btnLogClear_Click(object sender, EventArgs e)
+ {
+ meDataLog.Text = "";
+ }
+
+ private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
+ {
+
+ }
+
+ private void serialPort1_ErrorReceived(object sender, System.IO.Ports.SerialErrorReceivedEventArgs e)
+ {
+
+ }
+
+ private void serialPort1_PinChanged(object sender, System.IO.Ports.SerialPinChangedEventArgs e)
+ {
+
+ }
+
+ private void gcTargetConfig_Paint(object sender, PaintEventArgs e)
+ {
+
+ }
+
+ }
+}
diff --git a/LFP_Manager/fmMain.resx b/LFP_Manager/fmMain.resx
new file mode 100644
index 0000000..d9621e2
--- /dev/null
+++ b/LFP_Manager/fmMain.resx
@@ -0,0 +1,4586 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+ 128, 17
+
+
+ 260, 16
+
+
+ 376, 16
+
+
+ 59
+
+
+
+
+ AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA
+ GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/
+ ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7/////////////////////
+ ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff/////////
+ ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+
+ /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7/////
+ ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc
+ x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7/////////////////////////////
+ ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt
+ e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP
+ SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7/////////
+ ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z
+ WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS
+ Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8
+ +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+
+ /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+
+ /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO
+ SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz
+ 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o
+ 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9
+ /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE
+ oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG
+ PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7/////
+ ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH
+ PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t
+ 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/
+ ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/
+ ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7/////////////////////////////
+ ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+
+ /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ
+ TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7/////////////////
+ ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ
+ TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+
+ /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7/////
+ ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP
+ SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7/////////////////////////////////////////
+ ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/
+ ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7/////////////////////////////
+ ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/
+ ///+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////+/v7////////+/v3////////////////////////+/v3////////+/v7/////////////////
+ ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7/////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ /////////v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v7////////+/v7/////////////////////////////////////
+ ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7/////////////////////
+ ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7
+ +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9
+ /Pz+/v7/////////////////////////////////////////////////////////////////////////
+ ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM
+ RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7/////////////////////////////////////
+ ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL
+ QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+
+ /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP
+ SgCOSQCPTAKFOwDVvaT////9/Pv+/v7/////////////////////////////////////////////////
+ ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8
+ +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7/////////
+ /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO
+ SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF
+ OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+
+ ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/
+ //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7/////////////////////////
+ ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/
+ mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79
+ /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN
+ RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ
+ TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7/////
+ ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7/////
+ ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+
+ /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ
+ TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP
+ SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH
+ PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/
+ ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5
+ 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+
+ /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ
+ QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE
+ oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/
+ ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7/////////////////////////
+ ///////////////////////////////////////////////////////+/v7+////////////////////
+ ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+
+ /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9
+ /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP
+ SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL
+ RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7/////////////////////////////////
+ ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/
+ ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7/////////
+ ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP
+ SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI
+ PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/
+ ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x
+ glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7/////////////////////////////
+ ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM
+ RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+
+ /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/
+ ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP
+ SgCOSgGLRQGTURDz7ef+/v39/f3+/v7/////////////////////////////////////////////////
+ ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+
+ /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7/////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN
+ RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9
+ /fz9/f3+/v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO
+ SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7/////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO
+ SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS
+ UA/y6+X+/v39/fz+/v7+/v7/////////////////////////////////////////////////////////
+ ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP
+ SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7/////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+
+ /v7/////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO
+ SQCOSQGJQQDi0cD////9/Pv+/v7/////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J
+ QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7/////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39
+ /fz+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz
+ hFazhFayhFazhVete1TWvqb////9/fz+/v7/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+
+ /f3+/f3/////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v7+////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////v7+
+ /f39////////////////////////////////////////////////////////////////////////////
+ ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39
+ /fz8/v79/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA
+ nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1////
+ x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV
+ i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC
+ jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC
+ hz8Ap3I//fz7/fz8/v79/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7
+ /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8
+ +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p
+ /v39/f38/v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+
+ ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb
+ 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+//7+/f39
+ /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7////
+ 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+
+ /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA
+ j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB
+ j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB
+ i0UAlVYZ8+3m/f79/f38/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+////////////////
+ /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39
+ /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+
+ sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+
+ /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+////////
+ /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+
+ /f39/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO
+ /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39
+ 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39
+ /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+////////////////////////////
+ /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+////
+ /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A
+ kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ jkoCikIC4tHA/////Pv7/v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC
+ hz4A1r6m/////Pz7/v7+/v7+/////v7+////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+
+ /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+////////////////////
+ /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM
+ /////Pv6/v7+/v7+/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA
+ j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+
+ /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7
+ /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq////
+ /Pv6/v7+/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A
+ j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA
+ kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA
+ j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6
+ /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+////////
+ /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+
+ /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA
+ xaJ//////Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU
+ /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA
+ j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+////////////
+ 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+
+ /////v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39
+ /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/
+ /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6
+ ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+
+ /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC
+ kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB
+ kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39////
+ /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA
+ hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA
+ iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A
+ j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU
+ z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+////////
+ /v7+/////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7//v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn
+ +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3
+ +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8
+ /fz8/v7+/////v7+/////v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v///v7+/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT
+ z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7
+ ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A
+ hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A
+ fS0AtIdb/f38/Pz8///+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D
+ kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL
+ jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA
+ jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3
+ iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA
+ jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA
+ jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK
+ 6t7S/v7+/fz8/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs////
+ /Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7
+ /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38
+ /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fz8
+ /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+////////////////////////////////////
+ /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+
+ /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA
+ jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A
+ pnA8/Pv6/fz7/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq
+ iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+
+ /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+////////////
+ /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+
+ //7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A
+ 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES
+ jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+////////////////
+ /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6
+ /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7
+ /v79/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v39
+ /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8
+ +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+
+ /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ
+ hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ
+ 8+3m/f39/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+
+ /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA
+ jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA
+ u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA
+ j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA
+ jkkCikQE49PC/v7//fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8
+ /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+
+ /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7////
+ t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA
+ jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU
+ hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD
+ /////fz8//7//v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA
+ oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC
+ hj0Az7SX/////fz7//7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+//7+
+ /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH
+ jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA
+ jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT////
+ /Pz8/v7//v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA
+ t4tf/////fz7/v7+/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs
+ mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6
+ /v7+/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v7+
+ /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx
+ +/n3/fz8/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+
+ rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA
+ jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW
+ k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV
+ kU8TmVoj8ejg/v39/fz7/v7//f39/v//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off
+ 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v////7+/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v39/v7+
+ ///+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/v//////
+ /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v79/////////v7+/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v79/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////9/Lt9/Pu
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2svnmMrzrGR/////fz7////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ
+ /v39/fz8/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h
+ /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0////
+ 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC
+ j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ jUgBlFIO7uTa/////f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB
+ jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+
+ /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38////////////////////
+ /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z
+ iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+
+ sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG////
+ /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ hz4Ar35J/v39/fz8/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+////////
+ /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38////////////////////////////////
+ /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+////////////////////////////////////////////
+ /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA
+ /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW
+ k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+
+ /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+////////////////////
+ /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iEAA176j/////fz7////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39////////////////////////////////////////////
+ ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38
+ /fz8/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEA1buf/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+////////////
+ /////////////////////////////////////////////////////////////////////fz7////yKaB
+ hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v///f38////sH9K
+ hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oBi0QAnmIj9vHs/v39/v39////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA
+ nWAf9vHs/v7+/v79////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo////
+ /fz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v///f38////
+ 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/v79+/n3omor
+ ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm
+ +PTw/v39/f39////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sBjEUAmVwb9e/p/v7+/f38////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A
+ vpVq/////fz7/v/+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8AyKaB/////fz7/v///v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39
+ //7/////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC
+ jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsCiD8Auo9h/////fz8/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE
+ iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB
+ 4tC+/////f38/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjUcBk1EN7+Xb/////f39/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj
+ n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f38////u5Jlhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkBjUgE4M66/////fz7/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR
+ 7+bd/v7+/f39////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv
+ +/n4/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0
+ rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6
+ ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC
+ hz4AtolZ/////fz8/v3+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA
+ j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ j0sBikIApGww+vj1/v39/f39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ
+ j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M
+ /////Pz7/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkCjkkG4c+7/////fz7/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+///+/v39
+ /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d////
+ /fz7/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/f38/f38
+ 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A
+ jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sBiD8AyKiE/////fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oBiUEApW4z+vj1/v39/v39////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ
+ /v7+/f38/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4
+ 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD
+ 49PB/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/Pz7////
+ 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6////
+ /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A
+ j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC
+ iUEAqHQ7+/j2/fz8/v39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jUgBkk8K7ODV/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL////
+ /f38/v7+///+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6////////
+ ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A
+ ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38
+ /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBiUEA1Lqd/////fv6////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38
+ sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////v7+/v39
+ /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq
+ 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38
+ /v39/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjUgBkU4J6NrM/////fz8////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA
+ jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEArnxG/v7+/f38/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO
+ 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i////
+ /Pz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA
+ hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr
+ vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g
+ 4M24/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY
+ llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+////////////////////////////
+ /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsCiUEArXpD/v7//f39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB
+ ikMA1bqf/////fz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39
+ /f38/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39
+ /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/////////v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI
+ iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8////
+ /fz8////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA
+ mVsZ8+zl/v38/fz8////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7
+ /v7+//7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz7/v7+
+ 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf
+ 9vHs/v79/fz8////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z
+ iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAi0YAl1gT8+3l/v7+/f39////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA
+ upFj/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC
+ hz4AwZty/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////f39
+ /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC
+ jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ
+ hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsChz4At4ta/////fz8/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjUgCkEwL6dzO/////fz7////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD
+ 38y3/////fz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v/+/f39/v79
+ +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////fz8
+ /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A
+ kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK
+ 5tbG/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBjUcB4M25/////f38/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos
+ +PTw/fz8/f39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v//////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA
+ kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB
+ iUAAq3dA/Pr4/fz7/f39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v///fz7
+ ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA
+ j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0oBikMAomgq+vf0/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////Pz7////4M24
+ i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiUEA0rea/////fz7/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7
+ /v38/v39/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////f38/v79
+ +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/f38
+ ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ kEwChz4AxaJ8/////fz7/v7+////////////////////////////////////////////////////////
+ ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA
+ 07mb/////Pz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU
+ /v7+/Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+////
+ //////////////////////////////////////////////////////////////////////////////7/
+ /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7/////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+////////////////////////////
+ /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jEQAm10b9O/p/v7+/f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+////////////////////////////////////////
+ /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7
+ /v7//v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jUgAklAK6dzO/////f38/v//////////////////////////////////////////////////////////
+ /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6
+ /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng
+ lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+
+ /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiD8Au5Jl/////fz8/v7+//7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+////////////////////
+ /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj
+ /v39/fz8/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+////////////////////////////
+ /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8
+ ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb////
+ /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A
+ upFj/////fz8/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+
+ /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7////////////////////////
+ /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf
+ llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA
+ kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkBjUcA49LA/////f38/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79
+ /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3
+ qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8////0baX
+ iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD
+ /////fz8/v//////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA
+ nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA
+ qHI4/Pv5/v39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+
+ iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ kEsChz8Az7KS/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7
+ /v39/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v39
+ /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////fz8////59jIj0oD
+ jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ
+ /////fz8////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB
+ llYW7+Xb/v7+/f38/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0wChz8AuIxc/v7+/fz7/v39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+
+ /v39/v//////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fv6
+ ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAjkkBjEYA4M24/////fz8/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa
+ /////f38////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v39/fz7
+ 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB
+ jUcE3sq2/////Pz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oBikMAomgq+fXy/v39/f39////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/fz7////
+ 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq
+ +vf1/f38/f39//7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39
+ tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS
+ yqqM38u2/////v79/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/v79////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v79/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/packages.config b/LFP_Manager/packages.config
new file mode 100644
index 0000000..510b29a
--- /dev/null
+++ b/LFP_Manager/packages.config
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file