diff --git a/BizHawk.Client.Common/config/Config.cs b/BizHawk.Client.Common/config/Config.cs index c12805b95b..db399bae59 100644 --- a/BizHawk.Client.Common/config/Config.cs +++ b/BizHawk.Client.Common/config/Config.cs @@ -312,7 +312,8 @@ namespace BizHawk.Client.Common public RecentFiles RecentLua = new RecentFiles(8); public RecentFiles RecentLuaSession = new RecentFiles(8); public bool DisableLuaScriptsOnLoad = false; - public bool ReturnAllIfNoneSelected = true; + public bool ToggleAllIfNoneSelected = true; + public bool RemoveRegisteredFunctionsOnToggle = true; public bool RunLuaDuringTurbo = true; // Watch Settings diff --git a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Gui.cs b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Gui.cs index a469ca8848..4b65078cfe 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Gui.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Gui.cs @@ -614,7 +614,7 @@ namespace BizHawk.Client.EmuHawk } var font = new Font(GlobalWin.DisplayManager.CustomFonts.Families[index], 8, FontStyle.Regular, GraphicsUnit.Pixel); Size sizeOfText = g.MeasureString(message, font, 0, StringFormat.GenericTypographic).ToSize(); - Rectangle rect = new Rectangle(new Point(x, y), sizeOfText + new Size(1, 1)); + Rectangle rect = new Rectangle(new Point(x, y), sizeOfText + new Size(1, 0)); g.FillRectangle(GetBrush(backcolor ?? DefaultTextBackground.Value), rect); g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit; g.DrawString(message, font, GetBrush(forecolor ?? DefaultForeground), x, y); diff --git a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.Designer.cs b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.Designer.cs index 5d9958e786..e4a50a9214 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.Designer.cs @@ -70,6 +70,8 @@ this.RegisteredFunctionsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.SettingsSubMenu = new System.Windows.Forms.ToolStripMenuItem(); this.DisableScriptsOnLoadMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.ReturnAllIfNoneSelectedMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.RemoveRegisteredFunctionsOnToggleMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.HelpSubMenu = new System.Windows.Forms.ToolStripMenuItem(); this.FunctionsListMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.OnlineDocsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -101,7 +103,6 @@ this.PathName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.imageList1 = new System.Windows.Forms.ImageList(this.components); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); - this.ReturnAllIfNoneSelectedMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.ScriptListContextMenu.SuspendLayout(); this.menuStrip1.SuspendLayout(); this.ConsoleContextMenu.SuspendLayout(); @@ -454,7 +455,8 @@ // this.SettingsSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.DisableScriptsOnLoadMenuItem, - this.ReturnAllIfNoneSelectedMenuItem}); + this.ReturnAllIfNoneSelectedMenuItem, + this.RemoveRegisteredFunctionsOnToggleMenuItem}); this.SettingsSubMenu.Name = "SettingsSubMenu"; this.SettingsSubMenu.Size = new System.Drawing.Size(58, 20); this.SettingsSubMenu.Text = "&Settings"; @@ -463,10 +465,24 @@ // DisableScriptsOnLoadMenuItem // this.DisableScriptsOnLoadMenuItem.Name = "DisableScriptsOnLoadMenuItem"; - this.DisableScriptsOnLoadMenuItem.Size = new System.Drawing.Size(213, 22); + this.DisableScriptsOnLoadMenuItem.Size = new System.Drawing.Size(278, 22); this.DisableScriptsOnLoadMenuItem.Text = "Disable Scripts on Load"; this.DisableScriptsOnLoadMenuItem.Click += new System.EventHandler(this.DisableScriptsOnLoadMenuItem_Click); // + // ReturnAllIfNoneSelectedMenuItem + // + this.ReturnAllIfNoneSelectedMenuItem.Name = "ReturnAllIfNoneSelectedMenuItem"; + this.ReturnAllIfNoneSelectedMenuItem.Size = new System.Drawing.Size(278, 22); + this.ReturnAllIfNoneSelectedMenuItem.Text = "Toggle All if None Selected"; + this.ReturnAllIfNoneSelectedMenuItem.Click += new System.EventHandler(this.ToggleAllIfNoneSelectedMenuItem_Click); + // + // RemoveRegisteredFunctionsOnToggleMenuItem + // + this.RemoveRegisteredFunctionsOnToggleMenuItem.Name = "RemoveRegisteredFunctionsOnToggleMenuItem"; + this.RemoveRegisteredFunctionsOnToggleMenuItem.Size = new System.Drawing.Size(278, 22); + this.RemoveRegisteredFunctionsOnToggleMenuItem.Text = "Remove Registered Functions on Toggle"; + this.RemoveRegisteredFunctionsOnToggleMenuItem.Click += new System.EventHandler(this.RemoveRegisteredFunctionsOnToggleMenuItem_Click); + // // HelpSubMenu // this.HelpSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { @@ -791,13 +807,6 @@ this.splitContainer1.SplitterDistance = 280; this.splitContainer1.TabIndex = 7; // - // ReturnAllIfNoneSelectedMenuItem - // - this.ReturnAllIfNoneSelectedMenuItem.Name = "ReturnAllIfNoneSelectedMenuItem"; - this.ReturnAllIfNoneSelectedMenuItem.Size = new System.Drawing.Size(213, 22); - this.ReturnAllIfNoneSelectedMenuItem.Text = "Return All if None Selected"; - this.ReturnAllIfNoneSelectedMenuItem.Click += new System.EventHandler(this.ReturnAllIfNoneSelectedMenuItem_Click); - // // LuaConsole // this.AllowDrop = true; @@ -909,5 +918,6 @@ private System.Windows.Forms.SplitContainer splitContainer1; private System.Windows.Forms.ImageList imageList1; private System.Windows.Forms.ToolStripMenuItem ReturnAllIfNoneSelectedMenuItem; + private System.Windows.Forms.ToolStripMenuItem RemoveRegisteredFunctionsOnToggleMenuItem; } } \ No newline at end of file diff --git a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs index a46dc789af..f65226a2b7 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs @@ -738,7 +738,7 @@ namespace BizHawk.Client.EmuHawk private void ToggleScriptMenuItem_Click(object sender, EventArgs e) { - var files = !SelectedFiles.Any() && Global.Config.ReturnAllIfNoneSelected ? _luaList : SelectedFiles; + var files = !SelectedFiles.Any() && Global.Config.ToggleAllIfNoneSelected ? _luaList : SelectedFiles; foreach (var item in files) { item.Toggle(); @@ -780,6 +780,8 @@ namespace BizHawk.Client.EmuHawk LuaImp.CallExitEvent(item.Thread); item.Stop(); + if (Global.Config.RemoveRegisteredFunctionsOnToggle) + GlobalWin.Tools.LuaConsole.LuaImp.RegisteredFunctions.ClearAll(); } } @@ -955,7 +957,8 @@ namespace BizHawk.Client.EmuHawk private void OptionsSubMenu_DropDownOpened(object sender, EventArgs e) { DisableScriptsOnLoadMenuItem.Checked = Global.Config.DisableLuaScriptsOnLoad; - ReturnAllIfNoneSelectedMenuItem.Checked = Global.Config.ReturnAllIfNoneSelected; + ReturnAllIfNoneSelectedMenuItem.Checked = Global.Config.ToggleAllIfNoneSelected; + RemoveRegisteredFunctionsOnToggleMenuItem.Checked = Global.Config.RemoveRegisteredFunctionsOnToggle; } private void DisableScriptsOnLoadMenuItem_Click(object sender, EventArgs e) @@ -963,9 +966,14 @@ namespace BizHawk.Client.EmuHawk Global.Config.DisableLuaScriptsOnLoad ^= true; } - private void ReturnAllIfNoneSelectedMenuItem_Click(object sender, EventArgs e) + private void ToggleAllIfNoneSelectedMenuItem_Click(object sender, EventArgs e) { - Global.Config.ReturnAllIfNoneSelected ^= true; + Global.Config.ToggleAllIfNoneSelected ^= true; + } + + private void RemoveRegisteredFunctionsOnToggleMenuItem_Click(object sender, EventArgs e) + { + Global.Config.RemoveRegisteredFunctionsOnToggle ^= true; } #endregion diff --git a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.resx b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.resx index 59a410b01c..7ce54e6e5b 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.resx +++ b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.resx @@ -154,70 +154,70 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACK + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACG DgAAAk1TRnQBSQFMAgEBAwEAASABAAEgAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA - AwABEAMAAQEBAAEgBgABECoAAYcBdAF8AeUBsgG0AdIB/wG7Ab4B1wH/AYgBdgF+AecwAAGHAXwBdAHl - AbIB0gG2Af8BuwHXAb4B/wGIAX4BdgHnMAABjwF2AXQB5QHSAb4BsgH/AdcBxQG7Af8BkAF3AXYB52gA - AW8BagGUAfUBOgFBAZcB/wEGAREBhwH/AQcBEQGHAf8BBQEQAYcB/wEMARYBiAH/AQ8BGQGJAf8BZwFm - AZkB+SAAAW8BlAFxAfUBOgGXAUYB/wEGAYcBFQH/AQcBhwEWAf8BBQGHARMB/wEMAYgBGgH/AQ8BiQEd - Af8BZwGZAWYB+SAAAZwBfAFnAfUBlwFcAToB/wGHATQBBgH/AYcBNQEHAf8BhwEzAQUB/wGIATgBDAH/ - AYkBOwEPAf8BngF0AWIB+VwAATUBPQGYAf8BMgE6AZgB/wGwAbIBywH/AdoB2wHaAf8C0QHVAf8BywHM - AdIB/wHEAccBzgH/AVkBXwGlAf8BSwFNAYgB+QEqATMBjwH/GAABJwGSATMB/wEyAZgBPgH/AbABywGz - Af8B2wLaAf8B0QHVAdIB/wHLAdIBywH/AcUBzgHEAf8BWQGlAWIB/wFLAYgBTgH5ASoBjwE1Af8YAAGS - AU0BJwH/AZgBVwEyAf8BywG6AbAB/wLaAdsB/wHVAdMB0QH/AdIBzQHLAf8BzgHGAcQB/wGlAXQBWQH/ - AY0BZAFGAfkBjwFNASoB/1QAAj8BkQH9AYQBcAF1AeMC/gH9Af8B/gH9AfUB/wL3AfMB/wHvAu4B/wLt - AesB/wHZAtsB/wHjAeQB4gH/AsABzAH/AXYBaQF5Ae0BSAFLAYwB+xAAAT8BkQE/Af0BhAF1AXAB4wH/ - Af4C/wH+AfUB/QH/AfcB8wH2Af8C7gHvAf8B7QHrAe0B/wLbAdkB/wHkAeIB4wH/AcABzAHCAf8BdgF5 - AWkB7QFIAYwBTgH7EAABkwFRAT0B/QGKAXEBcAHjAf4D/wH1AfsB/gH/AfMB9QH3Af8B7gHvAe4B/wHr - AewB7QH/AdsB2QHaAf8C4gHkAf8BzAHFAcAB/wGHAW8BaAHtAY8BXQFFAftMAAFyAW8BkAHzAYUBdwGG - AesF/wH+Af0X/wH+Af8B8AHvAfAB/wHPAdAB1gH/AWwBYQF2Ae0BdQFrAYMB7wgAAXIBkAFwAfMBhQGG - AXkB6wX/Af0G/wHjAfAB4wH/AZwBzQGcCv8B/gL/Ae8C8AH/Ac8B1gHPAf8BbAF2AWMB7QF1AYMBawHv - CAABmgF5AWgB8wGWAXwBdgHrBP8B/Rf/Af4D/wLjAeAB/wHPAckBxwH/AYQBaQFfAe0BjwF0AWkB70gA - AWsBZgGhAfkD/iX/AfAB8gHwAf8CxgHNAf8BSAFDAYQB+QgAAWsBoQFmAfkQ/wHcAe0B3AH/ARIBegES - Af8BgwHBAYMN/wHyAfEB8AH/AccBzgHIAf8BSAGEAUkB+QgAAaUBfgFmAfkM/wHhAc0BvgH/Ab4BkgGN - Af8B9wHxAe8B/wH7AfgB9wH/AcEBmAGPAf8B6gHaAdEF/wHlAeIB5gH/Ac4BygHHAf8BiQFeAUMB+UQA - AYQBfQGeAfMBiQF7AY4B7Qj/AvUB+wH/AW4BagHUAf8BoQGfAecB/wGjAaEB5gH/AaIBoQHlAf8BlAGR - AeEB/wGeAZwB5gX/AfkB+AH3Af8B5wHkAd4B/wFgAV4BhQH1AVsBXQGYAfsBhAGeAX4B8wGJAY8BfwHt - EP8B5AHxAeQB/wECAXYBAgH/ARIBfAESAf8BnAHOAZwJ/wH5AfcB+QH/AeYB3gHnAf8BYAGFAWUB9QFb - AZgBXQH7AacBiAF7AfMBnQGCAXsB7Qz/Aa4BdwFVAf8BWgIBAf8B+AH1AfIB/wH6AfcB9QH/AVoCAQH/ - AbMBfAFbBf8B8QH0AfUB/wHeAeYB5wH/AY0BaQFYAfUBmwFpAVgB+0AAAYIBiAHKAf8B0AHSAe0J/wL1 - AfoB/wE8ATkBuwH/AWgBZQHeAf8BZQFhAdgB/wFgAVwB0wH/AVQBTwHRAf8BogGhAekF/wL5AfgB/wH8 - AfsB6gH/AaMBpgG+Af8BRAFLAaAB/wGCAcoBigH/AdAB7QHUEf8B4gHwAeIB/wEDAXcBAwH/AQEBdwEB - Af8BEgGEARIB/wGYAcwBmAX/AfkB+AH5Af8B/AHqAfoB/wGjAb4BpQH/AUQBoAFPAf8BygGcAYIB/wHt - AdsB0A3/AboBjAFrAf8BjQEjAQEC/wL+Af8D/gH/AY0BIgEBAf8BuwGJAWkF/wHyAfQB9QH/AeoB9QH8 - Af8BvgGsAaMB/wGgAWUBRAH/QAABdQF7AcIB/wHlAeYB9An/AvcB+wH/AUsBSAHDAf8BdgF0AeMB/wFx - AW4B3QH/AWwBaQHYAf8BYAFbAdMB/wGrAakB6gX/A/kB/wH+AfsB7wH/AbQBtgHFAf8BQgFKAZ8B/wF1 - AcIBgQH/AeUB9AHnEf8B4gHwAeIB/wECAXkBAgH/AQEBewEBAf8BAQFzAQEB/wESAYQBEgH/AfoB/AH6 - Af8D+QH/Af4B7wH+Af8BtAHFAbYB/wFCAZ8BTQH/AcIBkwF1Af8B9AHrAeUN/wG5AYwBbAH/AacBOQEM - Af8B+wH5AfgB/wH7AfoB+QH/AacBOQEMAf8BvQGMAWwF/wP0Af8B7wH6Af4B/wHFAboBtAH/AZ8BYwFC - Af9AAAFxAXgBvQH/AtoB7wn/AvcB+wH/AU8BTAHHAf8BfAF6AeoB/wF3AXYB4wH/AXQBcgHfAf8BZwFk - AdoB/wGtAasB6wX/AvoB+AH/Af0B/AHuAf8BnQGgAbsB/wFKAVIBowH/AXEBvQF5Af8B2gHvAd4R/wHi - AfAB4gH/AQMBeQEDAf8BAQFxAQEB/wEtAY4BLQH/AeIB8AHiBf8B+gH4AfoB/wH9Ae4B+wH/AZ0BuwGh - Af8BSgGjAVMB/wG9AY4BcQH/Ae8B4wHaDf8BtwGIAWcB/wHEAUgBJQH/Av0B/AH/AfwB+gH5Af8BxgFL - AScB/wHCAY8BcQX/AfIB9QH3Af8B7gH3Af0B/wG7AagBnQH/AaMBaQFKAf9AAAGEAXoBkQHvAZABhgGe - AfEI/wL2AfsB/wFMAUgBxQH/AXsBegHrAf8BdwF2AeQB/wF1AXIB4QH/AWUBYgHbAf8BqQGnAesF/wL7 - AfkB/wH7AfwB7gH/AUoBTAGQAfsBfwF0AYsB7wGEAZEBegHvAZABngGKAfEQ/wHiAfAB4gH/AQEBbwEB - Af8BKQGHASkB/wHnAfMB5wn/AfsB+QH7Af8B/AHuAfkB/wFKAZABUAH7AX8BiwF3Ae8BnQGBAXgB7wGq - AY4BhQHxDP8BwQGXAXsB/wGkAT8BFwH/Af0B+wH6Af8B/AH6AfkB/wGTAToBEAH/AcwBqQGUBf8B9AH3 - AfkB/wHuAfUB/AH/AZMBXQFHAfsBlwF6AXMB70QAAXwBgQHPCf8C8wH5Af8BSgFHAbkB/wGHAYYB1gH/ - AYcBhQHVAf8BhwGFAdUB/wFmAWMByAH/AW4BbQHMBv8B/gH8Af8CzgHXAf8BOgFCAZgB/wgAAXwBzwGN - Ef8B0wHoAdMB/wElAYcBJQH/AeIB8AHiDf8B/gH8Av8BzgHXAdAB/wE6AZgBRAH/CAABzwGhAXwp/wH7 - A/8B1wHSAc4B/wGYAVsBOgH/SAABiwGHAbgB+QGaAY4BqQHxJP8B/AH7AfYB/wE4AUABlgH/AYMBdAGC - AekIAAGLAbgBigH5AZoBqQGVAfEM/wH6AfwB+gH/Ae8B9gHvEf8B/AH2AfwB/wE4AZYBQgH/AYMBggFz - AekIAAG9AZYBhgH5AbQBmwGOAfEk/wH1AfoB/AH/AZYBWQE4Af8BkwF5AXMB6UwAAYMBhwHIAf0BlAGD - AY0B6Rz/AfIB9QH4Af8BXgFhAYcB9QFxAW4BlwH1EAABgwHIAYwB/QGUAY0BgwHpHP8B9AH4AfIB/wFe - AYcBYQH1AXEBlwF1AfUQAAHKAaEBgQH9AZ4BiQGDAekc/wH4AvIB/wGPAWcBVgH1AZ8BfAFpAfVUAAGF - AYgBwgH7AZMBjwHEAfkC0wH3Af8B8QHwAfsB/wH2AfcC/wH3AfgB/QH/AeQB5wHzAf8BgAF3AY8B7wF8 - AXYBkQHzAYoBewGJAesYAAGFAcIBjAH7AZMBxAGZAfkB0wH3AdoB/wHwAfsB8wH/AfYB/wH3Af8B9wH9 - AfgB/wHkAfMB5AH/AYABjwF3Ae8BfAGRAXcB8wGKAYkBewHrGAABxQGXAYIB+wHIAagBjgH5AfcB4wHT - Af8B+wH2AfAC/wH5AfYB/wH9AfkB9wH/AfMB6AHkAf8BmwF9AXQB7wGbAX4BcwHzAZgBgAF6AetcAAGQ - AYEBkgHrAY0BkwHXAf8BjgGUAd0B/wGPAZUB4AH/AY0BlAHbAf8BmgGfAdoB/wGJAXgBgQHnJAABkAGS - AYMB6wGNAdcBlgH/AY4B3QGYAf8BjwHgAZkB/wGNAdsBlgH/AZoB2gGiAf8BiQGBAXsB5yQAAaIBiAGB - AesB1wGoAY0B/wHdAawBjgH/AeABrQGPAf8B2wGpAY0B/wHaAbIBmgH/AZMBfgF3AedUAAFCAU0BPgcA - AT4DAAEoAwABQAMAARADAAEBAQABAQUAAYAXAAP/AQAB/AE/AfwBPwH8AT8CAAHwAQ8B8AEPAfABDwIA - AeABBwHgAQcB4AEHAgABwAEDAcABAwHAAQMCAAGAAQEBgAEBAYABAQIAAYABAQGAAQEBgAEBKgABgAEB - AYABAQGAAQECAAGAAQEBgAEBAYABAQIAAcABAwHAAQMBwAEDAgAB4AEHAeABBwHgAQcCAAHwAR8B8AEf - AfABHwIACw== + AwABEAMAAQEBAAEgBgABECoAAXwBTAFRAeUBsgG0AdIB/wG7Ab4B1wH/AX0BUQFUAecwAAF8AVEBTAHl + AbIB0gG2Af8BuwHXAb4B/wF9AVQBUQHnMAABgAFNAUwB5QHSAb4BsgH/AdcBxQG7Af8BgQJRAedoAAFv + AVsBfgH1ATwBQwGXAf8BCAETAYcB/wEJARMBhwH/AQcBEgGHAf8BDgEYAYgB/wERARsBiQH/AWkBXgGL + AfkgAAFvAX4BYgH1ATwBlwFIAf8BCAGHARcB/wEJAYcBGAH/AQcBhwEVAf8BDgGIARwB/wERAYkBHwH/ + AWkBiwFeAfkgAAGTAWoBWAH1AZcBXgE8Af8BhwE2AQgB/wGHATcBCQH/AYcBNQEHAf8BiAE6AQ4B/wGJ + AT0BEQH/AZgBaAFaAflcAAE3AT8BmAH/ATQBPAGYAf8BsAGyAcsB/wHaAdsB2gH/AtEB1QH/AcsBzAHS + Af8BxAHHAc4B/wFbAWEBpQH/AU0BRQF9AfkBLAE1AY8B/xgAASkBkgE1Af8BNAGYAUAB/wGwAcsBswH/ + AdsC2gH/AdEB1QHSAf8BywHSAcsB/wHFAc4BxAH/AVsBpQFkAf8BTQF9AUYB+QEsAY8BNwH/GAABkgFP + ASkB/wGYAVkBNAH/AcsBugGwAf8C2gHbAf8B1QHTAdEB/wHSAc0BywH/Ac4BxgHEAf8BpQF2AVsB/wGL + AVwBPgH5AY8BTwEsAf9UAAFBAT8BjQH9AXgBRwFKAeMC/gH9Af8B/gH9AfUB/wL3AfMB/wHvAu4B/wLt + AesB/wHZAtsB/wHjAeQB4gH/AsABzAH/AXQBUQFcAe0BTAFJAYQB+xAAAUEBjQE/Af0BeAFKAUcB4wH/ + Af4C/wH+AfUB/QH/AfcB8wH2Af8C7gHvAf8B7QHrAe0B/wLbAdkB/wHkAeIB4wH/AcABzAHCAf8BdAFc + AVEB7QFMAYQBSwH7EAABkwFNAT0B/QF8AUgBRwHjAf4D/wH1AfsB/gH/AfMB9QH3Af8B7gHvAe4B/wHr + AewB7QH/AdsB2QHaAf8C4gHkAf8BzAHFAcAB/wGAAVIBUAHtAY0BWQFDAftMAAFyAVwBdwHzAX8BVgFg + AesF/wH+Af0X/wH+Af8B8AHvAfAB/wHPAdAB1gH/AWsBRwFaAe0BcwFRAWcB7wgAAXIBdwFdAfMBfwFg + AVkB6wX/Af0G/wHjAfAB4wH/AZwBzQGcCv8B/gL/Ae8C8AH/Ac8B1gHPAf8BawFaAUkB7QFzAWcBUQHv + CAABkgFkAVYB8wGJAVoBVQHrBP8B/Rf/Af4D/wLjAeAB/wHPAckBxwH/AX4BUQFGAe0BhAFcAVAB70gA + AWsBXgGRAfkD/iX/AfAB8gHwAf8CxgHNAf8BSgE9AXgB+QgAAWsBkQFeAfkQ/wHcAe0B3AH/ARQBfAEU + Af8BgwHBAYMN/wHyAfEB8AH/AccBzgHIAf8BSgF4AUEB+QgAAZ4BcgFeAfkM/wHhAc0BvgH/Ab4BkgGN + Af8B9wHxAe8B/wH7AfgB9wH/AcEBmAGPAf8B6gHaAdEF/wHlAeIB5gH/Ac4BygHHAf8BhwFXAT0B+UQA + AYABaAGCAfMBgQFdAWoB7Qj/AvUB+wH/AXABbAHUAf8BoQGfAecB/wGjAaEB5gH/AaIBoQHlAf8BlAGR + AeEB/wGeAZwB5gX/AfkB+AH3Af8B5wHkAd4B/wFgAVABcgH1AV0BWQGQAfsBgAGCAWgB8wGBAWsBXgHt + EP8B5AHxAeQB/wEEAXgBBAH/ARQBfgEUAf8BnAHOAZwJ/wH5AfcB+QH/AeYB3gHnAf8BYAFyAVUB9QFd + AZABWQH7AZsBcAFmAfMBjwFhAV0B7Qz/Aa4BeQFXAf8BXAIDAf8B+AH1AfIB/wH6AfcB9QH/AVwCAwH/ + AbMBfgFdBf8B8QH0AfUB/wHeAeYB5wH/AYgBWgFNAfUBmQFhAVQB+0AAAYIBiAHKAf8B0AHSAe0J/wL1 + AfoB/wE+ATsBuwH/AWoBZwHeAf8BZwFjAdgB/wFiAV4B0wH/AVYBUQHRAf8BogGhAekF/wL5AfgB/wH8 + AfsB6gH/AaMBpgG+Af8BRgFNAaAB/wGCAcoBigH/AdAB7QHUEf8B4gHwAeIB/wEFAXkBBQH/AQMBeQED + Af8BFAGEARQB/wGYAcwBmAX/AfkB+AH5Af8B/AHqAfoB/wGjAb4BpQH/AUYBoAFRAf8BygGcAYIB/wHt + AdsB0A3/AboBjAFtAf8BjQElAQMC/wL+Af8D/gH/AY0BJAEDAf8BuwGJAWsF/wHyAfQB9QH/AeoB9QH8 + Af8BvgGsAaMB/wGgAWcBRgH/QAABdwF9AcIB/wHlAeYB9An/AvcB+wH/AU0BSgHDAf8BeAF2AeMB/wFz + AXAB3QH/AW4BawHYAf8BYgFdAdMB/wGrAakB6gX/A/kB/wH+AfsB7wH/AbQBtgHFAf8BRAFMAZ8B/wF3 + AcIBgQH/AeUB9AHnEf8B4gHwAeIB/wEEAXsBBAH/AQMBfQEDAf8BAwF1AQMB/wEUAYQBFAH/AfoB/AH6 + Af8D+QH/Af4B7wH+Af8BtAHFAbYB/wFEAZ8BTwH/AcIBkwF3Af8B9AHrAeUN/wG5AYwBbgH/AacBOwEO + Af8B+wH5AfgB/wH7AfoB+QH/AacBOwEOAf8BvQGMAW4F/wP0Af8B7wH6Af4B/wHFAboBtAH/AZ8BZQFE + Af9AAAFzAXoBvQH/AtoB7wn/AvcB+wH/AVEBTgHHAf8BfgF8AeoB/wF5AXgB4wH/AXYBdAHfAf8BaQFm + AdoB/wGtAasB6wX/AvoB+AH/Af0B/AHuAf8BnQGgAbsB/wFMAVQBowH/AXMBvQF7Af8B2gHvAd4R/wHi + AfAB4gH/AQUBewEFAf8BAwFzAQMB/wEvAY4BLwH/AeIB8AHiBf8B+gH4AfoB/wH9Ae4B+wH/AZ0BuwGh + Af8BTAGjAVUB/wG9AY4BcwH/Ae8B4wHaDf8BtwGIAWkB/wHEAUoBJwH/Av0B/AH/AfwB+gH5Af8BxgFN + ASkB/wHCAY8BcwX/AfIB9QH3Af8B7gH3Af0B/wG7AagBnQH/AaMBawFMAf9AAAF+AVwBcQHvAYcBawF8 + AfEI/wL2AfsB/wFOAUoBxQH/AX0BfAHrAf8BeQF4AeQB/wF3AXQB4QH/AWcBZAHbAf8BqQGnAesF/wL7 + AfkB/wH7AfwB7gH/AU0BSgGIAfsBeAFcAWoB7wF+AXEBXAHvAYcBfAFsAfEQ/wHiAfAB4gH/AQMBcQED + Af8BKwGHASsB/wHnAfMB5wn/AfsB+QH7Af8B/AHuAfkB/wFNAYgBTAH7AXgBagFcAe8BkAFlAVwB7wGe + AXABagHxDP8BwQGXAX0B/wGkAUEBGQH/Af0B+wH6Af8B/AH6AfkB/wGTATwBEgH/AcwBqQGUBf8B9AH3 + AfkB/wHuAfUB/AH/AZEBWQFFAfsBjQFcAVsB70QAAX4BgQHPCf8C8wH5Af8BTAFJAbkB/wGHAYYB1gH/ + AYcBhQHVAf8BhwGFAdUB/wFoAWUByAH/AXABbwHMBv8B/gH8Af8CzgHXAf8BPAFEAZgB/wgAAX4BzwGN + Ef8B0wHoAdMB/wEnAYcBJwH/AeIB8AHiDf8B/gH8Av8BzgHXAdAB/wE8AZgBRgH/CAABzwGhAX4p/wH7 + A/8B1wHSAc4B/wGYAV0BPAH/SAABiQF8AagB+QGSAXABiQHxJP8B/AH7AfYB/wE6AUIBlgH/AXoBUgFc + AekIAAGJAagBfgH5AZIBiQF5AfEM/wH6AfwB+gH/Ae8B9gHvEf8B/AH2AfwB/wE6AZYBRAH/AXoBXAFR + AekIAAG3AYgBewH5AaUBegFwAfEk/wH1AfoB/AH/AZYBWwE6Af8BgwFVAVEB6UwAAoMBwAH9AYQBXQFj + Aekc/wHyAfUB+AH/AV4BUwFzAfUBcQFeAYEB9RAAAYMBwAGIAf0BhAFjAV0B6Rz/AfQB+AHyAf8BXgFz + AVMB9QFxAYEBZAH1EAABxgGdAX8B/QGLAV8BXQHpHP8B+ALyAf8BiQFYAUsB9QGXAWoBWgH1VAABgwGA + AbUB+wGRAYMBsgH5AtMB9wH/AfEB8AH7Af8B9gH3Av8B9wH4Af0B/wHkAecB8wH/AXkBXAFtAe8BeAFg + AXgB8wGBAVkBYwHrGAABgwG1AYQB+wGRAbIBiwH5AdMB9wHaAf8B8AH7AfMB/wH2Af8B9wH/AfcB/QH4 + Af8B5AHzAeQB/wF5AW0BXAHvAngBYgHzAYEBYwFZAesYAAG/AY8BewH7Ab4BmAGCAfkB9wHjAdMB/wH7 + AfYB8AL/AfkB9gH/Af0B+QH3Af8B8wHoAeQB/wGPAV8BXAHvAZMBaAFfAfMBiwFdAVkB61wAAYUBXQFq + AesBjQGTAdcB/wGOAZQB3QH/AY8BlQHgAf8BjQGUAdsB/wGaAZ8B2gH/AX4BUgFZAeckAAGFAWoBXwHr + AY0B1wGWAf8BjgHdAZgB/wGPAeABmQH/AY0B2wGWAf8BmgHaAaIB/wF+AVkBUwHnJAABkAFiAV0B6wHX + AagBjQH/Ad0BrAGOAf8B4AGtAY8B/wHbAakBjQH/AdoBsgGaAf8BgwFUAVEB51QAAUIBTQE+BwABPgMA + ASgDAAFAAwABEAMAAQEBAAEBBQABgBcAA/8BAAH8AT8B/AE/AfwBPwIAAfABDwHwAQ8B8AEPAgAB4AEH + AeABBwHgAQcCAAHAAQMBwAEDAcABAwIAAYABAQGAAQEBgAEBAgABgAEBAYABAQGAAQEqAAGAAQEBgAEB + AYABAQIAAYABAQGAAQEBgAEBAgABwAEDAcABAwHAAQMCAAHgAQcB4AEHAeABBwIAAfABHwHwAR8B8AEf + AgAL