diff --git a/Form1.Designer.cs b/Form1.Designer.cs index a638b40..6eaf46b 100644 --- a/Form1.Designer.cs +++ b/Form1.Designer.cs @@ -30,6 +30,9 @@ this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); this.menuStrip1 = new System.Windows.Forms.MenuStrip(); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.openFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.searchToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -38,26 +41,23 @@ this._nodeTree = new System.Windows.Forms.TreeView(); this.imageList1 = new System.Windows.Forms.ImageList(this.components); this.toolStrip1 = new System.Windows.Forms.ToolStrip(); + this._buttonOpen = new System.Windows.Forms.ToolStripButton(); + this._buttonSave = new System.Windows.Forms.ToolStripButton(); this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this._buttonRename = new System.Windows.Forms.ToolStripButton(); + this._buttonEdit = new System.Windows.Forms.ToolStripButton(); + this._buttonDelete = new System.Windows.Forms.ToolStripButton(); this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); - this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); - this.toolStripButton2 = new System.Windows.Forms.ToolStripButton(); - this.toolStripButton3 = new System.Windows.Forms.ToolStripButton(); - this.toolStripButton4 = new System.Windows.Forms.ToolStripButton(); - this.toolStripButton5 = new System.Windows.Forms.ToolStripButton(); - this.toolStripButton6 = new System.Windows.Forms.ToolStripButton(); - this.toolStripButton7 = new System.Windows.Forms.ToolStripButton(); - this.toolStripButton8 = new System.Windows.Forms.ToolStripButton(); - this.toolStripButton9 = new System.Windows.Forms.ToolStripButton(); - this.toolStripButton10 = new System.Windows.Forms.ToolStripButton(); - this.toolStripButton11 = new System.Windows.Forms.ToolStripButton(); - this.toolStripButton12 = new System.Windows.Forms.ToolStripButton(); - this.toolStripButton15 = new System.Windows.Forms.ToolStripButton(); - this.toolStripButton13 = new System.Windows.Forms.ToolStripButton(); - this.toolStripButton14 = new System.Windows.Forms.ToolStripButton(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.openFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this._buttonAddTagByte = new System.Windows.Forms.ToolStripButton(); + this._buttonAddTagShort = new System.Windows.Forms.ToolStripButton(); + this._buttonAddTagInt = new System.Windows.Forms.ToolStripButton(); + this._buttonAddTagLong = new System.Windows.Forms.ToolStripButton(); + this._buttonAddTagFloat = new System.Windows.Forms.ToolStripButton(); + this._buttonAddTagDouble = new System.Windows.Forms.ToolStripButton(); + this._buttonAddTagByteArray = new System.Windows.Forms.ToolStripButton(); + this._buttonAddTagString = new System.Windows.Forms.ToolStripButton(); + this._buttonAddTagList = new System.Windows.Forms.ToolStripButton(); + this._buttonAddTagCompound = new System.Windows.Forms.ToolStripButton(); this.menuStrip1.SuspendLayout(); this.toolStripContainer1.ContentPanel.SuspendLayout(); this.toolStripContainer1.TopToolStripPanel.SuspendLayout(); @@ -78,6 +78,34 @@ this.menuStrip1.TabIndex = 0; this.menuStrip1.Text = "menuStrip1"; // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.openToolStripMenuItem, + this.openFolderToolStripMenuItem}); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); + this.fileToolStripMenuItem.Text = "&File"; + // + // openToolStripMenuItem + // + this.openToolStripMenuItem.Image = global::NBTPlus.Properties.Resources.folder_open_document; + this.openToolStripMenuItem.Name = "openToolStripMenuItem"; + this.openToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); + this.openToolStripMenuItem.Size = new System.Drawing.Size(223, 22); + this.openToolStripMenuItem.Text = "&Open..."; + this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click); + // + // openFolderToolStripMenuItem + // + this.openFolderToolStripMenuItem.Image = global::NBTPlus.Properties.Resources.folder_open; + this.openFolderToolStripMenuItem.Name = "openFolderToolStripMenuItem"; + this.openFolderToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) + | System.Windows.Forms.Keys.O))); + this.openFolderToolStripMenuItem.Size = new System.Drawing.Size(223, 22); + this.openFolderToolStripMenuItem.Text = "Open Folder..."; + this.openFolderToolStripMenuItem.Click += new System.EventHandler(this.openFolderToolStripMenuItem_Click); + // // editToolStripMenuItem // this.editToolStripMenuItem.Name = "editToolStripMenuItem"; @@ -157,202 +185,176 @@ // this.toolStrip1.Dock = System.Windows.Forms.DockStyle.None; this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.toolStripButton1, - this.toolStripButton2, + this._buttonOpen, + this._buttonSave, this.toolStripSeparator1, - this.toolStripButton3, - this.toolStripButton4, - this.toolStripButton5, + this._buttonRename, + this._buttonEdit, + this._buttonDelete, this.toolStripSeparator2, - this.toolStripButton6, - this.toolStripButton7, - this.toolStripButton8, - this.toolStripButton9, - this.toolStripButton10, - this.toolStripButton11, - this.toolStripButton12, - this.toolStripButton15, - this.toolStripButton13, - this.toolStripButton14}); + this._buttonAddTagByte, + this._buttonAddTagShort, + this._buttonAddTagInt, + this._buttonAddTagLong, + this._buttonAddTagFloat, + this._buttonAddTagDouble, + this._buttonAddTagByteArray, + this._buttonAddTagString, + this._buttonAddTagList, + this._buttonAddTagCompound}); this.toolStrip1.Location = new System.Drawing.Point(0, 0); this.toolStrip1.Name = "toolStrip1"; this.toolStrip1.Size = new System.Drawing.Size(562, 25); this.toolStrip1.Stretch = true; this.toolStrip1.TabIndex = 0; // + // _buttonOpen + // + this._buttonOpen.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this._buttonOpen.Image = ((System.Drawing.Image)(resources.GetObject("_buttonOpen.Image"))); + this._buttonOpen.ImageTransparentColor = System.Drawing.Color.Magenta; + this._buttonOpen.Name = "_buttonOpen"; + this._buttonOpen.Size = new System.Drawing.Size(23, 22); + this._buttonOpen.Text = "Open NBT Data Source"; + this._buttonOpen.Click += new System.EventHandler(this.toolStripButton1_Click); + // + // _buttonSave + // + this._buttonSave.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this._buttonSave.Image = ((System.Drawing.Image)(resources.GetObject("_buttonSave.Image"))); + this._buttonSave.ImageTransparentColor = System.Drawing.Color.Magenta; + this._buttonSave.Name = "_buttonSave"; + this._buttonSave.Size = new System.Drawing.Size(23, 22); + this._buttonSave.Text = "Save All Modified Tags"; + this._buttonSave.Click += new System.EventHandler(this._buttonSave_Click); + // // toolStripSeparator1 // this.toolStripSeparator1.Name = "toolStripSeparator1"; this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25); // + // _buttonRename + // + this._buttonRename.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this._buttonRename.Image = ((System.Drawing.Image)(resources.GetObject("_buttonRename.Image"))); + this._buttonRename.ImageTransparentColor = System.Drawing.Color.Magenta; + this._buttonRename.Name = "_buttonRename"; + this._buttonRename.Size = new System.Drawing.Size(23, 22); + this._buttonRename.Text = "Rename Tag"; + // + // _buttonEdit + // + this._buttonEdit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this._buttonEdit.Image = ((System.Drawing.Image)(resources.GetObject("_buttonEdit.Image"))); + this._buttonEdit.ImageTransparentColor = System.Drawing.Color.Magenta; + this._buttonEdit.Name = "_buttonEdit"; + this._buttonEdit.Size = new System.Drawing.Size(23, 22); + this._buttonEdit.Text = "Edit Tag Value"; + // + // _buttonDelete + // + this._buttonDelete.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this._buttonDelete.Image = ((System.Drawing.Image)(resources.GetObject("_buttonDelete.Image"))); + this._buttonDelete.ImageTransparentColor = System.Drawing.Color.Magenta; + this._buttonDelete.Name = "_buttonDelete"; + this._buttonDelete.Size = new System.Drawing.Size(23, 22); + this._buttonDelete.Text = "Delete Tag"; + this._buttonDelete.Click += new System.EventHandler(this.toolStripButton5_Click); + // // toolStripSeparator2 // this.toolStripSeparator2.Name = "toolStripSeparator2"; this.toolStripSeparator2.Size = new System.Drawing.Size(6, 25); // - // toolStripButton1 + // _buttonAddTagByte // - this.toolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image"))); - this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripButton1.Name = "toolStripButton1"; - this.toolStripButton1.Size = new System.Drawing.Size(23, 22); - this.toolStripButton1.Text = "toolStripButton1"; - this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click); + this._buttonAddTagByte.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this._buttonAddTagByte.Image = ((System.Drawing.Image)(resources.GetObject("_buttonAddTagByte.Image"))); + this._buttonAddTagByte.ImageTransparentColor = System.Drawing.Color.Magenta; + this._buttonAddTagByte.Name = "_buttonAddTagByte"; + this._buttonAddTagByte.Size = new System.Drawing.Size(23, 22); + this._buttonAddTagByte.Text = "Add Byte Tag"; // - // toolStripButton2 + // _buttonAddTagShort // - this.toolStripButton2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image"))); - this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripButton2.Name = "toolStripButton2"; - this.toolStripButton2.Size = new System.Drawing.Size(23, 22); - this.toolStripButton2.Text = "toolStripButton2"; + this._buttonAddTagShort.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this._buttonAddTagShort.Image = ((System.Drawing.Image)(resources.GetObject("_buttonAddTagShort.Image"))); + this._buttonAddTagShort.ImageTransparentColor = System.Drawing.Color.Magenta; + this._buttonAddTagShort.Name = "_buttonAddTagShort"; + this._buttonAddTagShort.Size = new System.Drawing.Size(23, 22); + this._buttonAddTagShort.Text = "Add Short Tag"; // - // toolStripButton3 + // _buttonAddTagInt // - this.toolStripButton3.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripButton3.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton3.Image"))); - this.toolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripButton3.Name = "toolStripButton3"; - this.toolStripButton3.Size = new System.Drawing.Size(23, 22); - this.toolStripButton3.Text = "toolStripButton3"; + this._buttonAddTagInt.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this._buttonAddTagInt.Image = ((System.Drawing.Image)(resources.GetObject("_buttonAddTagInt.Image"))); + this._buttonAddTagInt.ImageTransparentColor = System.Drawing.Color.Magenta; + this._buttonAddTagInt.Name = "_buttonAddTagInt"; + this._buttonAddTagInt.Size = new System.Drawing.Size(23, 22); + this._buttonAddTagInt.Text = "Add Int Tag"; // - // toolStripButton4 + // _buttonAddTagLong // - this.toolStripButton4.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripButton4.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton4.Image"))); - this.toolStripButton4.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripButton4.Name = "toolStripButton4"; - this.toolStripButton4.Size = new System.Drawing.Size(23, 22); - this.toolStripButton4.Text = "toolStripButton4"; + this._buttonAddTagLong.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this._buttonAddTagLong.Image = ((System.Drawing.Image)(resources.GetObject("_buttonAddTagLong.Image"))); + this._buttonAddTagLong.ImageTransparentColor = System.Drawing.Color.Magenta; + this._buttonAddTagLong.Name = "_buttonAddTagLong"; + this._buttonAddTagLong.Size = new System.Drawing.Size(23, 22); + this._buttonAddTagLong.Text = "Add Long Tag"; // - // toolStripButton5 + // _buttonAddTagFloat // - this.toolStripButton5.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripButton5.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton5.Image"))); - this.toolStripButton5.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripButton5.Name = "toolStripButton5"; - this.toolStripButton5.Size = new System.Drawing.Size(23, 22); - this.toolStripButton5.Text = "toolStripButton5"; + this._buttonAddTagFloat.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this._buttonAddTagFloat.Image = ((System.Drawing.Image)(resources.GetObject("_buttonAddTagFloat.Image"))); + this._buttonAddTagFloat.ImageTransparentColor = System.Drawing.Color.Magenta; + this._buttonAddTagFloat.Name = "_buttonAddTagFloat"; + this._buttonAddTagFloat.Size = new System.Drawing.Size(23, 22); + this._buttonAddTagFloat.Text = "Add Float Tag"; // - // toolStripButton6 + // _buttonAddTagDouble // - this.toolStripButton6.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripButton6.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton6.Image"))); - this.toolStripButton6.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripButton6.Name = "toolStripButton6"; - this.toolStripButton6.Size = new System.Drawing.Size(23, 22); - this.toolStripButton6.Text = "toolStripButton6"; + this._buttonAddTagDouble.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this._buttonAddTagDouble.Image = ((System.Drawing.Image)(resources.GetObject("_buttonAddTagDouble.Image"))); + this._buttonAddTagDouble.ImageTransparentColor = System.Drawing.Color.Magenta; + this._buttonAddTagDouble.Name = "_buttonAddTagDouble"; + this._buttonAddTagDouble.Size = new System.Drawing.Size(23, 22); + this._buttonAddTagDouble.Text = "Add Double Tag"; // - // toolStripButton7 + // _buttonAddTagByteArray // - this.toolStripButton7.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripButton7.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton7.Image"))); - this.toolStripButton7.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripButton7.Name = "toolStripButton7"; - this.toolStripButton7.Size = new System.Drawing.Size(23, 22); - this.toolStripButton7.Text = "toolStripButton7"; + this._buttonAddTagByteArray.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this._buttonAddTagByteArray.Image = ((System.Drawing.Image)(resources.GetObject("_buttonAddTagByteArray.Image"))); + this._buttonAddTagByteArray.ImageTransparentColor = System.Drawing.Color.Magenta; + this._buttonAddTagByteArray.Name = "_buttonAddTagByteArray"; + this._buttonAddTagByteArray.Size = new System.Drawing.Size(23, 22); + this._buttonAddTagByteArray.Text = "Add Byte Array Tag"; // - // toolStripButton8 + // _buttonAddTagString // - this.toolStripButton8.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripButton8.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton8.Image"))); - this.toolStripButton8.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripButton8.Name = "toolStripButton8"; - this.toolStripButton8.Size = new System.Drawing.Size(23, 22); - this.toolStripButton8.Text = "toolStripButton8"; + this._buttonAddTagString.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this._buttonAddTagString.Image = ((System.Drawing.Image)(resources.GetObject("_buttonAddTagString.Image"))); + this._buttonAddTagString.ImageTransparentColor = System.Drawing.Color.Magenta; + this._buttonAddTagString.Name = "_buttonAddTagString"; + this._buttonAddTagString.Size = new System.Drawing.Size(23, 22); + this._buttonAddTagString.Text = "Add String Tag"; // - // toolStripButton9 + // _buttonAddTagList // - this.toolStripButton9.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripButton9.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton9.Image"))); - this.toolStripButton9.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripButton9.Name = "toolStripButton9"; - this.toolStripButton9.Size = new System.Drawing.Size(23, 22); - this.toolStripButton9.Text = "toolStripButton9"; + this._buttonAddTagList.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this._buttonAddTagList.Image = ((System.Drawing.Image)(resources.GetObject("_buttonAddTagList.Image"))); + this._buttonAddTagList.ImageTransparentColor = System.Drawing.Color.Magenta; + this._buttonAddTagList.Name = "_buttonAddTagList"; + this._buttonAddTagList.Size = new System.Drawing.Size(23, 22); + this._buttonAddTagList.Text = "Add List Tag"; // - // toolStripButton10 + // _buttonAddTagCompound // - this.toolStripButton10.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripButton10.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton10.Image"))); - this.toolStripButton10.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripButton10.Name = "toolStripButton10"; - this.toolStripButton10.Size = new System.Drawing.Size(23, 22); - this.toolStripButton10.Text = "toolStripButton10"; - // - // toolStripButton11 - // - this.toolStripButton11.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripButton11.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton11.Image"))); - this.toolStripButton11.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripButton11.Name = "toolStripButton11"; - this.toolStripButton11.Size = new System.Drawing.Size(23, 22); - this.toolStripButton11.Text = "toolStripButton11"; - // - // toolStripButton12 - // - this.toolStripButton12.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripButton12.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton12.Image"))); - this.toolStripButton12.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripButton12.Name = "toolStripButton12"; - this.toolStripButton12.Size = new System.Drawing.Size(23, 22); - this.toolStripButton12.Text = "toolStripButton12"; - // - // toolStripButton15 - // - this.toolStripButton15.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripButton15.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton15.Image"))); - this.toolStripButton15.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripButton15.Name = "toolStripButton15"; - this.toolStripButton15.Size = new System.Drawing.Size(23, 22); - this.toolStripButton15.Text = "toolStripButton15"; - // - // toolStripButton13 - // - this.toolStripButton13.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripButton13.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton13.Image"))); - this.toolStripButton13.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripButton13.Name = "toolStripButton13"; - this.toolStripButton13.Size = new System.Drawing.Size(23, 22); - this.toolStripButton13.Text = "toolStripButton13"; - // - // toolStripButton14 - // - this.toolStripButton14.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripButton14.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton14.Image"))); - this.toolStripButton14.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripButton14.Name = "toolStripButton14"; - this.toolStripButton14.Size = new System.Drawing.Size(23, 22); - this.toolStripButton14.Text = "toolStripButton14"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.openToolStripMenuItem, - this.openFolderToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); - this.fileToolStripMenuItem.Text = "&File"; - // - // openToolStripMenuItem - // - this.openToolStripMenuItem.Image = global::NBTPlus.Properties.Resources.folder_open_document; - this.openToolStripMenuItem.Name = "openToolStripMenuItem"; - this.openToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); - this.openToolStripMenuItem.Size = new System.Drawing.Size(223, 22); - this.openToolStripMenuItem.Text = "&Open..."; - this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click); - // - // openFolderToolStripMenuItem - // - this.openFolderToolStripMenuItem.Image = global::NBTPlus.Properties.Resources.folder_open; - this.openFolderToolStripMenuItem.Name = "openFolderToolStripMenuItem"; - this.openFolderToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) - | System.Windows.Forms.Keys.O))); - this.openFolderToolStripMenuItem.Size = new System.Drawing.Size(223, 22); - this.openFolderToolStripMenuItem.Text = "Open Folder..."; - this.openFolderToolStripMenuItem.Click += new System.EventHandler(this.openFolderToolStripMenuItem_Click); + this._buttonAddTagCompound.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this._buttonAddTagCompound.Image = ((System.Drawing.Image)(resources.GetObject("_buttonAddTagCompound.Image"))); + this._buttonAddTagCompound.ImageTransparentColor = System.Drawing.Color.Magenta; + this._buttonAddTagCompound.Name = "_buttonAddTagCompound"; + this._buttonAddTagCompound.Size = new System.Drawing.Size(23, 22); + this._buttonAddTagCompound.Text = "Add Compound Tag"; // // Form1 // @@ -388,24 +390,24 @@ private System.Windows.Forms.ToolStripContainer toolStripContainer1; private System.Windows.Forms.TreeView _nodeTree; private System.Windows.Forms.ToolStrip toolStrip1; - private System.Windows.Forms.ToolStripButton toolStripButton1; - private System.Windows.Forms.ToolStripButton toolStripButton2; + private System.Windows.Forms.ToolStripButton _buttonOpen; + private System.Windows.Forms.ToolStripButton _buttonSave; private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; - private System.Windows.Forms.ToolStripButton toolStripButton3; - private System.Windows.Forms.ToolStripButton toolStripButton4; - private System.Windows.Forms.ToolStripButton toolStripButton5; + private System.Windows.Forms.ToolStripButton _buttonRename; + private System.Windows.Forms.ToolStripButton _buttonEdit; + private System.Windows.Forms.ToolStripButton _buttonDelete; private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; - private System.Windows.Forms.ToolStripButton toolStripButton6; - private System.Windows.Forms.ToolStripButton toolStripButton7; - private System.Windows.Forms.ToolStripButton toolStripButton8; - private System.Windows.Forms.ToolStripButton toolStripButton9; - private System.Windows.Forms.ToolStripButton toolStripButton10; - private System.Windows.Forms.ToolStripButton toolStripButton11; - private System.Windows.Forms.ToolStripButton toolStripButton12; - private System.Windows.Forms.ToolStripButton toolStripButton13; - private System.Windows.Forms.ToolStripButton toolStripButton14; + private System.Windows.Forms.ToolStripButton _buttonAddTagByte; + private System.Windows.Forms.ToolStripButton _buttonAddTagShort; + private System.Windows.Forms.ToolStripButton _buttonAddTagInt; + private System.Windows.Forms.ToolStripButton _buttonAddTagLong; + private System.Windows.Forms.ToolStripButton _buttonAddTagFloat; + private System.Windows.Forms.ToolStripButton _buttonAddTagDouble; + private System.Windows.Forms.ToolStripButton _buttonAddTagByteArray; + private System.Windows.Forms.ToolStripButton _buttonAddTagList; + private System.Windows.Forms.ToolStripButton _buttonAddTagCompound; private System.Windows.Forms.ImageList imageList1; - private System.Windows.Forms.ToolStripButton toolStripButton15; + private System.Windows.Forms.ToolStripButton _buttonAddTagString; private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem openFolderToolStripMenuItem; diff --git a/Form1.cs b/Form1.cs index 9bcf676..d89cc0d 100644 --- a/Form1.cs +++ b/Form1.cs @@ -22,18 +22,18 @@ namespace NBTPlus _nodeTree.BeforeExpand += NodeExpand; _nodeTree.AfterCollapse += NodeCollapse; + _nodeTree.AfterSelect += NodeSelected; - //LoadRegion(@"C:\Users\Justin\AppData\Roaming\.minecraft\saves\Creative1.8\region\r.0.0.mcr"); + string path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); + path = Path.Combine(path, ".minecraft"); + path = Path.Combine(path, "saves"); - LoadDirectory(@"C:\Users\Justin\AppData\Roaming\.minecraft\saves\Creative1.8"); - } - - public void LoadFile (string path) { - NBTFile nbtstr = new NBTFile(path); - - using (Stream fs = nbtstr.GetDataInputStream()) { - //LoadNbtStream(fs); + if (!Directory.Exists(path)) { + path = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer); } + + LoadDirectory(path); + _nodeTree.Nodes[0].Expand(); } public void LoadNbtStream (TreeNodeCollection parent, Stream stream) @@ -58,6 +58,10 @@ namespace NBTPlus NbtTree tree = new NbtTree(); tree.ReadFrom(stream); + if (node.Tag != null && node.Tag is NbtDataNode) { + (node.Tag as NbtDataNode).Tree = tree; + } + PopulateNodeFromTag(node, tree.Root); } @@ -73,6 +77,7 @@ namespace NBTPlus TreeNode node = new TreeNode(); node.ImageIndex = _tagIconIndex[tag.GetTagType()]; node.SelectedImageIndex = _tagIconIndex[tag.GetTagType()]; + node.Tag = tag; switch (tag.GetTagType()) { case TagType.TAG_BYTE: @@ -205,30 +210,48 @@ namespace NBTPlus return node; } + public TreeNode CreateLazyDirectory (string path, TreeNode parent) + { + TreeNode node = CreateLazyDirectory(path); + LinkDataNodeParent(node, parent); + + return node; + } + + public TreeNode CreateLazyNbt (string path, CompressionType cztype, TreeNode parent) + { + TreeNode node = CreateLazyNbt(path, cztype); + LinkDataNodeParent(node, parent); + + return node; + } + + private void LinkDataNodeParent (TreeNode node, TreeNode parent) + { + if (node != null && parent != null && node.Tag != null && parent.Tag != null) { + DataNode nodeDn = node.Tag as DataNode; + DataNode parentDn = parent.Tag as DataNode; + + if (nodeDn != null && parentDn != null) { + nodeDn.Parent = parentDn; + } + } + } + public void LoadLazyChunk (TreeNode node) { RegionChunkData data = node.Tag as RegionChunkData; - if (data == null) + if (data == null || data.Modified) return; node.Nodes.Clear(); LoadNbtStream(node, data.Region.GetChunkDataInputStream(data.X, data.Z)); } - public void UnloadLazyChunk (TreeNode node) - { - RegionChunkData data = node.Tag as RegionChunkData; - if (data == null) - return; - - node.Nodes.Clear(); - node.Nodes.Add(new TreeNode()); - } - public void LoadLazyNbt (TreeNode node) { NbtFileData data = node.Tag as NbtFileData; - if (data == null) + if (data == null || data.Modified) return; node.Nodes.Clear(); @@ -237,26 +260,16 @@ namespace NBTPlus LoadNbtStream(node, file.GetDataInputStream(data.CompressionType)); } - public void UnloadLazyNbt (TreeNode node) - { - NbtFileData data = node.Tag as NbtFileData; - if (data == null) - return; - - node.Nodes.Clear(); - node.Nodes.Add(new TreeNode()); - } - public void LoadLazyDirectory (TreeNode node) { DirectoryData data = node.Tag as DirectoryData; - if (data == null) + if (data == null || data.Modified) return; node.Nodes.Clear(); foreach (string dirpath in Directory.EnumerateDirectories(data.Path)) { - node.Nodes.Add(CreateLazyDirectory(dirpath)); + node.Nodes.Add(CreateLazyDirectory(dirpath, node)); } foreach (string filepath in Directory.EnumerateFiles(data.Path)) { @@ -264,30 +277,20 @@ namespace NBTPlus } } - public void UnloadLazyDirectory (TreeNode node) - { - DirectoryData data = node.Tag as DirectoryData; - if (data == null) - return; - - node.Nodes.Clear(); - node.Nodes.Add(new TreeNode()); - } - public void LoadLazyRegion (TreeNode node) { RegionData data = node.Tag as RegionData; - if (data == null) + if (data == null || data.Modified) return; node.Nodes.Clear(); LoadRegion(node, data.Path); } - public void UnloadLazyRegion (TreeNode node) + public void UnloadLazyDataNode (TreeNode node) { - RegionData data = node.Tag as RegionData; - if (data == null) + DataNode data = node.Tag as DataNode; + if (data == null || data.Modified) return; node.Nodes.Clear(); @@ -318,20 +321,84 @@ namespace NBTPlus if (e.Node.Tag == null) return; - if (e.Node.Tag is RegionChunkData) { - UnloadLazyChunk(e.Node); + if (e.Node.Tag is DataNode) { + UnloadLazyDataNode(e.Node); } - else if (e.Node.Tag is NbtFileData) { - UnloadLazyNbt(e.Node); - } - else if (e.Node.Tag is DirectoryData) { - UnloadLazyDirectory(e.Node); - } - else if (e.Node.Tag is RegionData) { - UnloadLazyRegion(e.Node); + } + + private void NodeSelected (object sender, TreeViewEventArgs e) + { + UpdateToolbar(); + } + + private void UpdateToolbar () + { + TreeNode node = _nodeTree.SelectedNode; + TagNode tag = node.Tag as TagNode; + + _buttonRename.Enabled = tag != null; + _buttonDelete.Enabled = tag != null; + _buttonEdit.Enabled = tag != null + && tag.GetTagType() != TagType.TAG_COMPOUND + && tag.GetTagType() != TagType.TAG_LIST; + + if (tag == null || tag.GetTagType() != TagType.TAG_COMPOUND) + SetTagButtons(false); + if (tag != null && tag.GetTagType() == TagType.TAG_COMPOUND) + SetTagButtons(true); + if (tag != null && tag.GetTagType() == TagType.TAG_LIST && tag.ToTagList().Count == 0) + SetTagButtons(true); + + if (tag != null && tag.GetTagType() == TagType.TAG_LIST) { + switch (tag.ToTagList().ValueType) { + case TagType.TAG_BYTE: + _buttonAddTagByte.Enabled = true; + break; + case TagType.TAG_SHORT: + _buttonAddTagShort.Enabled = true; + break; + case TagType.TAG_INT: + _buttonAddTagInt.Enabled = true; + break; + case TagType.TAG_LONG: + _buttonAddTagLong.Enabled = true; + break; + case TagType.TAG_FLOAT: + _buttonAddTagFloat.Enabled = true; + break; + case TagType.TAG_DOUBLE: + _buttonAddTagDouble.Enabled = true; + break; + case TagType.TAG_BYTE_ARRAY: + _buttonAddTagByteArray.Enabled = true; + break; + case TagType.TAG_STRING: + _buttonAddTagString.Enabled = true; + break; + case TagType.TAG_LIST: + _buttonAddTagList.Enabled = true; + break; + case TagType.TAG_COMPOUND: + _buttonAddTagCompound.Enabled = true; + break; + } } } + private void SetTagButtons (bool state) + { + _buttonAddTagByte.Enabled = state; + _buttonAddTagShort.Enabled = state; + _buttonAddTagInt.Enabled = state; + _buttonAddTagLong.Enabled = state; + _buttonAddTagFloat.Enabled = state; + _buttonAddTagDouble.Enabled = state; + _buttonAddTagByteArray.Enabled = state; + _buttonAddTagString.Enabled = state; + _buttonAddTagList.Enabled = state; + _buttonAddTagCompound.Enabled = state; + } + public void LoadDirectory (string path) { LoadDirectory(path, _nodeTree.Nodes); @@ -347,8 +414,7 @@ namespace NBTPlus TreeNode root = new TreeNode(name, 10, 10); foreach (string dirpath in Directory.EnumerateDirectories(path)) { - root.Nodes.Add(CreateLazyDirectory(dirpath)); - //LoadDirectory(dirpath, root.Nodes, Path.GetFileName(dirpath)); + root.Nodes.Add(CreateLazyDirectory(dirpath, root)); } foreach (string filepath in Directory.EnumerateFiles(path)) { @@ -370,7 +436,9 @@ namespace NBTPlus NBTFile file = new NBTFile(path); NbtTree tree = new NbtTree(); tree.ReadFrom(file.GetDataInputStream()); - parent.Add(CreateLazyNbt(path, CompressionType.GZip)); + TreeNode node = CreateLazyNbt(path, CompressionType.GZip); + parent.Add(node); + LinkDataNodeParent(node, node.Parent); return; } catch { } @@ -379,7 +447,9 @@ namespace NBTPlus NBTFile file = new NBTFile(path); NbtTree tree = new NbtTree(); tree.ReadFrom(file.GetDataInputStream(CompressionType.None)); - parent.Add(CreateLazyNbt(path, CompressionType.None)); + TreeNode node = CreateLazyNbt(path, CompressionType.None); + parent.Add(node); + LinkDataNodeParent(node, node.Parent); return; } catch { } @@ -413,6 +483,39 @@ namespace NBTPlus } } + private void SaveAll () + { + if (_nodeTree.Nodes.Count > 0) { + SaveNode(_nodeTree.Nodes[0]); + } + } + + private void SaveNode (TreeNode node) + { + foreach (TreeNode sub in node.Nodes) { + if (sub.Tag != null && sub.Tag is DataNode) { + SaveNode(sub); + } + } + + if (node.Tag is NbtFileData) { + SaveNbtFileNode(node); + } + } + + private void SaveNbtFileNode (TreeNode node) + { + NbtFileData data = node.Tag as NbtFileData; + if (data == null || !data.Modified) + return; + + NBTFile file = new NBTFile(data.Path); + using (Stream str = file.GetDataOutputStream(data.CompressionType)) { + data.Tree.WriteTo(str); + } + data.Modified = false; + } + private void aboutToolStripMenuItem_Click (object sender, EventArgs e) { new About().Show(); @@ -436,6 +539,75 @@ namespace NBTPlus { OpenFile(); } + + private void toolStripButton5_Click (object sender, EventArgs e) + { + if (_nodeTree.SelectedNode == null) + return; + + TreeNode baseNode = _nodeTree.SelectedNode; + while (baseNode.Tag == null || !(baseNode.Tag is DataNode)) { + baseNode = baseNode.Parent; + } + + // Can only delete internal NBT nodes + if (baseNode == null || baseNode == _nodeTree.SelectedNode) + return; + + (baseNode.Tag as DataNode).Modified = true; + + DeleteNodeNbtTag(_nodeTree.SelectedNode); + + _nodeTree.SelectedNode.Remove(); + } + + private void DeleteNodeNbtTag (TreeNode node) + { + TagNode tag = node.Tag as TagNode; + if (tag == null) + return; + + TagNode parentTag = node.Parent.Tag as TagNode; + if (parentTag == null) { + NbtDataNode parentData = node.Parent.Tag as NbtDataNode; + if (parentData == null) + return; + + parentTag = parentData.Tree.Root; + if (parentTag == null) + return; + } + + switch (parentTag.GetTagType()) { + case TagType.TAG_LIST: + parentTag.ToTagList().Remove(tag); + break; + + case TagType.TAG_COMPOUND: + DeleteTagFromCompound(parentTag.ToTagCompound(), tag); + break; + } + } + + private void DeleteTagFromCompound (TagNodeCompound parent, TagNode target) + { + string match = ""; + foreach (KeyValuePair kv in parent) { + if (kv.Value == target) { + match = kv.Key; + break; + } + } + + if (match != null) { + parent.Remove(match); + } + } + + private void _buttonSave_Click (object sender, EventArgs e) + { + SaveAll(); + } } public class TagKey : IComparable @@ -472,9 +644,56 @@ namespace NBTPlus #endregion } - public class RegionChunkData + public class DataNode + { + public DataNode () + { + } + + public DataNode (DataNode parent) + { + Parent = parent; + } + + public DataNode Parent { get; set; } + + private bool _modified; + public bool Modified + { + get { return _modified; } + set + { + if (value && Parent != null) { + Parent.Modified = value; + } + _modified = value; + } + } + } + + public class NbtDataNode : DataNode + { + public NbtDataNode () + { + } + + public NbtDataNode (DataNode parent) + : base(parent) + { + } + + public NbtTree Tree { get; set; } + } + + public class RegionChunkData : NbtDataNode { public RegionChunkData (RegionFile file, int x, int z) + : this(null, file, x, z) + { + } + + public RegionChunkData (DataNode parent, RegionFile file, int x, int z) + : base(parent) { Region = file; X = x; @@ -486,9 +705,15 @@ namespace NBTPlus public int Z { get; private set; } } - public class RegionData + public class RegionData : DataNode { public RegionData (string path) + : this(null, path) + { + } + + public RegionData (DataNode parent, string path) + : base(parent) { Path = path; } @@ -496,9 +721,15 @@ namespace NBTPlus public string Path { get; private set; } } - public class NbtFileData + public class NbtFileData : NbtDataNode { public NbtFileData (string path, CompressionType cztype) + : this(null, path, cztype) + { + } + + public NbtFileData (DataNode parent, string path, CompressionType cztype) + : base(parent) { Path = path; CompressionType = cztype; @@ -508,9 +739,15 @@ namespace NBTPlus public CompressionType CompressionType { get; private set; } } - public class DirectoryData + public class DirectoryData : DataNode { public DirectoryData (string path) + : this(null, path) + { + } + + public DirectoryData (DataNode parent, string path) + : base(parent) { Path = path; } diff --git a/Form1.resx b/Form1.resx index 9ff0c49..92a1c2a 100644 --- a/Form1.resx +++ b/Form1.resx @@ -128,7 +128,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADW - LgAAAk1TRnQBSQFMAgEBDgEAASABAAEgAQABEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA + LgAAAk1TRnQBSQFMAgEBDgEAASgBAAEoAQABEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA AwABQAMAAQEBAAEYBgABMBIAA/wD+SH4A/kD/AMAA/0D+SH4A/kD/WMAAZYBqQG8AVwBhAGuAVwBhAGu AVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGu AVwBhAGuAZYBqQG8AwACzwHLArkBsAK5AbACuQGwArkBsAK5AbACuQGwArkBsAK5AbACuQGwArkBsAK5 @@ -334,24 +334,24 @@ 132, 17 - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJ4SURBVDhPjdNdSFNhHMfx56Kb3i7s0i66mTeSkDddSBBh - zC6iiUHtQrAGCYZJSgyUmfm+HKmoOYdmVNOsDE3ETAVrBKViCopZc669+Tbn5jybe/XX8zzkgZMEHfhy - /s/hnA/PgXMI+XNMa8nNKS0p/5/YvfvPiefJGlIpmLVY/3QDG+M5EOYeIO7oAFaeS9voBrv3APClilRj - +y32vG8QsrfA87UAH/TpGHlfL2l0rBn9VSdbDwCfq0htfOsVYutGXtz7GtN9d+D0eLAqCHDQbH4/3plM - qC6TD2dpNEkSxFRO6mLubkRXnvHYPNGjwrzZjJnFRVjcbiysrqJraAjsyCwuzpMg4/fJo+jaC4QdT3hs - Nj1V4vvSEkdWfD6ONBuNYkkZGRpxF6OlpDHs6kTQ2sZj83jHNfxYXubIJn2FfYTthL2OvLAwXwSGS0jL - rq0dgrmFx+YxQxbMVitHvIGABHHs7CA9P79ABAbVRB9c1sO/2Mhj83CrAhabjSPbu7sSZC0YxPnc3Lsi - 0K8m7cLPJvjmdTw2DzVdhpUCDBFCIQmyRdfnVKoiEegtIp3+hXp4Zmt5bB5ouASb3c6RYCQiQfx0fTY7 - +54IdBcQo2+uDu7pCh6b+3Ry2B0OjoSiUQkiUCBVqVQz4DDthOEWGfDO0k95soznpbvofXgRTqeTI9FY - TIIEKHhaoShlQAJNlicnbSONqX7LYF5kc6oCW9+q0VNzAS6XC05afG8PMVokHkeYYmE6J6alaSVfoyGX - ZOpVxPCyJPHjRNeVX+qrh+xHZLLmo8nJdcdTUmr/7phMdvvAP8EuNOSQM7psoqm8Th7T5Sla4j9K+A2s - V10KzrJmywAAAABJRU5ErkJggg== + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJ4SURBVDhPjdNNSBRhHMfx59Clt4Md7dBlvUhCXjpIEGGs + HSLFoPYgWAsJhklKLChr5utuSipqrotmVKtZGZqFmQrWEpSKJii2teq2b76t++I67vv663kecmCSoIEv + 83+GmQ/PwAwhf45pLbk+pSUV/xO7d+858TxZS6oEsxbrn65hYzwXwtw9xO2dwMpTaRs9YPfuA75Ukxps + vcau9xVCtla4vxbigy4dI+8bJI2OtWCg+njbPuBzNdHEPS8QWzfw4t6XmO6/BYfbjVVBgJ1m9fvxxmhE + Tbl8OFutTpIgxgpSF3P1ILryhMfmiV4l5s1mfDOZsORyYWF1Fd1DQ2BHVklJvgQZv0seRNeeIWx/xGOz + 8bEC3xcXObLi83GkxWAQS8rIUIu7GC0jTWFnFwKWdh6bxzuv4MfyMkc26SvsIWwn7HXkRUUFIjBcSlqD + 1g4I5lYem8f02TBbLBzx7uxIEPv2NtILCgpF4J2K6ALLOvhNTTw2D7dlYslq5chWMChB1gIBnM3Luy0C + AyrSIfxshm++nsfmoeaLsFCAIUIoJEE8dH1GqSwWgb5i0uVfaIB7VsNj82DjBVhtNo4EIhEJ4qfr0zk5 + d0Sgp5AYfHN1cE1X8tjcXy+HzW7nSCgalSACBVIVChUDDtKO6W+QQe8s/ZQny3leuou+++fhcDg4Eo3F + JMgOBU9mZpYxIIEmy5eT9pGmVP/S2/zI5lQlPDM16K09B6fTCQctvruLGC0SjyNMsTCdE9PStJKvUZ9H + snRKon9emvhxovvSL9XlA7ZDMlnL4eTkuqMpKZq/OyKT3dz3T7ALjbnkVH0OUVddJQ/p8gQt8R8l/Aar + pl0JhgWsGAAAAABJRU5ErkJggg== - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGqSURBVDhPrY3dK0NxHIfPcf4Al8qFK9du1K65kt0oGi0v @@ -364,7 +364,7 @@ igo5RXMJp90SBMH8Hbj7TDGndIseXC5XJE8k/4/Ayf0AQu4lRh6dpg8AAAAASUVORK5CYII= - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAClSURBVDhPY2CgBmBkZGwE4jUgs0A0kexGuN1ADetIdQg5 @@ -373,7 +373,7 @@ PxCLA7EUiRikhx8A/a8lPHxgyaMAAAAASUVORK5CYII= - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGtSURBVDhPY2AgETxkYNB+wMg49xIDgz2JWhkYgoKC5PeI @@ -381,12 +381,12 @@ 3717938zK+vWeQwMRgQNAGlePZVx+/93Hf93rzIGaxYXF282ZGPTJEnzn9fN/++dDfvfU8mxgYuLS58k zT+e1/1/cD7q/5rJTAfWz2AmHHDIzv7yuOL/40ux/5f0MB1aMYnZhSSb398r/P/kcsL/2a1Mhxd1MLuS pPn1rUyw5kk1TEenN5Ko+dnVZKDm+P+dxYzHJ1QyELZ5cQ2D+vJexmWgqHp0Mfb/wwvR/+uzGU+0FTC4 - EXT2qnoGtumFDDkfnxx4f2a3y//75yL+VyYxnqrNYHAnqBmkoD+bwXL34qQDn54d+n/z3IKv+eGMh8sS + EXT2qnoGtumFDDkfnxx4f2a3y//75yL+VyYxnqrNYHAnqBmkoD+bwXL34qQDn54d+n/j3IKv+eGMh8sS iNQMMqAqlrEVpHnxxNCLyT6Ms+z1GQKAwqJALAzEgkDMD8S8QMwFxBxAzAbELEDMDMSMIDP+J3sxzrLW - Y0jm42QwBfJ1gVgLiNWAWBGIZYFYEohFgFgAiLmhBrECaSYAoFHTxdTbRbsAAAAASUVORK5CYII= + Y0jm42QwBfJ1gVgLiNWAWBGIZYFYEohFgFgAiLmhBrECaSYAn5vTxDvxqyMAAAAASUVORK5CYII= - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFYSURBVDhPzZG9SwNBEMXnL1BOc4KoAcFoF4houpSBFIEU @@ -398,7 +398,7 @@ uL/0VNBPfNVEww/s+bJaSKBvAQAAAABJRU5ErkJggg== - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHTSURBVDhPjZI5S0NBFIVTKnYWWgumCAgWggSxUjApFMU1 @@ -412,7 +412,7 @@ S8tSg063/p+CFj3o/QGV+z7QMPhyMQAAAABJRU5ErkJggg== - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHDSURBVDhPjZK7S4JhFMYdi7aGmoMchKAhCImmgmxIiLQw @@ -426,7 +426,7 @@ RpkLgwRoAAAAAElFTkSuQmCC - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAG9SURBVDhPjZLNSwJRFMVdFu1a1DrIhRC0CCKiVUG5KIi0 @@ -440,7 +440,7 @@ AAAAAElFTkSuQmCC - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGzSURBVDhPjZK9S4JRFMYdi7aGmoUchKAhCImmgnRIiuzD @@ -454,7 +454,7 @@ YII= - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAG1SURBVDhPjZK9S4JRFMYdi7aGmoUchKAhCImmgnRIirRy @@ -468,7 +468,7 @@ rkJggg== - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHPSURBVDhPjZLLK4RhFMZnSXYWrJVZTCkLJcmKYhYmcl8o @@ -482,7 +482,7 @@ Gs32fwJa5CD3C+PNRA3m0ZBNAAAAAElFTkSuQmCC - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACuSURBVDhPY2AYtiCMkZFxGsx3UHYYsb6NAGqYCVQshqRB @@ -491,7 +491,7 @@ DIBsACgcRJAMEIZ6C68BhLw2SOUBc1IVYVaWXdcAAAAASUVORK5CYII= - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADBSURBVDhPY2AYBRghwMjIOB2EyQ0aeaDmiUC8HmiAPDmG @@ -500,7 +500,7 @@ aXcoHyYG4m8F4n4gBsnD1NuCDAEZwAfEolBJkAJCGKQWpAekd6gDAOMVIZFrkI0gAAAAAElFTkSuQmCC - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAC/SURBVDhPzZA9CsJAEIWzN4itB1vSpEgVUllY7Bm8i/+i @@ -509,16 +509,16 @@ uHgbhBju4QgnOMOVtxvc4QEy8EbVsM3hCbLLCqH5BR8DbfLfdS/FrCnFMPcqzwAAAABJRU5ErkJggg== - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFySURBVDhPY2CgBthfz8CyP4kl40AiczcM19sxnEHGyHIg tSA9cLv3xrErn6rWXPp+T+f/d7s7wHh2hikKhomD1IDUgvTADdiVwOx+c4r3EWQDlpc4/ofhJYV2cINB - akBqQXrgBuyIZ8m9vyz7wbPNDf9heEuj338YXlftARcHyYPUgvTADdgawzz11/Xlf//fXfUfhu+uKgcy + akBqQXrgBuyIZ8m9vyz7wbPNDf9heEuj338YXlftARcHyYPUgvTADdgawzz157Xlf//fXfUfhu+uKgcy IfjMzDS4OEgepBakB27A5ijmGT8vzf//+cRUON7dEfofhjc3+KLIgdSC9MAN2BDFPPvbudn/PxyZCMcg zavKXcCGLCt2QJEDqQXpgRuwOoJ5/qeT0/6/2d8DxyDNID6MRpYDqQXpgRuwPIx58btD/f9f7monCoPU gvTADVgSwrjsFTDun25tIgqD1IL0wA2YH8C4+smWxv8PN9QShUFqQXrgBkzxZNzxYF31//trq4jCILUg - PTAD5FKNGee1uTAeJQWD9AANkAMZwg/E4kAsRSIG6QHppQwAAI8j3axyxmTGAAAAAElFTkSuQmCC + PTAD5FKNGee1uTAeJQWD9AANkAMZwg/E4kAsRSIG6QHppQwAAIR13ahrUo3PAAAAAElFTkSuQmCC \ No newline at end of file