diff --git a/BizHawk.Client.Common/lua/LuaFile.cs b/BizHawk.Client.Common/lua/LuaFile.cs index a7f2a70be6..3ca9959f0d 100644 --- a/BizHawk.Client.Common/lua/LuaFile.cs +++ b/BizHawk.Client.Common/lua/LuaFile.cs @@ -9,8 +9,7 @@ namespace BizHawk.Client.Common { Name = string.Empty; Path = path; - Enabled = true; - Paused = false; + State = RunState.Running; FrameWaiting = false; } @@ -29,28 +28,34 @@ namespace BizHawk.Client.Common IsSeparator = isSeparator; Name = string.Empty; Path = string.Empty; - Enabled = false; + State = RunState.Disabled; } public LuaFile(LuaFile file) { Name = file.Name; Path = file.Path; - Enabled = file.Enabled; - Paused = file.Paused; + State = file.State; IsSeparator = file.IsSeparator; CurrentDirectory = file.CurrentDirectory; } public string Name { get; set; } public string Path { get; set; } - public bool Enabled { get; set; } - public bool Paused { get; set; } + public bool Enabled { get { return State != RunState.Disabled; } } + public bool Paused { get { return State == RunState.Paused; } } public bool IsSeparator { get; set; } public LuaInterface.Lua Thread { get; set; } public bool FrameWaiting { get; set; } public string CurrentDirectory { get; set; } + public enum RunState + { + Disabled, Running, Paused + } + + public RunState State { get; set; } + public static LuaFile SeparatorInstance { get { return new LuaFile(true); } @@ -58,22 +63,25 @@ namespace BizHawk.Client.Common public void Stop() { - Enabled = false; + State = RunState.Disabled; Thread = null; } public void Toggle() { - Enabled ^= true; - if (Enabled) - { - Paused = false; - } + if (State == RunState.Paused) + State = RunState.Running; + else if (State == RunState.Disabled) + State = RunState.Running; + else State = RunState.Disabled; } public void TogglePause() { - Paused ^= true; + if (State == RunState.Paused) + State = RunState.Running; + else if(State == RunState.Running) + State = RunState.Paused; } } } diff --git a/BizHawk.Client.Common/lua/LuaFileList.cs b/BizHawk.Client.Common/lua/LuaFileList.cs index f246be5858..8ea0f8bfc3 100644 --- a/BizHawk.Client.Common/lua/LuaFileList.cs +++ b/BizHawk.Client.Common/lua/LuaFileList.cs @@ -45,7 +45,7 @@ namespace BizHawk.Client.Common public void StopAllScripts() { - ForEach(x => x.Enabled = false); + ForEach(x => x.State = LuaFile.RunState.Disabled); } public new void Clear() @@ -105,8 +105,10 @@ namespace BizHawk.Client.Common Add(new LuaFile(scriptPath) { - Enabled = !Global.Config.DisableLuaScriptsOnLoad && - line.Substring(0, 1) == "1", + State = ( + !Global.Config.DisableLuaScriptsOnLoad + && line.Substring(0, 1) == "1" + ) ? LuaFile.RunState.Running : LuaFile.RunState.Disabled }); } } diff --git a/BizHawk.Client.EmuHawk/images/PlayButton.png b/BizHawk.Client.EmuHawk/images/PlayButton.png new file mode 100644 index 0000000000..ee5db08ef4 Binary files /dev/null and b/BizHawk.Client.EmuHawk/images/PlayButton.png differ diff --git a/BizHawk.Client.EmuHawk/images/StopButton.png b/BizHawk.Client.EmuHawk/images/StopButton.png new file mode 100644 index 0000000000..aa0820f0e0 Binary files /dev/null and b/BizHawk.Client.EmuHawk/images/StopButton.png differ diff --git a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.Designer.cs b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.Designer.cs index 29ddf1c5e4..5d14d6f23e 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.Designer.cs @@ -99,6 +99,7 @@ this.LuaListView = new BizHawk.Client.EmuHawk.VirtualListView(); this.Script = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 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.ScriptListContextMenu.SuspendLayout(); this.menuStrip1.SuspendLayout(); @@ -122,14 +123,14 @@ this.ScriptContextSeparator, this.StopAllScriptsContextItem}); this.ScriptListContextMenu.Name = "contextMenuStrip1"; - this.ScriptListContextMenu.Size = new System.Drawing.Size(165, 142); + this.ScriptListContextMenu.Size = new System.Drawing.Size(158, 142); this.ScriptListContextMenu.Opening += new System.ComponentModel.CancelEventHandler(this.ScriptListContextMenu_Opening); // // ToggleScriptContextItem // this.ToggleScriptContextItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Refresh1; this.ToggleScriptContextItem.Name = "ToggleScriptContextItem"; - this.ToggleScriptContextItem.Size = new System.Drawing.Size(164, 22); + this.ToggleScriptContextItem.Size = new System.Drawing.Size(157, 22); this.ToggleScriptContextItem.Text = "&Toggle"; this.ToggleScriptContextItem.Click += new System.EventHandler(this.ToggleScriptMenuItem_Click); // @@ -137,7 +138,7 @@ // this.PauseScriptContextItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Pause; this.PauseScriptContextItem.Name = "PauseScriptContextItem"; - this.PauseScriptContextItem.Size = new System.Drawing.Size(164, 22); + this.PauseScriptContextItem.Size = new System.Drawing.Size(157, 22); this.PauseScriptContextItem.Text = "Pause or Resume"; this.PauseScriptContextItem.Click += new System.EventHandler(this.PauseScriptMenuItem_Click); // @@ -145,7 +146,7 @@ // this.EditScriptContextItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.CutHS; this.EditScriptContextItem.Name = "EditScriptContextItem"; - this.EditScriptContextItem.Size = new System.Drawing.Size(164, 22); + this.EditScriptContextItem.Size = new System.Drawing.Size(157, 22); this.EditScriptContextItem.Text = "&Edit"; this.EditScriptContextItem.Click += new System.EventHandler(this.EditScriptMenuItem_Click); // @@ -153,7 +154,7 @@ // this.RemoveScriptContextItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Close; this.RemoveScriptContextItem.Name = "RemoveScriptContextItem"; - this.RemoveScriptContextItem.Size = new System.Drawing.Size(164, 22); + this.RemoveScriptContextItem.Size = new System.Drawing.Size(157, 22); this.RemoveScriptContextItem.Text = "&Remove"; this.RemoveScriptContextItem.Click += new System.EventHandler(this.RemoveScriptMenuItem_Click); // @@ -161,20 +162,20 @@ // this.InsertSeperatorContextItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.InsertSeparator; this.InsertSeperatorContextItem.Name = "InsertSeperatorContextItem"; - this.InsertSeperatorContextItem.Size = new System.Drawing.Size(164, 22); + this.InsertSeperatorContextItem.Size = new System.Drawing.Size(157, 22); this.InsertSeperatorContextItem.Text = "Insert Seperator"; this.InsertSeperatorContextItem.Click += new System.EventHandler(this.InsertSeparatorMenuItem_Click); // // ScriptContextSeparator // this.ScriptContextSeparator.Name = "ScriptContextSeparator"; - this.ScriptContextSeparator.Size = new System.Drawing.Size(161, 6); + this.ScriptContextSeparator.Size = new System.Drawing.Size(154, 6); // // StopAllScriptsContextItem // this.StopAllScriptsContextItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Stop; this.StopAllScriptsContextItem.Name = "StopAllScriptsContextItem"; - this.StopAllScriptsContextItem.Size = new System.Drawing.Size(164, 22); + this.StopAllScriptsContextItem.Size = new System.Drawing.Size(157, 22); this.StopAllScriptsContextItem.Text = "Stop All Scripts"; this.StopAllScriptsContextItem.Click += new System.EventHandler(this.StopAllScriptsMenuItem_Click); // @@ -205,7 +206,7 @@ this.toolStripSeparator1, this.ExitMenuItem}); this.FileSubMenu.Name = "FileSubMenu"; - this.FileSubMenu.Size = new System.Drawing.Size(37, 20); + this.FileSubMenu.Size = new System.Drawing.Size(35, 20); this.FileSubMenu.Text = "&File"; this.FileSubMenu.DropDownOpened += new System.EventHandler(this.FileSubMenu_DropDownOpened); // @@ -215,7 +216,7 @@ this.NewSessionMenuItem.Name = "NewSessionMenuItem"; this.NewSessionMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.N))); - this.NewSessionMenuItem.Size = new System.Drawing.Size(237, 22); + this.NewSessionMenuItem.Size = new System.Drawing.Size(232, 22); this.NewSessionMenuItem.Text = "&New Session"; this.NewSessionMenuItem.Click += new System.EventHandler(this.NewSessionMenuItem_Click); // @@ -225,7 +226,7 @@ this.OpenSessionMenuItem.Name = "OpenSessionMenuItem"; this.OpenSessionMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.O))); - this.OpenSessionMenuItem.Size = new System.Drawing.Size(237, 22); + this.OpenSessionMenuItem.Size = new System.Drawing.Size(232, 22); this.OpenSessionMenuItem.Text = "&Open Session..."; this.OpenSessionMenuItem.Click += new System.EventHandler(this.OpenSessionMenuItem_Click); // @@ -234,7 +235,7 @@ this.SaveSessionMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.SaveAs; this.SaveSessionMenuItem.Name = "SaveSessionMenuItem"; this.SaveSessionMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S))); - this.SaveSessionMenuItem.Size = new System.Drawing.Size(237, 22); + this.SaveSessionMenuItem.Size = new System.Drawing.Size(232, 22); this.SaveSessionMenuItem.Text = "&Save Session"; this.SaveSessionMenuItem.Click += new System.EventHandler(this.SaveSessionMenuItem_Click); // @@ -243,21 +244,21 @@ this.SaveSessionAsMenuItem.Name = "SaveSessionAsMenuItem"; this.SaveSessionAsMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.S))); - this.SaveSessionAsMenuItem.Size = new System.Drawing.Size(237, 22); + this.SaveSessionAsMenuItem.Size = new System.Drawing.Size(232, 22); this.SaveSessionAsMenuItem.Text = "Save Session &As..."; this.SaveSessionAsMenuItem.Click += new System.EventHandler(this.SaveSessionAsMenuItem_Click); // // toolStripSeparator9 // this.toolStripSeparator9.Name = "toolStripSeparator9"; - this.toolStripSeparator9.Size = new System.Drawing.Size(234, 6); + this.toolStripSeparator9.Size = new System.Drawing.Size(229, 6); // // RecentSessionsSubMenu // this.RecentSessionsSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripSeparator8}); this.RecentSessionsSubMenu.Name = "RecentSessionsSubMenu"; - this.RecentSessionsSubMenu.Size = new System.Drawing.Size(237, 22); + this.RecentSessionsSubMenu.Size = new System.Drawing.Size(232, 22); this.RecentSessionsSubMenu.Text = "Recent Sessions"; this.RecentSessionsSubMenu.DropDownOpened += new System.EventHandler(this.RecentSessionsSubMenu_DropDownOpened); // @@ -272,7 +273,7 @@ this.toolStripSeparator3}); this.RecentScriptsSubMenu.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Recent; this.RecentScriptsSubMenu.Name = "RecentScriptsSubMenu"; - this.RecentScriptsSubMenu.Size = new System.Drawing.Size(237, 22); + this.RecentScriptsSubMenu.Size = new System.Drawing.Size(232, 22); this.RecentScriptsSubMenu.Text = "Recent Scripts"; this.RecentScriptsSubMenu.DropDownOpened += new System.EventHandler(this.RecentScriptsSubMenu_DropDownOpened); // @@ -284,13 +285,13 @@ // toolStripSeparator1 // this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(234, 6); + this.toolStripSeparator1.Size = new System.Drawing.Size(229, 6); // // ExitMenuItem // this.ExitMenuItem.Name = "ExitMenuItem"; this.ExitMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.F4))); - this.ExitMenuItem.Size = new System.Drawing.Size(237, 22); + this.ExitMenuItem.Size = new System.Drawing.Size(232, 22); this.ExitMenuItem.Text = "E&xit"; this.ExitMenuItem.Click += new System.EventHandler(this.ExitMenuItem_Click); // @@ -314,7 +315,7 @@ this.StopAllScriptsMenuItem, this.RegisteredFunctionsMenuItem}); this.ScriptSubMenu.Name = "ScriptSubMenu"; - this.ScriptSubMenu.Size = new System.Drawing.Size(49, 20); + this.ScriptSubMenu.Size = new System.Drawing.Size(46, 20); this.ScriptSubMenu.Text = "&Script"; this.ScriptSubMenu.DropDownOpened += new System.EventHandler(this.ScriptSubMenu_DropDownOpened); // @@ -323,7 +324,7 @@ this.NewScriptMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.NewFile; this.NewScriptMenuItem.Name = "NewScriptMenuItem"; this.NewScriptMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N))); - this.NewScriptMenuItem.Size = new System.Drawing.Size(218, 22); + this.NewScriptMenuItem.Size = new System.Drawing.Size(212, 22); this.NewScriptMenuItem.Text = "New Script"; this.NewScriptMenuItem.Click += new System.EventHandler(this.NewScriptMenuItem_Click); // @@ -332,7 +333,7 @@ this.OpenScriptMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.OpenFile; this.OpenScriptMenuItem.Name = "OpenScriptMenuItem"; this.OpenScriptMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); - this.OpenScriptMenuItem.Size = new System.Drawing.Size(218, 22); + this.OpenScriptMenuItem.Size = new System.Drawing.Size(212, 22); this.OpenScriptMenuItem.Text = "&Open Script..."; this.OpenScriptMenuItem.Click += new System.EventHandler(this.OpenScriptMenuItem_Click); // @@ -341,7 +342,7 @@ this.RefreshScriptMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Refresh1; this.RefreshScriptMenuItem.Name = "RefreshScriptMenuItem"; this.RefreshScriptMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F5; - this.RefreshScriptMenuItem.Size = new System.Drawing.Size(218, 22); + this.RefreshScriptMenuItem.Size = new System.Drawing.Size(212, 22); this.RefreshScriptMenuItem.Text = "&Re&fresh"; this.RefreshScriptMenuItem.Click += new System.EventHandler(this.RefreshScriptMenuItem_Click); // @@ -350,7 +351,7 @@ this.ToggleScriptMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.checkbox; this.ToggleScriptMenuItem.Name = "ToggleScriptMenuItem"; this.ToggleScriptMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.T))); - this.ToggleScriptMenuItem.Size = new System.Drawing.Size(218, 22); + this.ToggleScriptMenuItem.Size = new System.Drawing.Size(212, 22); this.ToggleScriptMenuItem.Text = "&Toggle"; this.ToggleScriptMenuItem.Click += new System.EventHandler(this.ToggleScriptMenuItem_Click); // @@ -358,7 +359,7 @@ // this.PauseScriptMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Pause; this.PauseScriptMenuItem.Name = "PauseScriptMenuItem"; - this.PauseScriptMenuItem.Size = new System.Drawing.Size(218, 22); + this.PauseScriptMenuItem.Size = new System.Drawing.Size(212, 22); this.PauseScriptMenuItem.Text = "Pause or Resume"; this.PauseScriptMenuItem.Click += new System.EventHandler(this.PauseScriptMenuItem_Click); // @@ -367,7 +368,7 @@ this.EditScriptMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.CutHS; this.EditScriptMenuItem.Name = "EditScriptMenuItem"; this.EditScriptMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.E))); - this.EditScriptMenuItem.Size = new System.Drawing.Size(218, 22); + this.EditScriptMenuItem.Size = new System.Drawing.Size(212, 22); this.EditScriptMenuItem.Text = "&Edit Script"; this.EditScriptMenuItem.Click += new System.EventHandler(this.EditScriptMenuItem_Click); // @@ -376,28 +377,28 @@ this.RemoveScriptMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Delete; this.RemoveScriptMenuItem.Name = "RemoveScriptMenuItem"; this.RemoveScriptMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Delete; - this.RemoveScriptMenuItem.Size = new System.Drawing.Size(218, 22); + this.RemoveScriptMenuItem.Size = new System.Drawing.Size(212, 22); this.RemoveScriptMenuItem.Text = "&Remove Script"; this.RemoveScriptMenuItem.Click += new System.EventHandler(this.RemoveScriptMenuItem_Click); // // DuplicateScriptMenuItem // this.DuplicateScriptMenuItem.Name = "DuplicateScriptMenuItem"; - this.DuplicateScriptMenuItem.Size = new System.Drawing.Size(218, 22); + this.DuplicateScriptMenuItem.Size = new System.Drawing.Size(212, 22); this.DuplicateScriptMenuItem.Text = "&Duplicate Script"; this.DuplicateScriptMenuItem.Click += new System.EventHandler(this.DuplicateScriptMenuItem_Click); // // toolStripSeparator7 // this.toolStripSeparator7.Name = "toolStripSeparator7"; - this.toolStripSeparator7.Size = new System.Drawing.Size(215, 6); + this.toolStripSeparator7.Size = new System.Drawing.Size(209, 6); // // InsertSeparatorMenuItem // this.InsertSeparatorMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.InsertSeparator; this.InsertSeparatorMenuItem.Name = "InsertSeparatorMenuItem"; this.InsertSeparatorMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.I))); - this.InsertSeparatorMenuItem.Size = new System.Drawing.Size(218, 22); + this.InsertSeparatorMenuItem.Size = new System.Drawing.Size(212, 22); this.InsertSeparatorMenuItem.Text = "Insert Separator"; this.InsertSeparatorMenuItem.Click += new System.EventHandler(this.InsertSeparatorMenuItem_Click); // @@ -406,7 +407,7 @@ this.MoveUpMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.MoveUp; this.MoveUpMenuItem.Name = "MoveUpMenuItem"; this.MoveUpMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.U))); - this.MoveUpMenuItem.Size = new System.Drawing.Size(218, 22); + this.MoveUpMenuItem.Size = new System.Drawing.Size(212, 22); this.MoveUpMenuItem.Text = "Move &Up"; this.MoveUpMenuItem.Click += new System.EventHandler(this.MoveUpMenuItem_Click); // @@ -415,7 +416,7 @@ this.MoveDownMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.MoveDown; this.MoveDownMenuItem.Name = "MoveDownMenuItem"; this.MoveDownMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.D))); - this.MoveDownMenuItem.Size = new System.Drawing.Size(218, 22); + this.MoveDownMenuItem.Size = new System.Drawing.Size(212, 22); this.MoveDownMenuItem.Text = "Move &Down"; this.MoveDownMenuItem.Click += new System.EventHandler(this.MoveDownMenuItem_Click); // @@ -423,20 +424,20 @@ // this.SelectAllMenuItem.Name = "SelectAllMenuItem"; this.SelectAllMenuItem.ShortcutKeyDisplayString = "Ctrl+A"; - this.SelectAllMenuItem.Size = new System.Drawing.Size(218, 22); + this.SelectAllMenuItem.Size = new System.Drawing.Size(212, 22); this.SelectAllMenuItem.Text = "Select &All"; this.SelectAllMenuItem.Click += new System.EventHandler(this.SelectAllMenuItem_Click); // // toolStripSeparator6 // this.toolStripSeparator6.Name = "toolStripSeparator6"; - this.toolStripSeparator6.Size = new System.Drawing.Size(215, 6); + this.toolStripSeparator6.Size = new System.Drawing.Size(209, 6); // // StopAllScriptsMenuItem // this.StopAllScriptsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Stop; this.StopAllScriptsMenuItem.Name = "StopAllScriptsMenuItem"; - this.StopAllScriptsMenuItem.Size = new System.Drawing.Size(218, 22); + this.StopAllScriptsMenuItem.Size = new System.Drawing.Size(212, 22); this.StopAllScriptsMenuItem.Text = "Stop All Scripts"; this.StopAllScriptsMenuItem.Click += new System.EventHandler(this.StopAllScriptsMenuItem_Click); // @@ -444,7 +445,7 @@ // this.RegisteredFunctionsMenuItem.Name = "RegisteredFunctionsMenuItem"; this.RegisteredFunctionsMenuItem.ShortcutKeyDisplayString = "F12"; - this.RegisteredFunctionsMenuItem.Size = new System.Drawing.Size(218, 22); + this.RegisteredFunctionsMenuItem.Size = new System.Drawing.Size(212, 22); this.RegisteredFunctionsMenuItem.Text = "&Registered Functions..."; this.RegisteredFunctionsMenuItem.Click += new System.EventHandler(this.RegisteredFunctionsMenuItem_Click); // @@ -453,14 +454,14 @@ this.SettingsSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.DisableScriptsOnLoadMenuItem}); this.SettingsSubMenu.Name = "SettingsSubMenu"; - this.SettingsSubMenu.Size = new System.Drawing.Size(61, 20); + this.SettingsSubMenu.Size = new System.Drawing.Size(58, 20); this.SettingsSubMenu.Text = "&Settings"; this.SettingsSubMenu.DropDownOpened += new System.EventHandler(this.OptionsSubMenu_DropDownOpened); // // DisableScriptsOnLoadMenuItem // this.DisableScriptsOnLoadMenuItem.Name = "DisableScriptsOnLoadMenuItem"; - this.DisableScriptsOnLoadMenuItem.Size = new System.Drawing.Size(196, 22); + this.DisableScriptsOnLoadMenuItem.Size = new System.Drawing.Size(184, 22); this.DisableScriptsOnLoadMenuItem.Text = "Disable Scripts on Load"; this.DisableScriptsOnLoadMenuItem.Click += new System.EventHandler(this.DisableScriptsOnLoadMenuItem_Click); // @@ -470,21 +471,21 @@ this.FunctionsListMenuItem, this.OnlineDocsMenuItem}); this.HelpSubMenu.Name = "HelpSubMenu"; - this.HelpSubMenu.Size = new System.Drawing.Size(44, 20); + this.HelpSubMenu.Size = new System.Drawing.Size(40, 20); this.HelpSubMenu.Text = "&Help"; // // FunctionsListMenuItem // this.FunctionsListMenuItem.Name = "FunctionsListMenuItem"; this.FunctionsListMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F1; - this.FunctionsListMenuItem.Size = new System.Drawing.Size(202, 22); + this.FunctionsListMenuItem.Size = new System.Drawing.Size(189, 22); this.FunctionsListMenuItem.Text = "&Lua Functions List"; this.FunctionsListMenuItem.Click += new System.EventHandler(this.FunctionsListMenuItem_Click); // // OnlineDocsMenuItem // this.OnlineDocsMenuItem.Name = "OnlineDocsMenuItem"; - this.OnlineDocsMenuItem.Size = new System.Drawing.Size(202, 22); + this.OnlineDocsMenuItem.Size = new System.Drawing.Size(189, 22); this.OnlineDocsMenuItem.Text = "Documentation online..."; this.OnlineDocsMenuItem.Click += new System.EventHandler(this.OnlineDocsMenuItem_Click); // @@ -509,20 +510,20 @@ this.ClearConsoleContextItem, this.RegisteredFunctionsContextItem}); this.ConsoleContextMenu.Name = "contextMenuStrip2"; - this.ConsoleContextMenu.Size = new System.Drawing.Size(185, 48); + this.ConsoleContextMenu.Size = new System.Drawing.Size(176, 48); this.ConsoleContextMenu.Opening += new System.ComponentModel.CancelEventHandler(this.ConsoleContextMenu_Opening); // // ClearConsoleContextItem // this.ClearConsoleContextItem.Name = "ClearConsoleContextItem"; - this.ClearConsoleContextItem.Size = new System.Drawing.Size(184, 22); + this.ClearConsoleContextItem.Size = new System.Drawing.Size(175, 22); this.ClearConsoleContextItem.Text = "&Clear"; this.ClearConsoleContextItem.Click += new System.EventHandler(this.ClearConsoleContextItem_Click); // // RegisteredFunctionsContextItem // this.RegisteredFunctionsContextItem.Name = "RegisteredFunctionsContextItem"; - this.RegisteredFunctionsContextItem.Size = new System.Drawing.Size(184, 22); + this.RegisteredFunctionsContextItem.Size = new System.Drawing.Size(175, 22); this.RegisteredFunctionsContextItem.Text = "&Registered Functions"; this.RegisteredFunctionsContextItem.Click += new System.EventHandler(this.RegisteredFunctionsMenuItem_Click); // @@ -730,7 +731,6 @@ | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.LuaListView.BlazingFast = false; - this.LuaListView.CheckBoxes = true; this.LuaListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.Script, this.PathName}); @@ -744,6 +744,7 @@ this.LuaListView.SelectAllInProgress = false; this.LuaListView.selectedItem = -1; this.LuaListView.Size = new System.Drawing.Size(273, 271); + this.LuaListView.SmallImageList = this.imageList1; this.LuaListView.TabIndex = 0; this.LuaListView.UseCompatibleStateImageBehavior = false; this.LuaListView.UseCustomBackground = true; @@ -762,6 +763,14 @@ this.PathName.Text = "Path"; this.PathName.Width = 195; // + // imageList1 + // + this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream"))); + this.imageList1.TransparentColor = System.Drawing.Color.Transparent; + this.imageList1.Images.SetKeyName(0, "StopButton.png"); + this.imageList1.Images.SetKeyName(1, "PlayButton.png"); + this.imageList1.Images.SetKeyName(2, "Pause.png"); + // // splitContainer1 // this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; @@ -888,6 +897,7 @@ private System.Windows.Forms.ToolStripButton DuplicateToolbarButton; private System.Windows.Forms.ToolStripMenuItem DuplicateScriptMenuItem; private System.Windows.Forms.TextBox InputBox; - private System.Windows.Forms.SplitContainer splitContainer1; + private System.Windows.Forms.SplitContainer splitContainer1; + private System.Windows.Forms.ImageList imageList1; } } \ 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 84b0081197..e83ccb0ed9 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs @@ -54,6 +54,8 @@ namespace BizHawk.Client.EmuHawk LuaListView.QueryItemText += LuaListView_QueryItemText; LuaListView.QueryItemBkColor += LuaListView_QueryItemBkColor; + LuaListView.QueryItemImage += LuaListView_QueryItemImage; + LuaListView.QueryItemIndent += LuaListView_QueryItemIndent; LuaListView.VirtualMode = true; LuaSandbox.SetLogger(this.ConsoleLog); @@ -137,10 +139,10 @@ namespace BizHawk.Client.EmuHawk LuaSandbox.Sandbox(() => { file.Thread = LuaImp.SpawnCoroutine(file.Path); - file.Enabled = true; + file.State = LuaFile.RunState.Running; }, () => { - file.Enabled = false; + file.State = LuaFile.RunState.Disabled; }); } catch (Exception ex) @@ -172,10 +174,10 @@ namespace BizHawk.Client.EmuHawk LuaSandbox.Sandbox(() => { luaFile.Thread = LuaImp.SpawnCoroutine(processedPath); - luaFile.Enabled = true; + luaFile.State = LuaFile.RunState.Running; }, () => { - luaFile.Enabled = false; + luaFile.State = LuaFile.RunState.Disabled; }); } catch (Exception e) @@ -185,10 +187,10 @@ namespace BizHawk.Client.EmuHawk } else { - luaFile.Enabled = false; + luaFile.State = LuaFile.RunState.Disabled; } - luaFile.Paused = false; + //luaFile.Paused = false; } else { @@ -225,7 +227,7 @@ namespace BizHawk.Client.EmuHawk file.Thread = LuaImp.SpawnCoroutine(file.Path); }, () => { - file.Enabled = false; + file.State = LuaFile.RunState.Disabled; }); } catch (Exception e) @@ -247,6 +249,21 @@ namespace BizHawk.Client.EmuHawk Path.GetFileName(_luaList.Filename); } + + private void LuaListView_QueryItemImage(int item, int subItem, out int imageIndex) + { + imageIndex = -1; + if (subItem != 0) return; + if (_luaList[item].Paused) imageIndex = 2; + else if (_luaList[item].Enabled) imageIndex = 1; + else imageIndex = 0; + } + + void LuaListView_QueryItemIndent(int item, out int itemIndent) + { + itemIndent = 0; + } + private void LuaListView_QueryItemBkColor(int index, int column, ref Color color) { if (column == 0) @@ -261,7 +278,7 @@ namespace BizHawk.Client.EmuHawk } else if (_luaList[index].Enabled && _luaList[index].Paused) { - color = Color.IndianRed; + color = Color.LightPink; } } @@ -271,7 +288,6 @@ namespace BizHawk.Client.EmuHawk private void LuaListView_QueryItemText(int index, int column, out string text) { text = string.Empty; - if (column == 0) { text = Path.GetFileNameWithoutExtension(_luaList[index].Path); // TODO: how about allow the user to name scripts? @@ -439,7 +455,7 @@ namespace BizHawk.Client.EmuHawk } }, () => { - lf.Enabled = false; + lf.State = LuaFile.RunState.Disabled; lf.Thread = null; }); } @@ -731,7 +747,7 @@ namespace BizHawk.Client.EmuHawk item.Thread = LuaImp.SpawnCoroutine(item.Path); }, () => { - item.Enabled = false; + item.State = LuaFile.RunState.Disabled; }); } @@ -763,6 +779,8 @@ namespace BizHawk.Client.EmuHawk } UpdateDialog(); + UpdateNumberOfScripts(); + LuaListView.Refresh(); } private void PauseScriptMenuItem_Click(object sender, EventArgs e) diff --git a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.resx b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.resx index 866e9cdbd3..33fe22b72b 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.resx +++ b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.resx @@ -133,17 +133,89 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJQSURBVDhPlZNdSNNRGMb/F110ZZEVhVBgeeHNICiiuggp - olAUyyxI0oSaH1QYC3N+tKnp5ubm1JUua5uuqdPKMgr7kApFItTUkWZqVhSVYmao5Nev/xyoQ4k88Nyc - 8z6/93nP4QjCfy6lwc4ltZVso4P/tMyXRcmMHqZ0EeY6jZQVInzuf0e1Tb9Ina3P/tkpLD6XkNg8BJe5 - u93C+HDVrP4M2ZkcMOOw5tLZ9nxJyJE4HSExBoKkBQhVpTrGhso9zNPfiph0JlB+U01ZcRbmwnRMeWlc - 08opUCV6QissGsZ+WOY6z4hmuuXglC6pRYBbJSp+fzXNxnaZ66o1s3rkyKHWruJuWRYOcwZ2kxKr8TI3 - DCkU6+QYNUnuNGWmLEY+5uOK3degoKZcx3SfEvozPfVB3OtNhi4ZvI2nrTIc23U9gtmYwa8eNXzScq8i - l6bHWnfRwhHeREJzGFONgYw/CeB9qQSZNNR9FyUGBT87lfQ3plJj1zLTq4COGDegLVo0HmeqKZjx+gOM - PNzDYPU2lLF+4jhyN6BIl8pgexK3bRpaXopJuhJEwGloiWDmVSgTLw4xWreXoZrtfK/wp/nKak4E+s6/ - hDFHTkd9GndsOdCTBq1i3NdHmWgIYvRpAMO1OxlwSPhi2YpT641CuoWzsSfnAfnZiVRZ1Tjvx9GsF+bU - pF1BvWolD9JXUZmyDnOiD1cvbCZiYXfXCPrMi+gVZ8hOiiL53DHORwdzKnw/hw/uYt9uCTskfvj7+rBp - 41rWr/Fig7fX8j/Tsn/fcgx/ARfG3ml6M3rzAAAAAElFTkSuQmCC + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJHSURBVDhPxZBdSNNhFMb/F110ZZEVhVBgeeHNICiiuggp + olAUyyxI0oSaH1QYC3N+tKnp5ubm1JUua5uuqdNKMwr7kApFItTUkWZqVhSVYmao5Nevvy7UoYR3HXh4 + 4XCe33nOKyy3lAY7l9RWMo0O/raWXxEyo5spVYTNvOGyfIRPfW+ptOkXqaPl6T83hcRmExSdgzAz3NVm + YWyoYla/B+1M9JtxWLPpaH22JORIjI6gKAMB0jyEimIdo4OlbuaprwVMOOMovammpDADc34qppwUrmnl + 5Kni3aFlFg2j3y1z5mnRTJccnNIltQhwq0jFry+mOXNtpWZWDx1Z1NhV3C3JwGFOw25SYjVe5oYhiUKd + HKMmwQUrMWUw/CF3NnZvvYKqUh1TvUroS3fXe7HXkwidMngTS2t5KLbregSzMY2f3Wr4qKW6LJvGR1rX + 0MLor8OhKYTJBn/GHvvxrliCTBrsOqXIoOBHh5K+hmSq7FqmexTQHuUytkaKxuNMNgYyVneA4Qd7GKjc + hjLaRzxH7gIU6JIZaEvgtk1D8wsxSWecCDgNzWFMvwxm/PkhRmr3Mli1nW9lvjRdWc0Jf+/5jzRmyWmv + S+GOLQu6U6BFjPvqKOP1AYw88WOoZif9DgmfLVtxaj1RSLdwNvrkPCA3M54KqxrnvRia9MKcGrUrqFOt + 5H7qKsqT1mGO9+Lqhc2ELdw+U/r0i+gVZ8hMiCDx3DHORwZyKnQ/hw/uYt9uCTskPvh6e7Fp41rWr/Fg + g6eHO+A/lyD8ARfG3mk9fv1YAAAAAElFTkSuQmCC + + + + 489, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAB6 + DgAAAk1TRnQBSQFMAgEBAwEAASABAAEgAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA + AwABEAMAAQEBAAEgBgABECoAAo8BmAHlAbIBtAHSAf8BuwG+AdcB/wKQAZkB5zAAAY8BmAGQAeUBsgHS + AbYB/wG7AdcBvgH/AZABmQGRAecwAAGYAZMBjwHlAdIBvgGyAf8B1wHFAbsB/wGZAZIBkAHnaAABbwF0 + AaAB9QE5AUABlwH/AQUBEAGHAf8BBgEQAYcB/wEEAQ8BhwH/AQsBFQGIAf8BDgEYAYkB/wFmAWoBoQH5 + IAABbwGgAXsB9QE5AZcBRQH/AQUBhwEUAf8BBgGHARUB/wEEAYcBEgH/AQsBiAEZAf8BDgGJARwB/wFm + AaEBagH5IAABoAGFAW8B9QGXAVsBOQH/AYcBMwEFAf8BhwE0AQYB/wGHATIBBAH/AYgBNwELAf8BiQE6 + AQ4B/wGhAXoBZgH5XAABNAE8AZgB/wExATkBmAH/AbABsgHLAf8B2gHbAdoB/wLRAdUB/wHLAcwB0gH/ + AcQBxwHOAf8BWAFeAaUB/wFKAVEBjgH5ASkBMgGPAf8YAAEmAZIBMgH/ATEBmAE9Af8BsAHLAbMB/wHb + AtoB/wHRAdUB0gH/AcsB0gHLAf8BxQHOAcQB/wFYAaUBYQH/AUoBjgFSAfkBKQGPATQB/xgAAZIBTAEm + Af8BmAFWATEB/wHLAboBsAH/AtoB2wH/AdUB0wHRAf8B0gHNAcsB/wHOAcYBxAH/AaUBcwFYAf8BjgFo + AUoB+QGPAUwBKQH/VAABPQFAAZMB/QKMAZMB4wL+Af0B/wH+Af0B9QH/AvcB8wH/Ae8C7gH/Au0B6wH/ + AdkC2wH/AeMB5AHiAf8CwAHMAf8BdwF6AY0B7QFGAUwBkAH7EAABPQGTAUAB/QGMAZMBjAHjAf8B/gL/ + Af4B9QH9Af8B9wHzAfYB/wLuAe8B/wHtAesB7QH/AtsB2QH/AeQB4gHjAf8BwAHMAcIB/wF3AY0BegHt + AUYBkAFQAfsQAAGTAVMBPQH9AZMBjQGMAeMB/gP/AfUB+wH+Af8B8wH1AfcB/wHuAe8B7gH/AesB7AHt + Af8B2wHZAdoB/wLiAeQB/wHMAcUBwAH/AY0BgAF3Ae0BkAFfAUYB+0wAAXIBewGeAfMBiwGMAZ0B6wX/ + Af4B/Rf/Af4B/wHwAe8B8AH/Ac8B0AHWAf8BbgFxAYkB7QF2AXsBlAHvCAABcgGeAXwB8wGLAZ0BjgHr + Bf8B/Qb/AeMB8AHjAf8BnAHNAZwK/wH+Av8B7wLwAf8BzwHWAc8B/wFuAYkBcgHtAXYBlAF7Ae8IAAGe + AYQBcgHzAZ0BkQGLAesE/wH9F/8B/gP/AuMB4AH/Ac8ByQHHAf8BiQF5AW4B7QGUAYMBdgHvSAACagGp + AfkD/iX/AfAB8gHwAf8CxgHNAf8CRwGKAfkIAAFqAakBawH5EP8B3AHtAdwB/wERAXkBEQH/AYMBwQGD + Df8B8gHxAfAB/wHHAc4ByAH/AUcBigFNAfkIAAGpAYQBagH5DP8B4QHNAb4B/wG+AZIBjQH/AfcB8QHv + Af8B+wH4AfcB/wHBAZgBjwH/AeoB2gHRBf8B5QHiAeYB/wHOAcoBxwH/AYoBYgFHAflEAAGGAYkBrQHz + Ao4BpQHtCP8C9QH7Af8BbQFpAdQB/wGhAZ8B5wH/AaMBoQHmAf8BogGhAeUB/wGUAZEB4QH/AZ4BnAHm + Bf8B+QH4AfcB/wHnAeQB3gH/AWABZgGRAfUBWgFfAZwB+wGGAa0BjAHzAY4BpgGSAe0Q/wHkAfEB5AH/ + AQEBdQEBAf8BEQF7AREB/wGcAc4BnAn/AfkB9wH5Af8B5gHeAecB/wFgAZEBbAH1AVoBnAFfAfsBrQGV + AYYB8wGmAZcBjgHtDP8BrgF2AVQB/wFZAgAB/wH4AfUB8gH/AfoB9wH1Af8BWQIAAf8BswF7AVoF/wHx + AfQB9QH/Ad4B5gHnAf8BkQFxAWAB9QGcAW0BWgH7QAABggGIAcoB/wHQAdIB7Qn/AvUB+gH/ATsBOAG7 + Af8BZwFkAd4B/wFkAWAB2AH/AV8BWwHTAf8BUwFOAdEB/wGiAaEB6QX/AvkB+AH/AfwB+wHqAf8BowGm + Ab4B/wFDAUoBoAH/AYIBygGKAf8B0AHtAdQR/wHiAfAB4gH/AQIBdgECAf8BAAF2AQAB/wERAYQBEQH/ + AZgBzAGYBf8B+QH4AfkB/wH8AeoB+gH/AaMBvgGlAf8BQwGgAU4B/wHKAZwBggH/Ae0B2wHQDf8BugGM + AWoB/wGNASIBAAL/Av4B/wP+Af8BjQEhAQAB/wG7AYkBaAX/AfIB9AH1Af8B6gH1AfwB/wG+AawBowH/ + AaABZAFDAf9AAAF0AXoBwgH/AeUB5gH0Cf8C9wH7Af8BSgFHAcMB/wF1AXMB4wH/AXABbQHdAf8BawFo + AdgB/wFfAVoB0wH/AasBqQHqBf8D+QH/Af4B+wHvAf8BtAG2AcUB/wFBAUkBnwH/AXQBwgGBAf8B5QH0 + AecR/wHiAfAB4gH/AQEBeAEBAf8BAAF6AQAB/wEAAXIBAAH/AREBhAERAf8B+gH8AfoB/wP5Af8B/gHv + Af4B/wG0AcUBtgH/AUEBnwFMAf8BwgGTAXQB/wH0AesB5Q3/AbkBjAFrAf8BpwE4AQsB/wH7AfkB+AH/ + AfsB+gH5Af8BpwE4AQsB/wG9AYwBawX/A/QB/wHvAfoB/gH/AcUBugG0Af8BnwFiAUEB/0AAAXABdwG9 + Af8C2gHvCf8C9wH7Af8BTgFLAccB/wF7AXkB6gH/AXYBdQHjAf8BcwFxAd8B/wFmAWMB2gH/Aa0BqwHr + Bf8C+gH4Af8B/QH8Ae4B/wGdAaABuwH/AUkBUQGjAf8BcAG9AXgB/wHaAe8B3hH/AeIB8AHiAf8BAgF4 + AQIB/wEAAXABAAH/ASwBjgEsAf8B4gHwAeIF/wH6AfgB+gH/Af0B7gH7Af8BnQG7AaEB/wFJAaMBUgH/ + Ab0BjgFwAf8B7wHjAdoN/wG3AYgBZgH/AcQBRwEkAf8C/QH8Af8B/AH6AfkB/wHGAUoBJgH/AcIBjwFw + Bf8B8gH1AfcB/wHuAfcB/QH/AbsBqAGdAf8BowFoAUkB/0AAAYcBjAGkAe8BlAGVAbIB8Qj/AvYB+wH/ + AUsBRwHFAf8BegF5AesB/wF2AXUB5AH/AXQBcQHhAf8BZAFhAdsB/wGpAacB6wX/AvsB+QH/AfsB/AHu + Af8BSAFOAZQB+wGCAYMBnwHvAYcBpAGMAe8BlAGyAZkB8RD/AeIB8AHiAf8BAAFuAQAB/wEoAYcBKAH/ + AecB8wHnCf8B+wH5AfsB/wH8Ae4B+QH/AUgBlAFSAfsBggGfAYYB7wGkAZIBhwHvAbIBoAGUAfEM/wHB + AZcBegH/AaQBPgEWAf8B/QH7AfoB/wH8AfoB+QH/AZMBOQEPAf8BzAGpAZQF/wH0AfcB+QH/Ae4B9QH8 + Af8BlAFfAUgB+wGfAYwBggHvRAABewGBAc8J/wLzAfkB/wFJAUYBuQH/AYcBhgHWAf8BhwGFAdUB/wGH + AYUB1QH/AWUBYgHIAf8BbQFsAcwG/wH+AfwB/wLOAdcB/wE5AUEBmAH/CAABewHPAY0R/wHTAegB0wH/ + ASQBhwEkAf8B4gHwAeIN/wH+AfwC/wHOAdcB0AH/ATkBmAFDAf8IAAHPAaEBeyn/AfsD/wHXAdIBzgH/ + AZgBWgE5Af9IAAGMAY0BwgH5AqABvAHxJP8B/AH7AfYB/wE3AT8BlgH/AYoBiwGbAekIAAGMAcIBkAH5 + AaABvAGmAfEM/wH6AfwB+gH/Ae8B9gHvEf8B/AH2AfwB/wE3AZYBQQH/AYoBmwGKAekIAAHCAZ4BjAH5 + AbwBrQGgAfEk/wH1AfoB/AH/AZYBWAE3Af8BmwGRAYoB6UwAAYMBiQHMAf0CnAGpAekc/wHyAfUB+AH/ + AV4BaAGTAfUBcQF4AaMB9RAAAYMBzAGOAf0BnAGqAZ0B6Rz/AfQB+AHyAf8BXgGTAWgB9QFxAaMBfwH1 + EAABzAGjAYMB/QGqAaMBnAHpHP8B+ALyAf8BkwFvAV4B9QGjAYYBcQH1VAABhgGMAcgB+wGVAZcBzgH5 + AtMB9wH/AfEB8AH7Af8B9gH3Av8B9wH4Af0B/wHkAecB8wH/AYMBhgGiAe8BfwGBAaEB8wGPAZABogHr + GAABhgHIAZAB+wGVAc4BoQH5AdMB9wHaAf8B8AH7AfMB/wH2Af8B9wH/AfcB/QH4Af8B5AHzAeQB/wGD + AaIBhgHvAX8BoQGCAfMBjwGiAZAB6xgAAcgBmwGGAfsBzgGwAZUB+QH3AeMB0wH/AfsB9gHwAv8B+QH2 + Af8B/QH5AfcB/wHzAegB5AH/AaIBjwGDAe8BoQGMAX8B8wGiAZcBjwHrXAACmAGrAesBjQGTAdcB/wGO + AZQB3QH/AY8BlQHgAf8BjQGUAdsB/wGaAZ8B2gH/AZIBkwGeAeckAAGYAasBmgHrAY0B1wGWAf8BjgHd + AZgB/wGPAeABmQH/AY0B2wGWAf8BmgHaAaIB/wGSAZ4BlQHnJAABqwGhAZgB6wHXAagBjQH/Ad0BrAGO + Af8B4AGtAY8B/wHbAakBjQH/AdoBsgGaAf8BngGYAZIB51QAAUIBTQE+BwABPgMAASgDAAFAAwABEAMA + AQEBAAEBBQABgBcAA/8BAAH8AT8B/AE/AfwBPwIAAfABDwHwAQ8B8AEPAgAB4AEHAeABBwHgAQcCAAHA + AQMBwAEDAcABAwIAAYABAQGAAQEBgAEBAgABgAEBAYABAQGAAQEqAAGAAQEBgAEBAYABAQIAAYABAQGA + AQEBgAEBAgABwAEDAcABAwHAAQMCAAHgAQcB4AEHAeABBwIAAfABHwHwAR8B8AEfAgAL