diff --git a/PKHeX/MainWindow/Main.Designer.cs b/PKHeX/MainWindow/Main.Designer.cs index 4ff571da9..70d5323df 100644 --- a/PKHeX/MainWindow/Main.Designer.cs +++ b/PKHeX/MainWindow/Main.Designer.cs @@ -442,6 +442,7 @@ public void InitializeComponent() this.mnuLSave = new System.Windows.Forms.ToolStripMenuItem(); this.PB_Legal = new System.Windows.Forms.PictureBox(); this.L_UpdateAvailable = new System.Windows.Forms.LinkLabel(); + this.B_OpenZygardeCells = new System.Windows.Forms.Button(); this.tabMain.SuspendLayout(); this.Tab_Main.SuspendLayout(); this.FLP_Main.SuspendLayout(); @@ -5445,6 +5446,7 @@ public void InitializeComponent() this.FLP_SAVtools.Controls.Add(this.B_OUTPasserby); this.FLP_SAVtools.Controls.Add(this.B_CGearSkin); this.FLP_SAVtools.Controls.Add(this.B_OpenPokeBeans); + this.FLP_SAVtools.Controls.Add(this.B_OpenZygardeCells); this.FLP_SAVtools.Location = new System.Drawing.Point(6, 10); this.FLP_SAVtools.Name = "FLP_SAVtools"; this.FLP_SAVtools.Size = new System.Drawing.Size(297, 87); @@ -5691,6 +5693,16 @@ public void InitializeComponent() this.L_UpdateAvailable.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.L_UpdateAvailable.Visible = false; // + // B_OpenZygardeCells + // + this.B_OpenZygardeCells.Location = new System.Drawing.Point(189, 148); + this.B_OpenZygardeCells.Name = "B_OpenZygardeCells"; + this.B_OpenZygardeCells.Size = new System.Drawing.Size(87, 23); + this.B_OpenZygardeCells.TabIndex = 26; + this.B_OpenZygardeCells.Text = "Zygarde Cells"; + this.B_OpenZygardeCells.UseVisualStyleBackColor = true; + this.B_OpenZygardeCells.Click += new System.EventHandler(this.B_OpenZygardeCells_Click); + // // Main // this.AllowDrop = true; @@ -6337,6 +6349,7 @@ public void InitializeComponent() private System.Windows.Forms.Button B_OpenPokeBeans; private System.Windows.Forms.FlowLayoutPanel FLP_BallLeft; private System.Windows.Forms.PictureBox PB_Ball; + private System.Windows.Forms.Button B_OpenZygardeCells; } } diff --git a/PKHeX/MainWindow/Main.cs b/PKHeX/MainWindow/Main.cs index ef5b72772..b80ca72a9 100644 --- a/PKHeX/MainWindow/Main.cs +++ b/PKHeX/MainWindow/Main.cs @@ -957,6 +957,7 @@ private void openSAV(SaveFile sav, string path) B_OpenSecretBase.Enabled = SAV.HasSecretBase; B_OpenPokepuffs.Enabled = SAV.HasPuff; B_OpenPokeBeans.Enabled = SAV.Generation == 7; + B_OpenZygardeCells.Enabled = SAV.Generation == 7; B_OUTPasserby.Enabled = SAV.HasPSS; B_OpenBoxLayout.Enabled = SAV.HasBoxWallpapers; B_OpenWondercards.Enabled = SAV.HasWondercards; @@ -3987,6 +3988,10 @@ private void B_OpenSecretBase_Click(object sender, EventArgs e) { new SAV_SecretBase().ShowDialog(); } + private void B_OpenZygardeCells_Click(object sender, EventArgs e) + { + new SAV_ZygardeCell().ShowDialog(); + } private void B_LinkInfo_Click(object sender, EventArgs e) { new SAV_Link6().ShowDialog(); diff --git a/PKHeX/MainWindow/Main.resx b/PKHeX/MainWindow/Main.resx index 7496fe776..940512ccf 100644 --- a/PKHeX/MainWindow/Main.resx +++ b/PKHeX/MainWindow/Main.resx @@ -120,90 +120,6 @@ True - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - True @@ -515,6 +431,30 @@ True + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + True @@ -533,12 +473,30 @@ True + + True + + + True + True True + + True + + + True + + + True + + + True + True @@ -551,6 +509,15 @@ True + + True + + + True + + + True + True @@ -560,6 +527,18 @@ True + + True + + + True + + + True + + + True + True @@ -863,6 +842,24 @@ True + + True + + + True + + + True + + + True + + + True + + + True + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAeZJREFUOE+1 @@ -1125,6 +1122,15 @@ True + + True + + + True + + + True + True @@ -1990,9 +1996,6 @@ True - - True - True @@ -2044,55 +2047,7 @@ True - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - + True diff --git a/PKHeX/PKHeX.csproj b/PKHeX/PKHeX.csproj index 9f6058a67..00161bf3c 100644 --- a/PKHeX/PKHeX.csproj +++ b/PKHeX/PKHeX.csproj @@ -310,6 +310,12 @@ SAV_Trainer7.cs + + Form + + + SAV_ZygardeCell.cs + Form @@ -500,6 +506,9 @@ SAV_Trainer7.cs + + SAV_ZygardeCell.cs + SAV_BoxViewer.cs diff --git a/PKHeX/Subforms/Save Editors/Gen7/SAV_ZygardeCell.Designer.cs b/PKHeX/Subforms/Save Editors/Gen7/SAV_ZygardeCell.Designer.cs new file mode 100644 index 000000000..e8b3bc297 --- /dev/null +++ b/PKHeX/Subforms/Save Editors/Gen7/SAV_ZygardeCell.Designer.cs @@ -0,0 +1,182 @@ +namespace PKHeX +{ + partial class SAV_ZygardeCell + { + /// + /// 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(SAV_ZygardeCell)); + this.dgv = new System.Windows.Forms.DataGridView(); + this.dgv_ref = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dgv_location = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dgv_val = new System.Windows.Forms.DataGridViewComboBoxColumn(); + this.B_Cancel = new System.Windows.Forms.Button(); + this.B_Save = new System.Windows.Forms.Button(); + this.NUD_Cells = new System.Windows.Forms.NumericUpDown(); + this.L_Cells = new System.Windows.Forms.Label(); + this.B_GiveAll = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Cells)).BeginInit(); + this.SuspendLayout(); + // + // dgv + // + this.dgv.AllowUserToAddRows = false; + this.dgv.AllowUserToDeleteRows = false; + this.dgv.AllowUserToResizeColumns = false; + this.dgv.AllowUserToResizeRows = false; + this.dgv.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgv.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgv.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dgv_ref, + this.dgv_location, + this.dgv_val}); + this.dgv.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnEnter; + this.dgv.Location = new System.Drawing.Point(12, 12); + this.dgv.MultiSelect = false; + this.dgv.Name = "dgv"; + this.dgv.RowHeadersVisible = false; + this.dgv.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect; + this.dgv.Size = new System.Drawing.Size(400, 263); + this.dgv.TabIndex = 0; + // + // dgv_ref + // + this.dgv_ref.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells; + this.dgv_ref.HeaderText = "Ref"; + this.dgv_ref.Name = "dgv_ref"; + this.dgv_ref.ReadOnly = true; + this.dgv_ref.Width = 49; + // + // dgv_location + // + this.dgv_location.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells; + this.dgv_location.HeaderText = "Location"; + this.dgv_location.Name = "dgv_location"; + this.dgv_location.ReadOnly = true; + this.dgv_location.Width = 73; + // + // dgv_val + // + this.dgv_val.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.dgv_val.HeaderText = "Value"; + this.dgv_val.Name = "dgv_val"; + // + // B_Cancel + // + this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Cancel.Location = new System.Drawing.Point(337, 306); + this.B_Cancel.Name = "B_Cancel"; + this.B_Cancel.Size = new System.Drawing.Size(75, 23); + this.B_Cancel.TabIndex = 1; + this.B_Cancel.Text = "Cancel"; + this.B_Cancel.UseVisualStyleBackColor = true; + this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); + // + // B_Save + // + this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Save.Location = new System.Drawing.Point(337, 281); + this.B_Save.Name = "B_Save"; + this.B_Save.Size = new System.Drawing.Size(75, 23); + this.B_Save.TabIndex = 2; + this.B_Save.Text = "Save"; + this.B_Save.UseVisualStyleBackColor = true; + this.B_Save.Click += new System.EventHandler(this.B_Save_Click); + // + // NUD_Cells + // + this.NUD_Cells.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.NUD_Cells.Location = new System.Drawing.Point(90, 284); + this.NUD_Cells.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_Cells.Name = "NUD_Cells"; + this.NUD_Cells.Size = new System.Drawing.Size(66, 20); + this.NUD_Cells.TabIndex = 3; + // + // L_Cells + // + this.L_Cells.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.L_Cells.Location = new System.Drawing.Point(12, 281); + this.L_Cells.Name = "L_Cells"; + this.L_Cells.Size = new System.Drawing.Size(72, 23); + this.L_Cells.TabIndex = 4; + this.L_Cells.Text = "Total:"; + this.L_Cells.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // B_GiveAll + // + this.B_GiveAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.B_GiveAll.Location = new System.Drawing.Point(81, 306); + this.B_GiveAll.Name = "B_GiveAll"; + this.B_GiveAll.Size = new System.Drawing.Size(75, 23); + this.B_GiveAll.TabIndex = 5; + this.B_GiveAll.Text = "Give All"; + this.B_GiveAll.UseVisualStyleBackColor = true; + this.B_GiveAll.Click += new System.EventHandler(this.B_GiveAll_Click); + // + // SAV_ZygardeCell + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(424, 341); + this.Controls.Add(this.B_GiveAll); + this.Controls.Add(this.L_Cells); + this.Controls.Add(this.NUD_Cells); + this.Controls.Add(this.B_Save); + this.Controls.Add(this.B_Cancel); + this.Controls.Add(this.dgv); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimumSize = new System.Drawing.Size(440, 380); + this.Name = "SAV_ZygardeCell"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Zygarde Cells"; + ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Cells)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.DataGridView dgv; + private System.Windows.Forms.Button B_Cancel; + private System.Windows.Forms.Button B_Save; + private System.Windows.Forms.NumericUpDown NUD_Cells; + private System.Windows.Forms.Label L_Cells; + private System.Windows.Forms.Button B_GiveAll; + private System.Windows.Forms.DataGridViewComboBoxColumn dgv_val; + private System.Windows.Forms.DataGridViewTextBoxColumn dgv_location; + private System.Windows.Forms.DataGridViewTextBoxColumn dgv_ref; + } +} \ No newline at end of file diff --git a/PKHeX/Subforms/Save Editors/Gen7/SAV_ZygardeCell.cs b/PKHeX/Subforms/Save Editors/Gen7/SAV_ZygardeCell.cs new file mode 100644 index 000000000..e98fded86 --- /dev/null +++ b/PKHeX/Subforms/Save Editors/Gen7/SAV_ZygardeCell.cs @@ -0,0 +1,183 @@ +using System; +using System.Linq; +using System.Windows.Forms; + +namespace PKHeX +{ + public partial class SAV_ZygardeCell : Form + { + private readonly SAV7 SAV = new SAV7(Main.SAV.Data); + public SAV_ZygardeCell() + { + InitializeComponent(); + + // Constants @ 0x1C00 + // Cell Data @ 0x1D8C + // Use constants 0x18C/2 = 198 thru +95 + ushort[] constants = SAV.EventConsts; + ushort[] cells = constants.Skip(celloffset).Take(cellcount).ToArray(); + + int receivedCount = cells.Count(cell => cell == 2); + int cellCount = constants[cellscollected]; + + NUD_Cells.Value = cellCount; + + var combo = dgv.Columns[2] as DataGridViewComboBoxColumn; + foreach (string t in states) + combo.Items.Add(t); // add only the Names + + // Populate Grid + dgv.Rows.Add(cellcount); + for (int i = 0; i < cellcount; i++) + { + if (cells[i] > 2) + throw new ArgumentException(); + + dgv.Rows[i].Cells[0].Value = (i+1).ToString(); + dgv.Rows[i].Cells[1].Value = locations[i]; + dgv.Rows[i].Cells[2].Value = states[cells[i]]; + } + } + + private const int cellscollected = 0x142/2; + private const int celloffset = 198; + private const int cellcount = 95; + private readonly string[] states = {"None", "Available", "Received"}; + + private void B_Save_Click(object sender, EventArgs e) + { + ushort[] constants = SAV.EventConsts; + for (int i = 0; i < cellcount; i++) + { + string str = (string)dgv.Rows[i].Cells[2].Value; + int val = Array.IndexOf(states, str); + if (val < 0) + throw new ArgumentException(); + + constants[celloffset + i] = (ushort)val; + } + + constants[cellscollected] = (ushort)NUD_Cells.Value; + + SAV.EventConsts = constants; + Array.Copy(SAV.Data, Main.SAV.Data, SAV.Data.Length); + Main.SAV.Edited = true; + + Close(); + } + private void B_Cancel_Click(object sender, EventArgs e) + { + Close(); + } + private void B_GiveAll_Click(object sender, EventArgs e) + { + for (int i = 0; i < dgv.RowCount; i++) + dgv.Rows[i].Cells[2].Value = states[2]; + + System.Media.SystemSounds.Asterisk.Play(); + } + + #region locations -- lazy + + private string[] locations = + { + "Verdant Cave - Trial Site", + "Ruins of Conflict - Outside", + "Route 1 (Day)", + "Route 3", + "Route 3 (Day)", + "Kala'e Bay", + "Hau'oli Cemetery", + "Route 2", + "Route 1 - Trainer School (Night)", + "Hau'oli City - Shopping District", + "Route 1 - Outskirts", + "Hau'oli City - Shopping District (Night)", + "Route 1", + "Iki Town (Night)", + "Route 4", + "Paniola Ranch (Night)", + "Paniola Ranch", + "Wela Volcano Park - Top", + "Lush Jungle - Cave", + "Route 7", + "Akala Outskirts", + "Royal Avenue (Day)", + "Royal Avenue (Night)", + "Konikoni City (Night)", + "Heahea City (Night)", + "Route 8", + "Route 8 (Day)", + "Route 5", + "Hano Beach (Day)", + "Heahea City", + "Diglett's Tunnel", + "Hano Beach", + "Malie Garden", + "Malie City - Community Center (Night)", + "Malie City (Day)", + "Malie City - Outer Cape (Day)", + "Route 11 (Night)", + "Route 12 (Day)", + "Route 12", + "Secluded Shore (Night)", + "Blush Mountain", + "Route 13", + "Haina Desert", + "Ruins of Abundance - Outside", + "Route 14", + "Route 14 (Night)", + "Tapu Village", + "Route 15", + "Aether House (Day)", + "Ula'ula Meadow - Boardwalk", + "Route 16 (Day)", + "Ula'ula Meadow - Grass", + "Route 17 - Building", + "Route 17 - Ledge", + "Po Town (Night)", + "Route 10 (Day)", + "Hokulani Observatory (Night)", + "Mount Lanakila - Mountainside", + "Mount Lanakila - High Mountainside", + "Secluded Shore (Day)", + "Route 13 (Night)", + "Po Town (Day)", + "Seafolk Village - Blue Food Boat", + "Seafolk Village - Unbuilt House", + "Poni Wilds (Day)", + "Poni Wilds (Night)", + "Poni Wilds", + "Ancient Poni Path - Near Well (Day)", + "Ancient Poni Path (Night)", + "Poni Breaker Coast (Day)", + "Ruins of Hope", + "Poni Grove - Mountain Corner", + "Poni Grove - Near a Bush", + "Poni Plains (Day)", + "Poni Plains (Night)", + "Poni Plains", + "Poni Meadow", + "Poni Coast (Night)", + "Poni Coast", + "Poni Gauntlet - On Bridge", + "Poni Gauntlet - Island w/ Trainer", + "Resolution Cave - 1F (Day)", + "Resolution Cave - B1F (Night)", + "Vast Poni Canyon - 3F", + "Vast Poni Canyon - 2F", + "Vast Poni Canyon - Top", + "Vast Poni Canyon - Inside", + "Ancient Poni Path - Brickwall (Day)", + "Poni Breaker Coast (Night)", + "Resolution Cave - B1F", + "Aether Foundation B2F - Right Hallway", + "Aether Foundation 1F - Outside - Right Side", + "Aether Foundation 1F - Outside (Day)", + "Aether Foundation 1F - Entrance (Night)", + "Aether Foundation 1F - Main Building", + }; + + #endregion + } +} diff --git a/PKHeX/Subforms/Save Editors/Gen7/SAV_ZygardeCell.resx b/PKHeX/Subforms/Save Editors/Gen7/SAV_ZygardeCell.resx new file mode 100644 index 000000000..284ecb3a9 --- /dev/null +++ b/PKHeX/Subforms/Save Editors/Gen7/SAV_ZygardeCell.resx @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + True + + + True + + + + + AAABAAIAEBAAAAEAIABoBAAAJgAAACAgAAABACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAAAE + AAAAAAAAAAAAAAAAAAAAAAAAIyMjAQAAAAALCwsPJiYmJysrKycqKionKSkpJykpKScpKSknKioqJyoq + KicrKysnJycnJw0ODQ8AAAAAJiYmAQAAAABpaWlHq6ur17+/v+6+vr7svr6+7b6+vu2+vr7tvr6+7b6+ + vu2+vr7tvr6+7L+/v+6rq6vXampqSAAAAAAoKSgXvr++3eLi4v/g4OD94eHh/+Hh4f/i4uL/4uLi/+Li + 4v/i4uL/4eHh/+Dh4P/g4OD94uLi/7+/v90sLCwXfn5+PNna2frg4OD/39/f/uHh4f7h4eH+39/f/uDg + 4P7g4OD+39/f/uHh4f7h4OH+39/f/t/g3//a2tr6g4ODPoOCgz7X19f64+Pj/+Li4v7k5OT/4+Tj//Ly + 8v/19fX/9PT0//T09P/k5OT/5OTk/+Pj4/7j4+P/19jX+4qLikCDhIM+2tra++Xl5f/k5eT+5OTk//Lz + 8v+urq7/RUVF/z4+Pv+Zmpn/8fHx/+Xm5f/k5eT+5eXl/9ra2vyLi4tAhYWFPuXm5vvx8vP/7+/w/v// + //+sra3/AgIC/15eXv9tbG3/BQUF/4yMjP//////7+/w/vHy8//l5ub8jY2NQC4uLD5LS0f7UFBL/09P + Sv5YWVP/FBUS/29wcP///////////5SUlP8PDw//U1NO/1BQS/5PT0r/S0tH/DIyMEAAAAs+AAAM+wAA + Dv8AAA/+AwMS/wAAAP+UlJX///////////+3t7n/AAAA/wAAD/8BAQ/+AAAO/wAADPwCAg5ABARSPgoK + k/sNDab/DQ2o/hAQvP8CAmj/IiIW/7Kzrv/Cw8D/NDQm/wAATf8QELz/DQ2q/gwMp/8LC5T8Dg5bQAUF + Xj4KCpz7DQ2u/w0NsP4NDbX/Dw+//wUFYf8CAhL/AwMP/wMDTf8ODrj/Dg64/w0NsP4MDK7/Cwud/A8P + aEEGBmU9DAyl+w4Otf8ODrf+Dw+6/xAQvv8TE8v/EhK+/xAQvP8TE8v/EBDA/w8Puf8PD7f+Dg61/w0N + pvsREW9ACAhtQA8PsfsTE77/ExO//xQUwP8UFML/FBTD/xUVyP8WFsn/FRXE/xQUw/8UFMH/ExO//xMT + vv8QELL7ERF3QxkZdCgXF771ExPH/xUVyPwVFcn9FhbL/RcXzP0XF8z9FxfM/RcXy/0XF8v9FhbJ/RUV + yPwTE8f/Fxe+9RkZdykAAAAAIyOtghsbx/8ZGcj+GRnJ/xoayf8aGsn/GhrK/xoayv8aGsn/GhrJ/xkZ + yf8ZGcj+GxvH/yMjrYQAAAAAAADHAQAAAAAzM51FLCyscCoqrGwqKqxtKSmsbSoqrG0qKqxtKSmsbSoq + rG0qKqxsLCyscDMznUUAAAAAAAAAAP//AADAAwAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIAB + AACAAQAAgAEAAIABAACAAQAAgAEAAP//AAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKysrCR0dHSMWFhY3GBgYORgYGDkYGBg5GBgYORgY + GDkYGBg5GBgYORgYGDkYGBg5GBgYORgYGDkYGBg5GBgYORgYGDkYGBg5GBgYORgYGDkYGBg5FxcXNx4e + HiQuLi4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASEhIARYWFis7OzuVkJCQ2ampqeqqqqrsqqqq7Kqq + quyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqq + quypqanqkZGR2j09PZcXFxcsUFBQAQAAAAAAAAAAAAAAAAAAAAASEhIuhISEytvb2/7W1tb/19fX/9jY + 2P/Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Y2Nj/2NjY/9jY + 2P/Y2Nj/2NjY/9fX1//W1tb/29vb/oeHh8sTExMvAAAAAAAAAAAAAAAAPDw8DGtra6zZ2dn/2dnZ/9ra + 2v/b29v/29vb/9vb2//c3Nz/3Nzc/9zc3P/c3Nz/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3Nzc/9zc + 3P/c3Nz/3Nzc/9vb2//b29v/29vb/9ra2v/Z2dn/2dnZ/21tba5DQ0MNAAAAAAAAAAAiIiIx1NXU9tna + 2f/c3Nz/3d3d/93e3f/e3t7/3t7e/9/f3//f39//39/f/9/g3//g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg + 4P/g4OD/39/f/9/f3//f39//3t/e/97e3v/d3t3/3d3d/9zc3P/Z2tn/1dXV9icnJzMAAAAAAAAAAFhZ + WFzf4N//3Nzc/97e3v/f39//39/f/9/g3//g4OD/4ODg/+Hh4f/h4eH/4eHh/+Li4v/i4uL/4uLi/+Li + 4v/i4uL/4uLi/+Hi4f/h4eH/4eHh/+Dg4P/g4OD/3+Df/9/f3//f39//3t7e/9zc3P/f39//XV1dXQAA + AAAAAAAAZmZmZdvc2//e3t7/3+Df/+Dg4P/g4eD/4eHh/+Hi4f/i4uL/4uPi/+Pj4//j4+P/5OTk/+Tk + 5P/k5OT/5OTk/+Tk5P/k5OT/4+Pj/+Pj4//j4+P/4uLi/+Li4v/h4eH/4eHh/+Dg4P/f4N//3t7e/9vb + 2/9wcHBoAAAAAAAAAABoaGhl3d3d/9/f3//h4eH/4eLh/+Li4v/j4+P/4+Pj/+Tk5P/k5OT/5eXl/+Xl + 5f/l5uX/5ubm/+bm5v/m5ub/5ubm/+bm5v/l5eX/5eXl/+Tk5P/k5OT/4+Pj/+Pj4//i4uL/4uLi/+Hh + 4f/f39//3N3c/3Nzc2kAAAAAAAAAAGhoaGXe3t7/4ODg/+Li4v/j4+P/4+Pj/+Tk5P/l5eX/5eXl/+bm + 5v/m5+b/5+fn/+fn5//n6Of/6Ojo/+jo6P/o6Oj/5+fn/+fn5//n5+f/5ubm/+Xl5f/l5eX/5OTk/+Pk + 4//j4+P/4uLi/+Dg4P/e3t7/c3NzaQAAAAAAAAAAaGhoZd/g3//i4uL/5OTk/+Tl5P/l5eX/5ebl/+bn + 5v/n5+f/5+jn/+jp6P/p6en/7Ozs/8LCwv+Tk5P/ioqK/66urv/o6ej/6enp/+jp6P/o6Oj/5+jn/+bn + 5v/m5ub/5ebl/+Tl5P/k5OT/4uLi/9/g3/9zdHNpAAAAAAAAAABoaWhl4eLh/+Pk4//m5ub/5ubm/+fn + 5//n6Of/6Ojo/+np6f/p6un/6urq/8bGxv8yMjL/AAAA/wAAAP8AAAD/AAAA/xMTE/+ZmZn/7Ozs/+rq + 6v/p6en/6Ojo/+jo6P/n5+f/5ubm/+bm5v/k5OT/4eHh/3R0dGkAAAAAAAAAAGhpaGXj4+P/5eXl/+fn + 5//n6Of/6Ojo/+np6f/q6ur/6urq/+vr6//Dw8P/DAwM/wAAAP8AAAD/Gxsb/ygoKP8BAQH/AAAA/wAA + AP+FhYX/7O3s/+rr6v/q6ur/6enp/+jo6P/o6Oj/5+fn/+Xl5f/i4+L/dHR0aQAAAAAAAAAAYWFhZeTl + 5P/m5+b/6Ono/+np6f/p6un/6uvq/+vr6//s7Oz/7e7t/ycnJ/8AAAD/Ghoa/7S0tP/m5ub/5OTk/9HR + 0f9GRkb/AAAA/wICAv/IyMj/7Ozs/+vs6//q6+r/6urq/+nq6f/o6ej/5+fn/+Tk5P9sbGxpAAAAAAAA + AAA9Pj1lj4+P/5OTk/+VlZX/lpaW/5eXl/+YmJj/mZmZ/5qamv92dnb/AAAA/wEBAf+/wL//3Nzc/+Tk + 5P/l5eX/3d3d/+Li4v8mJib/AAAA/0ZGRv+ampr/mZmZ/5iYmP+Xl5f/lpaW/5WVlf+Tk5P/j4+P/0ZG + RmoAAAAAAAAAAAwMDGUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Nzc3/+fn + 5//q6ur/7O3s/+zt7P/v7+//39/f/4WFhf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/EBAQagAAAAAAAAAAAwMHZQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP9NTU3/5ufm//Lz8v/z9PP/8/Tz//X19f/l5eX/nZ2d/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8GBgpqAAAAAAAAAAAAABZlAQEk/wEBJ/8CAin/AgIq/wICKv8CAiv/AgIs/wIC + LP8BAR3/AAAA/xwcHP/w8PD/6+zr//r6+v/6+vr/9PT0/+vr6/9lZWX/AAAA/wAAD/8CAi3/AgIs/wIC + K/8CAir/AgIq/wICKf8BASf/AQEl/wUFG2oAAAAAAAAAAAICQGUGBpL/Bwec/wgIo/8JCaf/CQmq/wkJ + rf8JCa//Cgqz/wkJqP8AAAL/AAAA/4CAgP/y8/L/6+zr/+3t7f/u7u7/xMTE/wcHB/8AAAD/BgZz/woK + s/8JCbD/CQmt/wkJqv8JCaj/CAik/wcHnf8HB5P/Dg5MagAAAAAAAAAAAwNHZQgIk/8JCZ3/Cgqj/wsL + p/8LC6n/Cwus/wsLr/8MDLL/DAy2/wYGW/8AAAD/AAAA/1JSUv+sraz/tra2/3h4eP8KCgr/AAAA/wIC + Iv8MDLb/DAyy/wsLsP8LC63/Cwuq/wsLp/8KCqT/CQmd/wgIk/8PD1VrAAAAAAAAAAAEBE1lCQmY/woK + ov8LC6j/DAyr/wwMrf8MDLD/DAyy/w0Ntf8NDbf/Dg67/wUFSv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8CAiH/DQ2q/w0NuP8NDbX/DQ2z/wwMsP8MDK7/DAyr/wsLqP8KCqL/CQmZ/xAQWmsAAAAAAAAAAAQE + UGUKCp7/Cwum/wwMrP8NDa//DQ2w/w0Ns/8ODrX/Dg63/w4Ouf8ODrv/Dw/A/wwMiv8FBTj/AAAG/wAA + AP8DAyb/CQls/w8Pu/8PD7z/Dg66/w4OuP8ODrX/DQ2z/w0Nsf8NDa//DAys/wsLp/8KCp7/ERFeawAA + AAAAAAAABQVTZQsLpP8MDKv/DQ2w/w4Os/8ODrT/Dg62/w8PuP8PD7r/Dw+8/w8Pvf8QEL//EBDA/xER + w/8SEsn/ERHJ/xERxf8QEMD/EBC//w8Pvv8PD7z/Dw+6/w8PuP8ODrf/Dg61/w4Os/8NDbH/DAyr/wsL + pP8SEmFrAAAAAAAAAAAGBlZlDAyq/w4OsP8PD7X/Dw+3/w8PuP8QELr/EBC7/xAQvf8REb7/ERHA/xER + wf8REcL/EhLC/xISw/8SEsP/EhLC/xERwv8REcH/ERHA/xERvv8QEL3/EBC7/xAQuv8QELj/Dw+3/w8P + tf8ODrD/DAyq/xMTZWsAAAAAAAAAAAcHWmUODrD/EBC2/xERuv8REbz/ERG9/xISvv8SEr//EhLA/xMT + wf8TE8P/ExPD/xMTxP8TE8X/FBTF/xQUxf8UFMX/ExPE/xMTxP8TE8P/ExPC/xISwf8SEr//EhK+/xER + vf8REbz/ERG6/xAQtv8ODrD/FBRpawAAAAAAAAAACAhcYxAQtf8SErv/ExO+/xQUwP8UFMD/FBTB/xUV + wv8VFcP/FRXE/xUVxf8WFsb/FhbG/xYWx/8WFsf/FhbH/xYWx/8WFsf/FhbG/xYWxf8VFcT/FRXD/xUV + wv8UFMH/FBTB/xQUwP8TE77/EhK7/xAQtf8TE2hoAAAAAAAAAAAQEFNUFRXC/xMTv/8UFMP/FRXE/xUV + xP8VFcX/FRXG/xYWx/8WFsf/FhbI/xYWyf8XF8n/FxfK/xcXyv8XF8r/FxfK/xcXyf8XF8n/FhbI/xYW + yP8WFsf/FhbG/xUVxf8VFcT/FRXE/xQUw/8TE7//FRXB/xAQV1UAAAAAAAAAAA0NPxkjI8byFBTD/xUV + x/8WFsj/FxfJ/xcXyf8XF8r/FxfK/xcXy/8YGMz/GBjM/xgYzP8YGM3/GBjN/xgYzf8YGM3/GBjM/xgY + zP8YGMz/GBjL/xcXy/8XF8r/FxfJ/xcXyf8WFsj/FRXH/xQUw/8jI8f0Dg5GGwAAAAAAAAAAFhZxAiUl + eIUZGcr/FBTI/xUVyv8WFsv/FhbM/xYWzP8WFsz/FhbN/xcXzf8XF83/FxfN/xcXzv8XF87/FxfO/xcX + zv8XF87/FxfN/xcXzf8WFs3/FhbM/xYWzP8WFsz/FhbL/xUVyv8UFMj/GBjJ/yYmeogWFnYCAAAAAAAA + AAAAAAAAGBh1BzMzk50kJNP+FxfK/xgYzP8YGMz/GBjN/xgYzf8YGM3/GBjN/xgYzf8ZGc7/GRnO/xkZ + zv8ZGc7/GRnO/xkZzv8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzP8YGMz/FxfK/yMj0v4zM5WfFBRkBwAA + AAAAAAAAAAAAAAAAAAAAAAAAHBx7Ay0tdkg3N5emMTGpxSwsp8gsLKfILCynyCwsp8gsLKfILCynyCws + p8gsLKfILCynyCwsp8gsLKfILCynyCwsp8gsLKfILCynyCwsp8gsLKfILCynyDExqcU2NpenLi54Shsb + ewMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////8AAAD+AAAAfAAAADwAAAA8AAAAPAAAADwAAAA8AA + AAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AA + AAPAAAADwAAAA8AAAAPAAAAD4AAAB/gAAB////// + + + \ No newline at end of file