diff --git a/J-Runner/CPUkeydb/AddCpuKey.Designer.cs b/J-Runner/CPUkeydb/AddCpuKey.Designer.cs deleted file mode 100644 index 7de7e21..0000000 --- a/J-Runner/CPUkeydb/AddCpuKey.Designer.cs +++ /dev/null @@ -1,139 +0,0 @@ -namespace JRunner -{ - partial class AddCpuKey - { - /// - /// 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(AddCpuKey)); - this.lblNand = new System.Windows.Forms.Label(); - this.txtFilename = new System.Windows.Forms.TextBox(); - this.ldlCpukey = new System.Windows.Forms.Label(); - this.btnFile = new System.Windows.Forms.Button(); - this.btnOk = new System.Windows.Forms.Button(); - this.txtCpuKey = new System.Windows.Forms.TextBox(); - this.SuspendLayout(); - // - // lblNand - // - this.lblNand.AutoSize = true; - this.lblNand.Location = new System.Drawing.Point(24, 16); - this.lblNand.Name = "lblNand"; - this.lblNand.Size = new System.Drawing.Size(33, 13); - this.lblNand.TabIndex = 0; - this.lblNand.Text = "Nand"; - // - // txtFilename - // - this.txtFilename.AllowDrop = true; - this.txtFilename.BackColor = System.Drawing.SystemColors.ControlLightLight; - this.txtFilename.Location = new System.Drawing.Point(27, 32); - this.txtFilename.Name = "txtFilename"; - this.txtFilename.ReadOnly = true; - this.txtFilename.Size = new System.Drawing.Size(200, 20); - this.txtFilename.TabIndex = 1; - this.txtFilename.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; - this.txtFilename.DragDrop += new System.Windows.Forms.DragEventHandler(this.textBox1_DragDrop); - this.txtFilename.DragEnter += new System.Windows.Forms.DragEventHandler(this.textBox1_DragEnter); - // - // ldlCpukey - // - this.ldlCpukey.AutoSize = true; - this.ldlCpukey.Location = new System.Drawing.Point(24, 68); - this.ldlCpukey.Name = "ldlCpukey"; - this.ldlCpukey.Size = new System.Drawing.Size(50, 13); - this.ldlCpukey.TabIndex = 2; - this.ldlCpukey.Text = "CPU Key"; - // - // btnFile - // - this.btnFile.Location = new System.Drawing.Point(239, 30); - this.btnFile.Name = "btnFile"; - this.btnFile.Size = new System.Drawing.Size(28, 23); - this.btnFile.TabIndex = 4; - this.btnFile.Text = "..."; - this.btnFile.UseVisualStyleBackColor = true; - this.btnFile.Click += new System.EventHandler(this.button1_Click); - // - // btnOk - // - this.btnOk.DialogResult = System.Windows.Forms.DialogResult.OK; - this.btnOk.Location = new System.Drawing.Point(99, 119); - this.btnOk.Name = "btnOk"; - this.btnOk.Size = new System.Drawing.Size(75, 23); - this.btnOk.TabIndex = 5; - this.btnOk.Text = "OK"; - this.btnOk.UseVisualStyleBackColor = true; - this.btnOk.Click += new System.EventHandler(this.button2_Click); - // - // txtCpuKey - // - this.txtCpuKey.AllowDrop = true; - this.txtCpuKey.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; - this.txtCpuKey.Location = new System.Drawing.Point(27, 84); - this.txtCpuKey.MaxLength = 32; - this.txtCpuKey.Name = "txtCpuKey"; - this.txtCpuKey.Size = new System.Drawing.Size(234, 20); - this.txtCpuKey.TabIndex = 24; - this.txtCpuKey.TextChanged += new System.EventHandler(this.cpukeytext_TextChanged); - this.txtCpuKey.DragDrop += new System.Windows.Forms.DragEventHandler(this.cpukeytext_DragDrop); - this.txtCpuKey.DragEnter += new System.Windows.Forms.DragEventHandler(this.cpukeytext_DragEnter); - // - // AddCpuKey - // - this.AcceptButton = this.btnOk; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(284, 154); - this.Controls.Add(this.txtCpuKey); - this.Controls.Add(this.btnOk); - this.Controls.Add(this.btnFile); - this.Controls.Add(this.ldlCpukey); - this.Controls.Add(this.txtFilename); - this.Controls.Add(this.lblNand); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "AddCpuKey"; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Add Entry"; - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Label lblNand; - private System.Windows.Forms.TextBox txtFilename; - private System.Windows.Forms.Label ldlCpukey; - private System.Windows.Forms.Button btnFile; - private System.Windows.Forms.Button btnOk; - private System.Windows.Forms.TextBox txtCpuKey; - } -} \ No newline at end of file diff --git a/J-Runner/CPUkeydb/AddCpuKey.cs b/J-Runner/CPUkeydb/AddCpuKey.cs deleted file mode 100644 index c3394e3..0000000 --- a/J-Runner/CPUkeydb/AddCpuKey.cs +++ /dev/null @@ -1,139 +0,0 @@ -using System; -using System.IO; -using System.Text.RegularExpressions; -using System.Windows.Forms; - -namespace JRunner -{ - public partial class AddCpuKey : Form - { - public string filename1, cerial, mobo, DVDkey, RegioN, OSIG; - public long kv_crc; - - public AddCpuKey() - { - InitializeComponent(); - } - - - void nandinit() - { - Regex objAlphaPattern = new Regex("[a-fA-F0-9]{32}$"); - bool sts = objAlphaPattern.IsMatch(txtCpuKey.Text); - bool cpucheck = false; - bool check = false; - if (filename1 != null && Path.GetExtension(filename1) == ".bin") - { - if ((txtCpuKey.Text.Length == 32 && sts)) cpucheck = true; - if (cpucheck) check = Nand.Nand.cpukeyverification(filename1, txtCpuKey.Text); - - } - if (check) - { - kv_crc = MainForm.nand.kvcrc(); - cerial = MainForm.nand.ki.serial; - mobo = Nand.Nand.getConsoleName(MainForm.nand, variables.flashconfig); - DVDkey = MainForm.nand.ki.dvdkey; - RegioN = MainForm.nand.ki.region; - OSIG = MainForm.nand.ki.osig; - } - } - - public string serial() - { - return cerial; - } - public string motherboard() - { - return mobo; - } - - public string cpukey() - { - return txtCpuKey.Text; - } - public long kvcrc() - { - return kv_crc; - } - public string dvdkey() - { - return this.DVDkey; - } - public string region() - { - return this.RegioN; - } - public string osig() - { - return this.OSIG; - } - - /// - /// Form functions - /// - /// - /// - void textBox1_DragDrop(object sender, DragEventArgs e) - { - string[] s = (string[])e.Data.GetData(DataFormats.FileDrop, false); - if (Path.GetExtension(s[0]) == ".bin" || Path.GetExtension(s[0]) == ".ecc") - { - this.txtFilename.Text = s[0]; - filename1 = s[0]; - nandinit(); - } - - } - void textBox1_DragEnter(object sender, DragEventArgs e) - { - if (e.Data.GetDataPresent(DataFormats.FileDrop)) - e.Effect = DragDropEffects.All; - else - e.Effect = DragDropEffects.None; - } - void cpukeytext_DragDrop(object sender, DragEventArgs e) - { - string[] s = (string[])e.Data.GetData(DataFormats.FileDrop, false); - if (Path.GetExtension(s[0]) == ".txt") - { - Regex objAlphaPattern = new Regex("[a-fA-F0-9]{32}$"); - bool sts = objAlphaPattern.IsMatch(File.ReadAllText(s[0])); - if (File.ReadAllText(s[0]).Length == 32 && sts) - { - txtCpuKey.Text = File.ReadAllText(s[0]); - } - } - - } - void cpukeytext_DragEnter(object sender, DragEventArgs e) - { - if (e.Data.GetDataPresent(DataFormats.FileDrop)) - e.Effect = DragDropEffects.All; - else - e.Effect = DragDropEffects.None; - } - private void button1_Click(object sender, EventArgs e) - { - OpenFileDialog openFileDialog1 = new OpenFileDialog(); - openFileDialog1.Filter = "(*.bin)|*.bin|All files (*.*)|*.*"; - openFileDialog1.Title = "Select a File"; - if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) - { - filename1 = openFileDialog1.FileName; - - } - if (filename1 != null) this.txtFilename.Text = filename1; - } - private void button2_Click(object sender, EventArgs e) - { - nandinit(); - this.Close(); - } - - void cpukeytext_TextChanged(object sender, System.EventArgs e) - { - if (txtCpuKey.Text.Length == 32) nandinit(); - } - } -} diff --git a/J-Runner/CPUkeydb/CpuKeyDB.Designer.cs b/J-Runner/CPUkeydb/CpuKeyDB.Designer.cs index 6e8c6cb..08e81c1 100644 --- a/J-Runner/CPUkeydb/CpuKeyDB.Designer.cs +++ b/J-Runner/CPUkeydb/CpuKeyDB.Designer.cs @@ -45,7 +45,6 @@ private void InitializeComponent() this.lblSerial = new System.Windows.Forms.Label(); this.lblCount = new System.Windows.Forms.Label(); this.lblNumber = new System.Windows.Forms.Label(); - this.btnAdd = new System.Windows.Forms.Button(); this.btnExport = new System.Windows.Forms.Button(); this.btnClose = new System.Windows.Forms.Button(); this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); @@ -203,25 +202,14 @@ private void InitializeComponent() this.lblNumber.TabIndex = 8; this.lblNumber.Text = "0"; // - // btnAdd - // - this.btnAdd.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnAdd.Location = new System.Drawing.Point(611, 39); - this.btnAdd.Name = "btnAdd"; - this.btnAdd.Size = new System.Drawing.Size(98, 23); - this.btnAdd.TabIndex = 9; - this.btnAdd.Text = "Add Value"; - this.btnAdd.UseVisualStyleBackColor = true; - this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click); - // // btnExport // this.btnExport.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnExport.Location = new System.Drawing.Point(611, 155); + this.btnExport.Location = new System.Drawing.Point(611, 126); this.btnExport.Name = "btnExport"; this.btnExport.Size = new System.Drawing.Size(98, 23); this.btnExport.TabIndex = 11; - this.btnExport.Text = "Export DB"; + this.btnExport.Text = "Export Table"; this.btnExport.UseVisualStyleBackColor = true; this.btnExport.Click += new System.EventHandler(this.btnExport_Click); // @@ -292,7 +280,7 @@ private void InitializeComponent() // // btnScan // - this.btnScan.Location = new System.Drawing.Point(611, 68); + this.btnScan.Location = new System.Drawing.Point(611, 39); this.btnScan.Name = "btnScan"; this.btnScan.Size = new System.Drawing.Size(98, 23); this.btnScan.TabIndex = 16; @@ -302,7 +290,7 @@ private void InitializeComponent() // // btnreverse // - this.btnreverse.Location = new System.Drawing.Point(611, 97); + this.btnreverse.Location = new System.Drawing.Point(611, 68); this.btnreverse.Name = "btnreverse"; this.btnreverse.Size = new System.Drawing.Size(98, 23); this.btnreverse.TabIndex = 17; @@ -312,11 +300,11 @@ private void InitializeComponent() // // btnImport // - this.btnImport.Location = new System.Drawing.Point(611, 126); + this.btnImport.Location = new System.Drawing.Point(611, 97); this.btnImport.Name = "btnImport"; this.btnImport.Size = new System.Drawing.Size(98, 23); this.btnImport.TabIndex = 18; - this.btnImport.Text = "Import DB"; + this.btnImport.Text = "Import Table"; this.btnImport.UseVisualStyleBackColor = true; this.btnImport.Click += new System.EventHandler(this.btnImport_Click); // @@ -399,7 +387,6 @@ private void InitializeComponent() this.Controls.Add(this.rbtnSerial); this.Controls.Add(this.btnClose); this.Controls.Add(this.btnExport); - this.Controls.Add(this.btnAdd); this.Controls.Add(this.lblNumber); this.Controls.Add(this.lblCount); this.Controls.Add(this.lblSerial); @@ -430,7 +417,6 @@ private void InitializeComponent() private System.Windows.Forms.Label lblSerial; private System.Windows.Forms.Label lblCount; private System.Windows.Forms.Label lblNumber; - private System.Windows.Forms.Button btnAdd; private System.Windows.Forms.Button btnExport; private System.Windows.Forms.Button btnClose; private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; diff --git a/J-Runner/CPUkeydb/CpuKeyDB.cs b/J-Runner/CPUkeydb/CpuKeyDB.cs index 7224356..db516d8 100644 --- a/J-Runner/CPUkeydb/CpuKeyDB.cs +++ b/J-Runner/CPUkeydb/CpuKeyDB.cs @@ -9,7 +9,6 @@ using System.Text.RegularExpressions; using System.Threading; using System.Windows.Forms; -using MessageBox = System.Windows.Forms.MessageBox; using OpenFileDialog = System.Windows.Forms.OpenFileDialog; using SaveFileDialog = System.Windows.Forms.SaveFileDialog; @@ -53,7 +52,6 @@ private void cpukeydb_Load(object sender, EventArgs e) if (valueName == "Index") { index = Convert.ToInt32(cpukeydb.GetValue(valueName)); - lblNumber.Text = index.ToString(); for (int i = 1; i <= index; i++) { try @@ -65,9 +63,7 @@ private void cpukeydb_Load(object sender, EventArgs e) index = index - 1; cpukeys.SetValue("Index", i); ; cpukeydb.SetValue("Index", index); - lblNumber.Text = index.ToString(); cpukeys.DeleteValue("Deleted"); - //continue; } DataRow cpurow = cputable.NewRow(); cpurow[0] = Convert.ToInt32(cpukeys.GetValue("Index")); @@ -90,16 +86,17 @@ private void cpukeydb_Load(object sender, EventArgs e) if (variables.debugMode) Console.WriteLine(ex.ToString()); continue; } + lblNumber.Text = cputable.Rows.Count.ToString(); } } } } - public static bool addkey_s(regentries entry, DataSet1 hi) + public static bool addkey_s(regentries entry, DataSet1 db, bool stealth = false, bool updDialog = false) { if (string.IsNullOrEmpty(entry.kvcrc)) return false; - DataTable cputable = hi.DataTable1; + DataTable cputable = db.DataTable1; RegistryKey cpukeydb = Registry.CurrentUser.CreateSubKey("CPUKey_DB"); foreach (string subkey in cpukeydb.GetSubKeyNames()) { @@ -107,13 +104,15 @@ public static bool addkey_s(regentries entry, DataSet1 hi) { if (cpukeydb.OpenSubKey(subkey).GetValue("CRC_KV").ToString() == entry.kvcrc || cpukeydb.OpenSubKey(subkey).GetValue("Serial").ToString() == entry.serial) { - Console.WriteLine("Key already Exists"); + if (!stealth) Console.WriteLine("Key already exists"); return false; } } } int index = Convert.ToInt32(cpukeydb.GetValue("Index")) + 1; + if (updDialog) MainForm.mainForm.cpukeydb.index = index; // Update nonstatically if the dialog calls it, dirty but I don't have time to rewrite this dialog + cpukeydb.SetValue("Index", index); RegistryKey cpukeys = cpukeydb.CreateSubKey(index.ToString()); cpukeys.SetValue("Index", index); @@ -142,7 +141,7 @@ public static bool addkey_s(regentries entry, DataSet1 hi) } catch (System.Data.ConstraintException) { } - Console.WriteLine("Added Key to Database"); + if (!stealth) Console.WriteLine("Added Key to Database"); return true; } public static string getkey_s(long kvcrc, DataSet1 hi) @@ -186,7 +185,7 @@ public static bool getkey_s(string cpukey, DataSet1 hi) public void deletekey(int indexrow) { if (variables.debugMode) Console.WriteLine("Deleting Key"); - lblNumber.Text = (--index).ToString(); + --index; DataTable cputable = dataSet1.DataTable1; RegistryKey cpukeydb = Registry.CurrentUser.CreateSubKey("CPUKey_DB"); if (variables.debugMode) Console.WriteLine("Index Row {0} | Index {1}", indexrow, index); @@ -199,7 +198,7 @@ public void deletekey(int indexrow) } else { - if (variables.debugMode) Console.WriteLine("Setting Deleted"); + if (variables.debugMode) Console.WriteLine("Setting deleted"); RegistryKey cpukeys = cpukeydb.CreateSubKey(cputable.Rows[indexrow][0].ToString()); foreach (string valueN in cpukeys.GetValueNames()) { @@ -212,8 +211,10 @@ public void deletekey(int indexrow) if (variables.debugMode) Console.WriteLine("Done"); } cputable.Rows.Remove(cputable.Rows[indexrow]); + lblNumber.Text = cputable.Rows.Count.ToString(); if (variables.debugMode) Console.WriteLine("Finished"); - this.Refresh(); + //this.Refresh(); // Uncomment if below is removed + MainForm.mainForm.restartCpuKeyDb(); // Fix the sorting in registry and table, there is probably a better way to do this } private void dataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e) @@ -309,7 +310,8 @@ public void ExportKey(string RegKey, string SavePath) { if (proc != null) proc.Dispose(); } - MessageBox.Show("Export is completed."); + Console.WriteLine("CPU Key Database Export Complete"); + Console.WriteLine(""); } enum STATES @@ -436,9 +438,11 @@ private void importReg(string regfile) if (getkey_s(entry.cpukey, dataSet1)) continue; - if (addkey_s(entry, dataSet1)) counter++; + if (addkey_s(entry, dataSet1, true, true)) counter++; } - Console.WriteLine("Done, added {0} keys", counter); + DataTable cputable = dataSet1.DataTable1; + lblNumber.Text = cputable.Rows.Count.ToString(); + Console.WriteLine("Added {0} keys", counter); Console.WriteLine(""); MainForm.mainForm.BeginInvoke(new Action(() => { @@ -452,28 +456,6 @@ private void importReg(string regfile) } #region Buttons - /// - /// Manual Add value - /// - /// - /// - private void btnAdd_Click(object sender, EventArgs e) - { - AddCpuKey myNewForm = new AddCpuKey(); - myNewForm.ShowDialog(); - if (myNewForm.DialogResult != DialogResult.OK) return; - regentries entry = new regentries(); - entry.kvcrc = myNewForm.kvcrc().ToString("X"); - entry.cpukey = myNewForm.cpukey(); - entry.serial = myNewForm.serial(); - entry.extra = myNewForm.motherboard(); - entry.dvdkey = myNewForm.dvdkey(); - entry.region = myNewForm.region(); - entry.osig = myNewForm.osig(); - addkey_s(entry, dataSet1); - lblNumber.Text = index.ToString(); - - } private void EditMobotoolStripMenuItem1_Click(object sender, EventArgs e) { string EdID = dataGridView1.CurrentRow.Cells[0].Value.ToString(); @@ -595,10 +577,10 @@ private void scan(string folder) } median = (counter) / textfiles; if (median == 0) median = 1; - percent = ((nandfiles + (textfiles - median)) * 100) / ((filePaths.Length - textfiles) * median); + percent = ((nandfiles + (textfiles - median)) * 100) / Math.Max((filePaths.Length - textfiles) * median, 1); if (percent > previous && percent < 100) { - if (percent % 5 == 0) Console.WriteLine("\rCompletion {0}%", percent); + if (percent % 5 == 0) Console.WriteLine("\rCompleted: {0}%", percent); Console.Out.Flush(); previous = percent; } @@ -641,7 +623,7 @@ private void scan(string folder) } catch (Exception ex) { - if (variables.debugMode) Console.WriteLine(nand.ToString() + " Balls"); + if (variables.debugMode) Console.WriteLine(nand.ToString()); if (variables.debugMode) Console.WriteLine(ex.ToString()); } @@ -699,11 +681,12 @@ private void scan(string folder) entry.region = nan.ki.region; entry.dvdkey = nan.ki.dvdkey; - addkey_s(entry, dataSet1); + addkey_s(entry, dataSet1, true, true); } found = false; } catch (Exception ex) { if (variables.debugMode) Console.WriteLine(ex.ToString()); } + lblNumber.Text = cputable.Rows.Count.ToString(); } else if (variables.debugMode) Console.WriteLine("2nd time veri failed"); } @@ -713,8 +696,7 @@ private void scan(string folder) } catch (Exception ex) { if (variables.debugMode) Console.WriteLine(ex.ToString()); } this.Refresh(); - Console.WriteLine("\rCompletion 100%"); - Console.WriteLine("Done"); + Console.WriteLine("\rCompleted: 100%"); Console.WriteLine(""); MainForm.mainForm.BeginInvoke(new Action(() => { @@ -755,7 +737,7 @@ private void scan_cpukey(string folder, string cpukey) percent = (i * 100) / (filePaths.Length); if (percent > previous && percent < 100) { - if (percent % 5 == 0) Console.WriteLine("\rCompletion {0}%", percent); + if (percent % 5 == 0) Console.WriteLine("\rCompleted: {0}%", percent); Console.Out.Flush(); previous = percent; } @@ -777,8 +759,7 @@ private void scan_cpukey(string folder, string cpukey) } catch (Exception ex) { if (variables.debugMode) Console.WriteLine(ex.ToString()); } this.Refresh(); - Console.WriteLine("\rCompletion 100%"); - Console.WriteLine("Done"); + Console.WriteLine("\rCompleted: 100%"); Console.WriteLine(""); MainForm.mainForm.BeginInvoke(new Action(() => { @@ -819,7 +800,7 @@ private void scan_kv(string folder, long crc) percent = (i * 100) / (filePaths.Length); if (percent > previous && percent < 100) { - if (percent % 5 == 0) Console.WriteLine("\rCompletion {0}%", percent); + if (percent % 5 == 0) Console.WriteLine("\rCompleted: {0}%", percent); Console.Out.Flush(); previous = percent; } @@ -838,8 +819,7 @@ private void scan_kv(string folder, long crc) } catch (Exception ex) { if (variables.debugMode) Console.WriteLine(ex.ToString()); } this.Refresh(); - Console.WriteLine("\rCompletion 100%"); - Console.WriteLine("Done"); + Console.WriteLine("\rCompleted: 100%"); Console.WriteLine(""); MainForm.mainForm.BeginInvoke(new Action(() => { diff --git a/J-Runner/Classes/HID.cs b/J-Runner/Classes/HID.cs index cea91ef..26b4ce5 100644 --- a/J-Runner/Classes/HID.cs +++ b/J-Runner/Classes/HID.cs @@ -314,7 +314,7 @@ private static void restart() } public static void program(ref ProgressBar pb) { - if (string.IsNullOrEmpty(variables.filename1)) { MessageBox.Show("No file was selected!", "Can't", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } + if (string.IsNullOrEmpty(variables.filename1)) { MessageBox.Show("No file was selected", "Can't", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (_deviceList.Count() != 0) _selectedDevice = _deviceList[0]; else { Console.WriteLine("Device Not Found"); return; } if (_selectedDevice.IsConnected) @@ -354,7 +354,7 @@ public static void program(ref ProgressBar pb) public static void ver(ref ProgressBar pb) { - if (string.IsNullOrEmpty(variables.filename1)) { MessageBox.Show("No file was selected!", "Can't", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } + if (string.IsNullOrEmpty(variables.filename1)) { MessageBox.Show("No file was selected", "Can't", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (_deviceList.Count() != 0) _selectedDevice = _deviceList[0]; else { Console.WriteLine("Device Not Found"); return; } if (_selectedDevice.IsConnected) diff --git a/J-Runner/Forms/UpdateAvailable.Designer.cs b/J-Runner/Forms/UpdateAvailable.Designer.cs new file mode 100644 index 0000000..26dd05e --- /dev/null +++ b/J-Runner/Forms/UpdateAvailable.Designer.cs @@ -0,0 +1,85 @@ + +namespace JRunner +{ + partial class UpdateAvailable + { + /// + /// 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(UpdateAvailable)); + this.SuccessWizard = new AeroWizard.WizardControl(); + this.SuccessPage = new AeroWizard.WizardPage(); + ((System.ComponentModel.ISupportInitialize)(this.SuccessWizard)).BeginInit(); + this.SuspendLayout(); + // + // SuccessWizard + // + this.SuccessWizard.CancelButtonText = "&Skip Update"; + this.SuccessWizard.FinishButtonText = "&Download and Install"; + this.SuccessWizard.Location = new System.Drawing.Point(0, 0); + this.SuccessWizard.Name = "SuccessWizard"; + this.SuccessWizard.NextButtonText = "&Download and Install"; + this.SuccessWizard.Pages.Add(this.SuccessPage); + this.SuccessWizard.Size = new System.Drawing.Size(554, 401); + this.SuccessWizard.TabIndex = 0; + this.SuccessWizard.Title = "J-Runner with Extras"; + this.SuccessWizard.TitleIcon = ((System.Drawing.Icon)(resources.GetObject("SuccessWizard.TitleIcon"))); + // + // SuccessPage + // + this.SuccessPage.AllowBack = false; + this.SuccessPage.IsFinishPage = true; + this.SuccessPage.Name = "SuccessPage"; + this.SuccessPage.Size = new System.Drawing.Size(507, 247); + this.SuccessPage.TabIndex = 0; + this.SuccessPage.Text = "Updates Available"; + // + // UpdateAvailable + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(554, 401); + this.ControlBox = false; + this.Controls.Add(this.SuccessWizard); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "UpdateAvailable"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "J-Runner with Extras"; + this.Load += new System.EventHandler(this.UpdateSuccess_Load); + ((System.ComponentModel.ISupportInitialize)(this.SuccessWizard)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private AeroWizard.WizardControl SuccessWizard; + private AeroWizard.WizardPage SuccessPage; + } +} \ No newline at end of file diff --git a/J-Runner/Forms/UpdateAvailable.cs b/J-Runner/Forms/UpdateAvailable.cs new file mode 100644 index 0000000..22b7c63 --- /dev/null +++ b/J-Runner/Forms/UpdateAvailable.cs @@ -0,0 +1,37 @@ +using System; +using System.Windows.Forms; + +namespace JRunner +{ + public partial class UpdateAvailable : Form + { + public UpdateAvailable() + { + InitializeComponent(); + SuccessWizard.Cancelling += WizardCancelled; + SuccessWizard.Finished += WizardFinished; + } + + private void UpdateSuccess_Load(object sender, EventArgs e) + { + // Make sure we're on top + bool top = TopMost; + TopMost = true; // Bring to front + TopMost = top; // Set it back + Activate(); + } + + private void WizardCancelled(object sender, EventArgs e) // No + { + Upd.allowUpdate = false; + Upd.cancelSource.Cancel(); + } + + private void WizardFinished(object sender, EventArgs e) // Yes + { + Upd.allowUpdate = true; + Upd.cancelSource.Cancel(); + this.Close(); + } + } +} diff --git a/J-Runner/CPUkeydb/AddCpuKey.resx b/J-Runner/Forms/UpdateAvailable.resx similarity index 53% rename from J-Runner/CPUkeydb/AddCpuKey.resx rename to J-Runner/Forms/UpdateAvailable.resx index 7f4b487..81948d3 100644 --- a/J-Runner/CPUkeydb/AddCpuKey.resx +++ b/J-Runner/Forms/UpdateAvailable.resx @@ -117,10 +117,503 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - True - + + + AAABAAoAMDAQAAEABABoBgAApgAAACAgEAABAAQA6AIAAA4HAAAQEBAAAQAEACgBAAD2CQAAMDAAAAEA + CACoDgAAHgsAACAgAAABAAgAqAgAAMYZAAAQEAAAAQAIAGgFAABuIgAAAAAAAAEAIACzEAAA1icAADAw + AAABACAAqCUAAIk4AAAgIAAAAQAgAKgQAAAxXgAAEBAAAAEAIABoBAAA2W4AACgAAAAwAAAAYAAAAAEA + BAAAAAAAgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDA + wAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAcAAAAAAAAAAAAAAAAAcAAABwAAAAAAAAAAcAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAcAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAcAAAcHAAAAAAAAAAAAAAAABwcHBwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAcAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP// + /////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA//////// + AAD///////8AAP///////wAA/gAf//4DAADwAAP//AcAAOAAAf/4DwAAwAAA//AfAADAAAD/8B8AAMD/ + wP/gPwAAwf/g/8B/AADB/+D/gP8AAMH/4P8A/wAAwf/g/wAPAADB/+D+AAcAAMH/4PwABwAAwf/g+AAD + AADB/+D4AAMAAP//4P//AwAA///g//+DAAD//+D//4MAAP//4P//gwAA///gf/4DAAD//+AAAAMAAP// + 4AAAAwAA///gAAAHAAD//+AAAAcAAP//4AAAHwAA////////AAD///////8AAP///////wAA//////// + AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP// + /////wAAKAAAACAAAABAAAAAAQAEAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACA + gACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + cAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAABwAAAABwAABwAAAAAABwAA + AAAHAAAAAABwAAAAAAAAAAAAAAAAAAAAcAAAAAAAAHAAAAcAcAAAAHAAAAAAAAAAAAAAAAAAAABwAAAA + AAAAAAAABwAAAAAAcAAABwAAAAAAcAAAAAAAAHAAAAAAAAAAAHAAAAAAAABwAAAAAAAAAAAAAAAAAAAA + cAAAAAAAAAAAAAAAAAAAAHAAd3d3d3cAAHAAAAAAAABwAAAAAAAAAABwAAAAAAAAcAAAAAAAAAAAAAAA + AAAAAHAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////////////////////////////////8Af/w8AB + /4OAAP8Hg+D+D4fw/h+H8Pwfh/D4B4fw8AOH8OAB//D/4f/w/+H/8P/h//AAAf/wAAH/8AAD//AAB/// + ////////////////////////////////////////KAAAABAAAAAgAAAAAQAEAAAAAACAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8A + AAD/AP8A//8AAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAd3AAAA + AAAAAAAAAAAAAAAAAHAAcABwBwAAAAB3cAAAAABwAAAAAAAAAAAHAHAAAAAAcAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAA//8AAP//AACB+QAAgPMAALznAAC8wQAAvMEAAPz9 + AAD8AQAA/AEAAP//AAD//wAA//8AAP//AAAoAAAAMAAAAGAAAAABAAgAAAAAAAAJAAAAAAAAAAAAAAAB + AAAAAQAAAAAAAAQEBAAJCQkADQ0NABMTEwAVFRUAGhoaAB8fHwAhISEAJSUlAC0tLQAwMDAAQ0NDAEdH + RwBJSUkATU1NAFBQUABaWloAYWFhAGRkZABtbW0AdXV1AHl5eQB9fX0AgICAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBQAAAAAA + AAAABg4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAABEAAAAA + AAAAAAAAAAAAAAAABQAAAAAACQAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAL + AAAAAAAFAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAA + AAAAAAAAAAAACQYGBgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAAAAAAAAAAAAAAAJAAAAAAAA + AAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAFAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAABIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMXAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAA + AAAAAAAAAA4AAAAACwsLCwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLCwsLCwsLCwkAAAAAAAMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAAAAAAAAAAAAAAAAABgDAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////wAA////////AAD///////8AAP// + /////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA//////// + AAD///////8AAP4AH//+AwAA8AAD//wHAADgAAH/+A8AAMAAAP/wHwAAwAAA//AfAADA/8D/4D8AAMH/ + 4P/AfwAAwf/g/4D/AADB/+D/AP8AAMH/4P8ADwAAwf/g/gAHAADB/+D8AAcAAMH/4PgAAwAAwf/g+AAD + AAD//+D//wMAAP//4P//gwAA///g//+DAAD//+D//4MAAP//4H/+AwAA///gAAADAAD//+AAAAMAAP// + 4AAABwAA///gAAAHAAD//+AAAB8AAP///////wAA////////AAD///////8AAP///////wAA//////// + AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AACgA + AAAgAAAAQAAAAAEACAAAAAAAAAQAAAAAAAAAAAAAAAEAAAABAAAAAAAACQkJAA8PDwATExMAFRUVAB4e + HgAiIiIAJycnACkpKQAvLy8AODg4AD09PQBDQ0MATk5OAFJSUgBXV1cAYGBgAHNzcwB0dHQAenp6AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAANBAAAAAAAAQsAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAEAAAAS + AAAADwAAAAAAAAAAAAAAAAAEAAAAAAAAAAAJAAAADAAAAAALAAAADwAAAAAAEwEAAAAAAAAAAAAADQAA + AAUAAAAAAAoAAAYAAAAAAAAAEwAAAAAAAAAAAAAAAAABAAAAAAAACgAABgAAAAAAAAATAAAAAAAAAAAA + AAAAABIAAAAAAAALAAAGAAAAAAAAABMAAAAAAAAAAAEAAAAAAAAEAAAAAAoAAAYAAAAAAAAAEwAAAAAA + AAAJAAAAAAAAAAABAAAACgAABgAAAAAAAAATAAAAAAAADQAAAAAAAAAAAAATAAAAAAAAAAAAAAAAABMA + AAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAAAEwAAAAAAAAAAAAAAAAAACQAABgAAAAAAAAAAAAAA + AAATAAAAAAAAAAAAAAAAAAAEAAAJAAAAAAAAAAAAAAAAABMAAAAPEBAQEBAQEBAQCwAAAAsAAAAAAAAA + AAAAAAAAEwAAAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAAAAAAAAAEAAAAA + AAAAAAAAAAAAABMAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////// + ////////////////////////8Af/w8AB/4OAAP8Hg+D+D4fw/h+H8Pwfh/D4B4fw8AOH8OAB//D/4f/w + /+H/8P/h//AAAf/wAAH/8AAD//AAB///////////////////////////////////////////KAAAABAA + AAAgAAAAAQAIAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAEAAAAAAAAFBQUACQkJABAQEAAVFRUAGhoaAB4e + HgAhISEAKysrACwsLAAwMDAANjY2AD4+PgBEREQASUlJAFVVVQBeXl4AZGRkAHR0dAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDu/g+Qit9o5Th8 + YgAAAABJRU5ErkJggigAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEKAQEBIgAAADAAAAAwAAAA + MAAAADAAAAAjAQEBCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmAAAAMAAAADAAAAAwAAAA + MAAAADAAAAAwAgICBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAiUBAQF5AAAAtwAAAOkAAAD+AAAA + /gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAOcAAAC0AQEBdQEBAR8AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAUYAAAD8AAAA + /gAAAP4AAAD+AAAA/gAAAP4BAQGvAwMDAQAAAAAAAAAAAAAAAAAAAAABAQElAQEBsgAAAP0AAAD/AAAA + /wAAAP4AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAPwBAQGlAQEB + GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEB + IQEBAesAAAD+AAAA/wAAAP8AAAD+AAAA/wEBAdoCAgIOAAAAAAAAAAAAAAAAAAAAAAEBATkAAADxAAAA + /gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA + /gAAAP4AAAD+AQEB6QEBASsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAgILAQEBzwAAAP4AAAD+AAAA/gAAAP4AAAD+AQEB8gICAioAAAAAAAAAAAAAAAAAAAAAAAAA + BQAAAN8AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAP4AAAD/AAAA + /wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wEBAdEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAQGlAAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD9AQEBUwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAALAAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD+AQEB+wAAAOQAAADkAQEB + 5AAAAOQBAQH1AAAA/gAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAP4CAgIwAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAXIAAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8BAQGKAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAP4AAAD+AAAA/gAAAP4AAAD+AQEB4AEBAWQBAQEgAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBGAEBAV0BAQHeAAAA/gAAAP4AAAD+AAAA/gAAAP4EBARAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBRAEBAfoAAAD+AAAA/gAAAP4AAAD+AAAA + /gEBAbwBAQEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA + UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQFOAAAA/wAAAP4AAAD/AAAA + /wAAAP4FBQU/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgIfAQEB7AAAAP8AAAD+AAAA + /wAAAP8AAAD+AQEB4AEBARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAP4AAAD/AAAA + /wAAAP4AAAD/AAAASwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA + /wAAAP4AAAD/AAAA/wAAAP4FBQU/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQkBAQHPAAAA + /wAAAP8AAAD+AAAA/wAAAP8AAAD3AQEBNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + LAAAAP4AAAD+AAAA/gAAAP4AAAD+AAAASwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAABHAAAA/gAAAP4AAAD+AAAA/gAAAP4FBQU/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEBAaQAAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4BAQGeAAAAQwAAAD8BAQEPAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAALAAAAP4AAAD/AAAA/wAAAP4AAAD/AAAASwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA/wAAAP4AAAD/AAAA/wAAAP4FBQU/AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgICcwEBAf8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8BAQH0AgIC + gwICAgIAAAAAAAAAAAAAAAAAAAAAAAAALAAAAP4AAAD/AAAA/wAAAP4AAAD/AAAASwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA/wAAAP4AAAD/AAAA/wAAAP4FBQU/AAAA + AAAAAAAAAAAAAAAAAAAAAAABAQFBAAAA/AAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA + /wAAAP8AAAD+AAAA/wICApwAAAAAAAAAAAAAAAAAAAAAAAAALAAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA + SwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA/gAAAP4AAAD+AAAA + /gAAAP4FBQU/AAAAAAAAAAAAAAAAAAAAAAEBASABAQHrAAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA + /gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4BAQFKAAAAAAAAAAAAAAAAAAAALAAAAP4AAAD/AAAA + /wAAAP4AAAD/AAAASwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA + /wAAAP4AAAD/AAAA/wAAAP4FBQU/AAAAAAAAAAAAAAAAAgICCgEBAc0AAAD/AAAA/wAAAP8AAAD+AAAA + /wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8BAQG4AAAAAAAAAAAAAAAAAQEB + JAEBAdIBAQHSAQEB0gEBAdIBAQHSAQEBPgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAABHAAAA/wAAAP4AAAD/AAAA/wAAAP4FBQU/AAAAAAAAAAAAAAAAAwMDeAICAtIBAQHSAQEB + 0gEBAdIBAQHSAQEB0gEBAdIBAQHSAQEB0gEBAdIBAQHdAAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD2AgIC + BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA/gAAAP4AAAD+AAAA/gAAAP4FBQU/AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBngAAAP4AAAD+AAAA + /gAAAP4AAAD+AgICLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA/wAAAP4AAAD/AAAA/wAAAP4FBQU/AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEB + RQAAAP8AAAD+AAAA/wAAAP8AAAD+AAAARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA/wAAAP4AAAD/AAAA + /wAAAP4FBQU/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQEBQQAAAP8AAAD+AAAA/wAAAP8AAAD+AAAARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA + /gAAAP4AAAD+AAAA/gAAAP4FBQU/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBewAAAP4AAAD+AAAA/gAAAP4AAAD+AAAARQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAABHAAAA/wAAAP4AAAD/AAAA/wAAAP4DAwOTBAQEcQMDA3EDAwNxAwMDcQMDA3EDAwNxAwMD + cQMDA3EDAwNxAwMDcQMDA3EDAwNxAwMDcQQEBHECAgKAAQEB8gAAAP8AAAD+AAAA/wAAAP8AAAD+AQEB + LgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA + /wAAAP4AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA + /wAAAP8AAAD3AQEBBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA + /wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA + /wAAAP8AAAD+AAAA/wAAAP8BAQGxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA/gAAAP4AAAD+AAAA + /gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA + /gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4BAQE+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA + /wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD+AAAA + /wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wEBAYYAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAABHAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA + /wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8BAQHeAAAAYAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAA + GAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABYAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP///////wAA////////AAD///////8A + AP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA/4B/ + //4BAAD4AAf//AEAAOAAAf/4AwAAwAAA//AHAACAAAB/8A8AAIAAAH/gHwAAgD8Af8AfAACA/8B/gD8A + AID/wH8AfwAAgP/AfwAfAACA/8B+AAcAAID/wHwABwAAgP/AeAADAACA/8BwAAMAAID/wHAAAQAA///A + f/8BAAD//8B//wEAAP//wH//AQAA///Af/8BAAD//8AAAAEAAP//wAAAAQAA///AAAADAAD//8AAAAMA + AP//wAAABwAA///AAAAPAAD//8AAAD8AAP///////wAA////////AAD///////8AAP///////wAA//// + ////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAoAAAAIAAA + AEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEKAAAA + HwAAACAAAAAgAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAABsAAAAgAAAAIAAAACAAAAAYAAAAAAAAAAAAAAAAAAAABAEBAVsAAACwAAAA + 6AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA9AAAAMMBAQF3AQEBEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAQFPAAAA/QAAAP8AAAD/AAAA/gEBAVUAAAAAAAAAAAEBARkAAADQAAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADrAQEBQgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICKQAAAPAAAAD/AAAA/wAAAP8BAQGLAAAAAAAAAAAAAAAAAAAA + qAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADqAQEB + CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQ4AAADXAAAA/wAAAP8AAAD/AQEBvAEBAQMAAAAAAAAA + AAAAAAAAAADHAAAA/wAAAP8AAAD+AAAArAEBAWMBAQFIAQEBQwEBAUMBAQFTAQEBhgAAAPAAAAD/AAAA + /wAAAP8DAwMpAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBsQAAAP8AAAD/AAAA/wAAAOEBAQEVAAAA + AAAAAAAAAAAAAAAAAAAAAMcAAAD/AAAA/wAAAN4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + hwAAAP8AAAD/AAAA/wQEBCoAAAAAAAAAAAAAAAAAAAAAAAAAAAICAn8AAAD/AAAA/wAAAP8AAAD3AQEB + NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxwAAAP8AAAD/AAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAACEAAAA/wAAAP8AAAD/BAQEKgAAAAAAAAAAAAAAAAAAAAABAQFNAAAA/QAAAP8AAAD/AAAA + /wEBAYwAAAArAAAABgAAAAAAAAAAAAAAAAAAAAAAAADHAAAA/wAAAP8AAADcAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAIQAAAD/AAAA/wAAAP8EBAQqAAAAAAAAAAAAAAAAAQEBKAEBAfAAAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAADoAgICRwAAAAAAAAAAAAAAAAAAAMcAAAD/AAAA/wAAANwAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAP8AAAD/AAAA/wQEBCoAAAAAAAAAAAEBAQ4AAADWAAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD1AQEBIQAAAAAAAAAAAAAAxwAAAP8AAAD/AAAA + 3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAA/wAAAP8AAAD/BAQEKgAAAAABAQECAQEB + sAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8BAQGGAAAAAAAAAAACAgIqAgIC + NwICAjcCAgIvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAD/AAAA/wAAAP8EBAQqAAAA + AAICAgkCAgI3AgICNwICAjcCAgI3AgICNwICAjcCAgI3AQEBVwAAAPwAAAD/AAAA/wEBAcEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAP8AAAD/AAAA + /wQEBCoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1AAAAP8AAAD/AAAA + 2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAA + /wAAAP8AAAD/BAQEKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQUAAADsAAAA + /wAAAP8AAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAIQAAAD/AAAA/wAAAP8CAgKvAgICoAICAqACAgKgAgICoAICAqACAgKgAgICoAICAqACAgKgAQEB + wQAAAP8AAAD/AAAA/wAAAMEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAhAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AQEBhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAACEAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPABAQEcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADWAAAAOgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAQAAAAEAAAABAAAAAQAAAA + EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////// + ///////////////////////8H//BwAH/gYAA/wOAAH4DgAB8B4fwfA+H8HgHh/BwA4fwYAGH8EABh/BA + Af/wf+H/8H/B//AAAf/wAAH/8AAB//AAA//wAA//////////////////////////////////////KAAA + ABAAAAAgAAAAAQAgAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAoAAAAQAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAEAAAAAYAAAAGAAAA + iwAAAOUAAAD/AAAA/wAAAPwAAADOAAAAUAAAAAAAAAAAAAAAAAAAAAABAQFaAAAA/gAAAOEBAQEVAAAA + WwAAAP8AAADqAAAAqgAAAKEAAAC2AAAA+wAAAPkBAQEMAAAAAAAAAAAAAAAwAAAA9QAAAPcBAQE1AAAA + AAAAAGMAAAD/AAAAbgAAAAAAAAAAAAAAAAAAAMIAAAD/AgICFQAAAAAAAAATAAAA3gAAAP8BAQF5AAAA + AQAAAAAAAABjAAAA/wAAAG4AAAAAAAAAAAAAAAAAAADBAAAA/wICAhUAAAADAAAAuwAAAP8AAAD/AAAA + /wAAAMkAAAAIAAAAPAEBAZsAAABCAAAAAAAAAAAAAAAAAAAAwQAAAP8CAgIVAgICPAEBAZsBAQGbAQEB + mwAAANQAAAD/AAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMEAAAD/AgICFQAAAAAAAAAAAAAA + AAAAAAAAAABxAAAA/wAAAGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBAAAA/wEBAdMBAQHPAQEB + zwEBAc8BAQHPAAAA7wAAAP8AAABRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAP8AAAD/AAAA + /wAAAP8AAAD/AAAA/wAAAP8AAADAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAIAAAA + CAAAAAgAAAAIAAAACAAAAAgAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAP//AADj+AAAAPAA + AABhAAAcQQAAHAAAABwAAAD8eAAA/AAAAPwAAAD8AwAA//8AAP//AAD//wAA + + AAABAAoAMDAQAAEABABoBgAApgAAACAgEAABAAQA6AIAAA4HAAAQEBAAAQAEACgBAAD2CQAAMDAAAAEA diff --git a/J-Runner/JRunner.csproj b/J-Runner/JRunner.csproj index 91e056b..d7e3561 100644 --- a/J-Runner/JRunner.csproj +++ b/J-Runner/JRunner.csproj @@ -428,12 +428,6 @@ - - Form - - - AddCpuKey.cs - Form @@ -621,10 +615,6 @@ EditMobo.cs Designer - - AddCpuKey.cs - Designer - CpuKeyDB.cs Designer diff --git a/J-Runner/MainForm.cs b/J-Runner/MainForm.cs index d66ee8f..63d0525 100644 --- a/J-Runner/MainForm.cs +++ b/J-Runner/MainForm.cs @@ -1971,7 +1971,7 @@ void nandinit(bool nomove = false, bool dontUpdateHackType = false) if (string.IsNullOrEmpty(variables.filename1)) return; if (!File.Exists(variables.filename1)) { - MessageBox.Show("No file was selected!", "Can't", MessageBoxButtons.OK, MessageBoxIcon.Error); + MessageBox.Show("No file was selected", "Can't", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } try @@ -2975,20 +2975,29 @@ private void cPUKeyDatabaseToolStripMenuItem_Click(object sender, EventArgs e) openCpuKeyDb(); } - CpuKeyDB mycpukeydb; + public CpuKeyDB cpukeydb; public void openCpuKeyDb() { if (Application.OpenForms.OfType().Any()) { - mycpukeydb.WindowState = FormWindowState.Normal; - mycpukeydb.Activate(); + cpukeydb.WindowState = FormWindowState.Normal; + cpukeydb.Activate(); } else { - mycpukeydb = new CpuKeyDB(); - mycpukeydb.Show(); - mycpukeydb.Location = new Point(Location.X + (Width - mycpukeydb.Width) / 2, Location.Y + 10); - mycpukeydb.FormClosed += new FormClosedEventHandler(CpuKeyDb_FormClosed); + cpukeydb = new CpuKeyDB(); + cpukeydb.Show(); + cpukeydb.Location = new Point(Location.X + (Width - cpukeydb.Width) / 2, Location.Y + 10); + cpukeydb.FormClosed += new FormClosedEventHandler(CpuKeyDb_FormClosed); + } + } + + public void restartCpuKeyDb() + { + if (Application.OpenForms.OfType().Any()) + { + cpukeydb.Close(); + openCpuKeyDb(); } } diff --git a/J-Runner/Nand/Nand.cs b/J-Runner/Nand/Nand.cs index 04bac74..6a55340 100644 --- a/J-Runner/Nand/Nand.cs +++ b/J-Runner/Nand/Nand.cs @@ -1094,12 +1094,10 @@ public static bool cpukeyverification(string filename, string key_s, bool fast = { byte[] Keyvault = null; - long size = 0; byte[] data; if (fast) data = Oper.openfile(filename, ref size, 0x4200 * 3); else data = Oper.returnportion(BadBlock.find_bad_blocks_X(filename, 2), 0, 40 * 1024); //2 * 0x4200); - byte[] key = Oper.StringToByteArray(key_s); if (data[0] == 0xFF && data[1] == 0x4F) @@ -2383,8 +2381,8 @@ public static bool imageknown(string filename, bool print = true) if (!ascii.GetString(data).Contains("Microsoft") && print) { if (variables.debugMode) Console.WriteLine(ascii.GetString(data)); - if (data[0] == 0x46 && data[1] == 0x57 && data[2] == 0x41 && data[3] == 0x00) Console.WriteLine("DemoN fw"); - else if (size != 0x40000) Console.WriteLine("Header is wrong.."); + if (data[0] == 0x46 && data[1] == 0x57 && data[2] == 0x41 && data[3] == 0x00) Console.WriteLine("DemoN FW"); + else if (size != 0x40000) Console.WriteLine("Header is wrong"); } if (data[0] == 0xFF && data[1] == 0x4F) { diff --git a/J-Runner/Panels/XeBuildPanel.cs b/J-Runner/Panels/XeBuildPanel.cs index 9b3b6e0..e52d3cd 100644 --- a/J-Runner/Panels/XeBuildPanel.cs +++ b/J-Runner/Panels/XeBuildPanel.cs @@ -1231,13 +1231,13 @@ public void createxebuild_v2(bool custom, Nand.PrivateN nand, bool fullDataClean loadFil(ref variables.filename1, true); if (string.IsNullOrWhiteSpace(variables.filename1)) { - MessageBox.Show("No file was selected!", "Can't", MessageBoxButtons.OK, MessageBoxIcon.Error); + MessageBox.Show("No file was selected", "Can't", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } if (!File.Exists(variables.filename1)) { - MessageBox.Show("File is missing. Ensure it wasn't moved and app can access it.", "Can't", MessageBoxButtons.OK, MessageBoxIcon.Error); + MessageBox.Show("File is missing\n\nEnsure that it was not moved and the program can access it", "Can't", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (Path.GetExtension(variables.filename1) != ".bin") diff --git a/J-Runner/Resources/Build.txt b/J-Runner/Resources/Build.txt index 495db45..c33b60f 100644 --- a/J-Runner/Resources/Build.txt +++ b/J-Runner/Resources/Build.txt @@ -1 +1 @@ -09-26-2022 05:00:39 \ No newline at end of file +10-06-2022 03:04:40 \ No newline at end of file