mirror of
https://github.com/jaquadro/NBTExplorer.git
synced 2025-01-09 17:36:25 +00:00
Fixed unicode bug, fixed byte array create bug, improved dialogs, byte/int arrays are now editable.
This commit is contained in:
parent
837bf206ec
commit
6781be7b2f
22 changed files with 1475 additions and 404 deletions
7
About.Designer.cs
generated
7
About.Designer.cs
generated
|
@ -42,9 +42,10 @@
|
|||
this.linkLabel1.Name = "linkLabel1";
|
||||
this.linkLabel1.Size = new System.Drawing.Size(245, 120);
|
||||
this.linkLabel1.TabIndex = 0;
|
||||
this.linkLabel1.Text = "NBTExplorer\r\nCopyright ©2011 Justin Aquadro\r\n\r\nNBTExplorer is based on NBTEdit by" +
|
||||
" copyboy\r\nFugue icon set: p.yusukekamiyamane.com\r\n\r\nEmail: jaquadro@gmail.com\r\nN" +
|
||||
"BTExplorer Github Project Page";
|
||||
this.linkLabel1.Text = "NBTExplorer\r\nCopyright ©2011-2012 Justin Aquadro\r\n\r\nNBTExplorer is based on NBTEd" +
|
||||
"it by copyboy\r\nFugue icon set: p.yusukekamiyamane.com\r\n\r\nEmail: jaquadro@gmail.c" +
|
||||
"om\r\nNBTExplorer Github Project Page";
|
||||
this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
|
||||
//
|
||||
// pictureBox1
|
||||
//
|
||||
|
|
5
About.cs
5
About.cs
|
@ -13,5 +13,10 @@ namespace NBTExplorer
|
|||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void linkLabel1_LinkClicked (object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -121,7 +121,7 @@
|
|||
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41Ljg3O4Bd
|
||||
YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAAZdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41Ljg3O4Bd
|
||||
AAAGm0lEQVR4Xu2dS3LbQAwFvcpZcoDcJtscRIfIfZ2wJLkklVzToPCGpN0Lr/gEgDONh5Gsz9vpdHrz
|
||||
j63B3z8/38mf63l6E6pCYxGoFo1gCVapsQSLOfvSWKWF/e6dKFiCFWkYwRIswSqcHROTKLIBiUL3EFPH
|
||||
0rEiDSNYgiVYjkLeBVuPQx2L71Wks7cGIJVfsAQr0jCCJViC5RmLd0FqxNG4Ohbfq0hn0406mk6wBCvS
|
||||
|
|
126
CreateNode.Designer.cs
generated
Normal file
126
CreateNode.Designer.cs
generated
Normal file
|
@ -0,0 +1,126 @@
|
|||
namespace NBTExplorer
|
||||
{
|
||||
partial class CreateNode
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose (bool disposing)
|
||||
{
|
||||
if (disposing && (components != null)) {
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent ()
|
||||
{
|
||||
this._sizeField = new System.Windows.Forms.TextBox();
|
||||
this._sizeFieldLabel = new System.Windows.Forms.Label();
|
||||
this._nameFieldLabel = new System.Windows.Forms.Label();
|
||||
this._nameField = new System.Windows.Forms.TextBox();
|
||||
this._buttonCancel = new System.Windows.Forms.Button();
|
||||
this._buttonOK = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// _sizeField
|
||||
//
|
||||
this._sizeField.Location = new System.Drawing.Point(56, 26);
|
||||
this._sizeField.Name = "_sizeField";
|
||||
this._sizeField.Size = new System.Drawing.Size(67, 20);
|
||||
this._sizeField.TabIndex = 7;
|
||||
//
|
||||
// _sizeFieldLabel
|
||||
//
|
||||
this._sizeFieldLabel.AutoSize = true;
|
||||
this._sizeFieldLabel.Location = new System.Drawing.Point(12, 29);
|
||||
this._sizeFieldLabel.Name = "_sizeFieldLabel";
|
||||
this._sizeFieldLabel.Size = new System.Drawing.Size(30, 13);
|
||||
this._sizeFieldLabel.TabIndex = 6;
|
||||
this._sizeFieldLabel.Text = "Size:";
|
||||
//
|
||||
// _nameFieldLabel
|
||||
//
|
||||
this._nameFieldLabel.AutoSize = true;
|
||||
this._nameFieldLabel.Location = new System.Drawing.Point(12, 9);
|
||||
this._nameFieldLabel.Name = "_nameFieldLabel";
|
||||
this._nameFieldLabel.Size = new System.Drawing.Size(38, 13);
|
||||
this._nameFieldLabel.TabIndex = 5;
|
||||
this._nameFieldLabel.Text = "Name:";
|
||||
//
|
||||
// _nameField
|
||||
//
|
||||
this._nameField.Location = new System.Drawing.Point(56, 6);
|
||||
this._nameField.Name = "_nameField";
|
||||
this._nameField.Size = new System.Drawing.Size(209, 20);
|
||||
this._nameField.TabIndex = 4;
|
||||
//
|
||||
// _buttonCancel
|
||||
//
|
||||
this._buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this._buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this._buttonCancel.Location = new System.Drawing.Point(109, 57);
|
||||
this._buttonCancel.Name = "_buttonCancel";
|
||||
this._buttonCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this._buttonCancel.TabIndex = 9;
|
||||
this._buttonCancel.Text = "Cancel";
|
||||
this._buttonCancel.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// _buttonOK
|
||||
//
|
||||
this._buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this._buttonOK.Location = new System.Drawing.Point(190, 57);
|
||||
this._buttonOK.Name = "_buttonOK";
|
||||
this._buttonOK.Size = new System.Drawing.Size(75, 23);
|
||||
this._buttonOK.TabIndex = 8;
|
||||
this._buttonOK.Text = "OK";
|
||||
this._buttonOK.UseVisualStyleBackColor = true;
|
||||
this._buttonOK.Click += new System.EventHandler(this._buttonOK_Click);
|
||||
//
|
||||
// CreateNode
|
||||
//
|
||||
this.AcceptButton = this._buttonOK;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this._buttonCancel;
|
||||
this.ClientSize = new System.Drawing.Size(277, 92);
|
||||
this.Controls.Add(this._buttonCancel);
|
||||
this.Controls.Add(this._buttonOK);
|
||||
this.Controls.Add(this._sizeField);
|
||||
this.Controls.Add(this._sizeFieldLabel);
|
||||
this.Controls.Add(this._nameFieldLabel);
|
||||
this.Controls.Add(this._nameField);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "CreateNode";
|
||||
this.ShowIcon = false;
|
||||
this.ShowInTaskbar = false;
|
||||
this.Text = "Create Tag...";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TextBox _sizeField;
|
||||
private System.Windows.Forms.Label _sizeFieldLabel;
|
||||
private System.Windows.Forms.Label _nameFieldLabel;
|
||||
private System.Windows.Forms.TextBox _nameField;
|
||||
private System.Windows.Forms.Button _buttonCancel;
|
||||
private System.Windows.Forms.Button _buttonOK;
|
||||
}
|
||||
}
|
182
CreateNode.cs
Normal file
182
CreateNode.cs
Normal file
|
@ -0,0 +1,182 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using Substrate.Nbt;
|
||||
|
||||
namespace NBTExplorer
|
||||
{
|
||||
public partial class CreateNode : Form
|
||||
{
|
||||
private string _name;
|
||||
private int _size;
|
||||
private TagType _type;
|
||||
private TagNode _tag;
|
||||
|
||||
private bool _hasName;
|
||||
|
||||
private List<string> _invalidNames = new List<string>();
|
||||
|
||||
public CreateNode (TagType tagType)
|
||||
: this(tagType, true)
|
||||
{ }
|
||||
|
||||
public CreateNode (TagType tagType, bool hasName)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
_type = tagType;
|
||||
_hasName = hasName;
|
||||
|
||||
SetNameBoxState();
|
||||
SetSizeBoxState();
|
||||
}
|
||||
|
||||
private void SetNameBoxState ()
|
||||
{
|
||||
if (HasName) {
|
||||
_nameFieldLabel.Enabled = true;
|
||||
_nameField.Enabled = true;
|
||||
}
|
||||
else {
|
||||
_nameFieldLabel.Enabled = false;
|
||||
_nameField.Enabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void SetSizeBoxState ()
|
||||
{
|
||||
if (IsTagSizedType) {
|
||||
_sizeFieldLabel.Enabled = true;
|
||||
_sizeField.Enabled = true;
|
||||
}
|
||||
else {
|
||||
_sizeFieldLabel.Enabled = false;
|
||||
_sizeField.Enabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
public string TagName
|
||||
{
|
||||
get { return _name; }
|
||||
}
|
||||
|
||||
public TagNode TagNode
|
||||
{
|
||||
get { return _tag; }
|
||||
}
|
||||
|
||||
public List<string> InvalidNames
|
||||
{
|
||||
get { return _invalidNames; }
|
||||
}
|
||||
|
||||
public bool HasName
|
||||
{
|
||||
get { return _hasName; }
|
||||
}
|
||||
|
||||
private void Apply ()
|
||||
{
|
||||
if (ValidateInput()) {
|
||||
_tag = CreateTag();
|
||||
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private TagNode CreateTag ()
|
||||
{
|
||||
switch (_type) {
|
||||
case TagType.TAG_BYTE:
|
||||
return new TagNodeByte();
|
||||
case TagType.TAG_BYTE_ARRAY:
|
||||
return new TagNodeByteArray(new byte[_size]);
|
||||
case TagType.TAG_COMPOUND:
|
||||
return new TagNodeCompound();
|
||||
case TagType.TAG_DOUBLE:
|
||||
return new TagNodeDouble();
|
||||
case TagType.TAG_FLOAT:
|
||||
return new TagNodeFloat();
|
||||
case TagType.TAG_INT:
|
||||
return new TagNodeInt();
|
||||
case TagType.TAG_INT_ARRAY:
|
||||
return new TagNodeIntArray(new int[_size]);
|
||||
case TagType.TAG_LIST:
|
||||
return new TagNodeList(TagType.TAG_BYTE);
|
||||
case TagType.TAG_LONG:
|
||||
return new TagNodeLong();
|
||||
case TagType.TAG_SHORT:
|
||||
return new TagNodeShort();
|
||||
case TagType.TAG_STRING:
|
||||
return new TagNodeString();
|
||||
default:
|
||||
return new TagNodeByte();
|
||||
}
|
||||
}
|
||||
|
||||
private bool ValidateInput ()
|
||||
{
|
||||
return ValidateNameInput()
|
||||
&& ValidateSizeInput();
|
||||
}
|
||||
|
||||
private bool ValidateNameInput ()
|
||||
{
|
||||
if (!HasName)
|
||||
return true;
|
||||
|
||||
string text = _nameField.Text.Trim();
|
||||
if (String.IsNullOrEmpty(text)) {
|
||||
MessageBox.Show("You must provide a nonempty name.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (_invalidNames.Contains(text)) {
|
||||
MessageBox.Show("Duplicate name provided.");
|
||||
return false;
|
||||
}
|
||||
|
||||
_name = _nameField.Text.Trim();
|
||||
return true;
|
||||
}
|
||||
|
||||
private bool ValidateSizeInput ()
|
||||
{
|
||||
if (!IsTagSizedType)
|
||||
return true;
|
||||
|
||||
if (!Int32.TryParse(_sizeField.Text.Trim(), out _size)) {
|
||||
MessageBox.Show("Size must be a valid integer value.");
|
||||
return false;
|
||||
}
|
||||
|
||||
_size = Math.Max(0, _size);
|
||||
return true;
|
||||
}
|
||||
|
||||
private bool IsTagSizedType
|
||||
{
|
||||
get
|
||||
{
|
||||
switch (_type) {
|
||||
case TagType.TAG_BYTE_ARRAY:
|
||||
case TagType.TAG_INT_ARRAY:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void _buttonOK_Click (object sender, EventArgs e)
|
||||
{
|
||||
Apply();
|
||||
}
|
||||
}
|
||||
}
|
120
CreateNode.resx
Normal file
120
CreateNode.resx
Normal file
|
@ -0,0 +1,120 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
91
EditName.Designer.cs
generated
Normal file
91
EditName.Designer.cs
generated
Normal file
|
@ -0,0 +1,91 @@
|
|||
namespace NBTExplorer
|
||||
{
|
||||
partial class EditName
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose (bool disposing)
|
||||
{
|
||||
if (disposing && (components != null)) {
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent ()
|
||||
{
|
||||
this._nameField = new System.Windows.Forms.TextBox();
|
||||
this._buttonCancel = new System.Windows.Forms.Button();
|
||||
this._buttonOK = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// _nameField
|
||||
//
|
||||
this._nameField.Location = new System.Drawing.Point(12, 10);
|
||||
this._nameField.Name = "_nameField";
|
||||
this._nameField.Size = new System.Drawing.Size(196, 20);
|
||||
this._nameField.TabIndex = 0;
|
||||
//
|
||||
// _buttonCancel
|
||||
//
|
||||
this._buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this._buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this._buttonCancel.Location = new System.Drawing.Point(52, 37);
|
||||
this._buttonCancel.Name = "_buttonCancel";
|
||||
this._buttonCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this._buttonCancel.TabIndex = 11;
|
||||
this._buttonCancel.Text = "Cancel";
|
||||
this._buttonCancel.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// _buttonOK
|
||||
//
|
||||
this._buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this._buttonOK.Location = new System.Drawing.Point(133, 37);
|
||||
this._buttonOK.Name = "_buttonOK";
|
||||
this._buttonOK.Size = new System.Drawing.Size(75, 23);
|
||||
this._buttonOK.TabIndex = 10;
|
||||
this._buttonOK.Text = "OK";
|
||||
this._buttonOK.UseVisualStyleBackColor = true;
|
||||
this._buttonOK.Click += new System.EventHandler(this._buttonOK_Click);
|
||||
//
|
||||
// EditName
|
||||
//
|
||||
this.AcceptButton = this._buttonOK;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this._buttonCancel;
|
||||
this.ClientSize = new System.Drawing.Size(220, 72);
|
||||
this.Controls.Add(this._buttonCancel);
|
||||
this.Controls.Add(this._buttonOK);
|
||||
this.Controls.Add(this._nameField);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||
this.KeyPreview = true;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "EditName";
|
||||
this.Text = "Edit Name...";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TextBox _nameField;
|
||||
private System.Windows.Forms.Button _buttonCancel;
|
||||
private System.Windows.Forms.Button _buttonOK;
|
||||
}
|
||||
}
|
71
EditName.cs
Normal file
71
EditName.cs
Normal file
|
@ -0,0 +1,71 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using Substrate.Nbt;
|
||||
|
||||
namespace NBTExplorer
|
||||
{
|
||||
public partial class EditName : Form
|
||||
{
|
||||
private string _name;
|
||||
|
||||
private List<string> _invalidNames = new List<string>();
|
||||
|
||||
public EditName (String name)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
_name = name;
|
||||
|
||||
_nameField.Text = _name;
|
||||
}
|
||||
|
||||
public String TagName
|
||||
{
|
||||
get { return _name; }
|
||||
}
|
||||
|
||||
public List<string> InvalidNames
|
||||
{
|
||||
get { return _invalidNames; }
|
||||
}
|
||||
|
||||
private void Apply ()
|
||||
{
|
||||
if (ValidateInput()) {
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
}
|
||||
}
|
||||
|
||||
private bool ValidateInput ()
|
||||
{
|
||||
return ValidateNameInput();
|
||||
}
|
||||
|
||||
private bool ValidateNameInput ()
|
||||
{
|
||||
string text = _nameField.Text.Trim();
|
||||
if (String.IsNullOrEmpty(text)) {
|
||||
MessageBox.Show("You must provide a nonempty name.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (_invalidNames.Contains(text)) {
|
||||
MessageBox.Show("Duplicate name provided.");
|
||||
return false;
|
||||
}
|
||||
|
||||
_name = _nameField.Text.Trim();
|
||||
return true;
|
||||
}
|
||||
|
||||
private void _buttonOK_Click (object sender, EventArgs e)
|
||||
{
|
||||
Apply();
|
||||
}
|
||||
}
|
||||
}
|
120
EditName.resx
Normal file
120
EditName.resx
Normal file
|
@ -0,0 +1,120 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
92
EditString.Designer.cs
generated
Normal file
92
EditString.Designer.cs
generated
Normal file
|
@ -0,0 +1,92 @@
|
|||
namespace NBTExplorer
|
||||
{
|
||||
partial class EditString
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose (bool disposing)
|
||||
{
|
||||
if (disposing && (components != null)) {
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent ()
|
||||
{
|
||||
this._stringField = new System.Windows.Forms.TextBox();
|
||||
this._buttonCancel = new System.Windows.Forms.Button();
|
||||
this._buttonOK = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// _stringField
|
||||
//
|
||||
this._stringField.Location = new System.Drawing.Point(12, 12);
|
||||
this._stringField.Multiline = true;
|
||||
this._stringField.Name = "_stringField";
|
||||
this._stringField.Size = new System.Drawing.Size(331, 116);
|
||||
this._stringField.TabIndex = 4;
|
||||
//
|
||||
// _buttonCancel
|
||||
//
|
||||
this._buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this._buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this._buttonCancel.Location = new System.Drawing.Point(187, 134);
|
||||
this._buttonCancel.Name = "_buttonCancel";
|
||||
this._buttonCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this._buttonCancel.TabIndex = 9;
|
||||
this._buttonCancel.Text = "Cancel";
|
||||
this._buttonCancel.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// _buttonOK
|
||||
//
|
||||
this._buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this._buttonOK.Location = new System.Drawing.Point(268, 134);
|
||||
this._buttonOK.Name = "_buttonOK";
|
||||
this._buttonOK.Size = new System.Drawing.Size(75, 23);
|
||||
this._buttonOK.TabIndex = 8;
|
||||
this._buttonOK.Text = "OK";
|
||||
this._buttonOK.UseVisualStyleBackColor = true;
|
||||
this._buttonOK.Click += new System.EventHandler(this._buttonOK_Click);
|
||||
//
|
||||
// EditString
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this._buttonCancel;
|
||||
this.ClientSize = new System.Drawing.Size(355, 169);
|
||||
this.Controls.Add(this._buttonCancel);
|
||||
this.Controls.Add(this._buttonOK);
|
||||
this.Controls.Add(this._stringField);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "EditString";
|
||||
this.ShowIcon = false;
|
||||
this.ShowInTaskbar = false;
|
||||
this.Text = "Edit String...";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TextBox _stringField;
|
||||
private System.Windows.Forms.Button _buttonCancel;
|
||||
private System.Windows.Forms.Button _buttonOK;
|
||||
}
|
||||
}
|
55
EditString.cs
Normal file
55
EditString.cs
Normal file
|
@ -0,0 +1,55 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using Substrate.Nbt;
|
||||
|
||||
namespace NBTExplorer
|
||||
{
|
||||
public partial class EditString : Form
|
||||
{
|
||||
private string _string;
|
||||
|
||||
public EditString (string stringVal)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
_string = stringVal;
|
||||
|
||||
_stringField.Text = _string;
|
||||
}
|
||||
|
||||
public string StringValue
|
||||
{
|
||||
get { return _string; }
|
||||
}
|
||||
|
||||
private void Apply ()
|
||||
{
|
||||
if (ValidateInput()) {
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private bool ValidateInput ()
|
||||
{
|
||||
return ValidateStringInput();
|
||||
}
|
||||
|
||||
private bool ValidateStringInput ()
|
||||
{
|
||||
_string = _stringField.Text.Trim();
|
||||
return true;
|
||||
}
|
||||
|
||||
private void _buttonOK_Click (object sender, EventArgs e)
|
||||
{
|
||||
Apply();
|
||||
}
|
||||
}
|
||||
}
|
120
EditString.resx
Normal file
120
EditString.resx
Normal file
|
@ -0,0 +1,120 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
39
EditValue.Designer.cs
generated
39
EditValue.Designer.cs
generated
|
@ -28,23 +28,50 @@
|
|||
private void InitializeComponent ()
|
||||
{
|
||||
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||
this._buttonCancel = new System.Windows.Forms.Button();
|
||||
this._buttonOK = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// textBox1
|
||||
//
|
||||
this.textBox1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.textBox1.Location = new System.Drawing.Point(0, 0);
|
||||
this.textBox1.Location = new System.Drawing.Point(12, 10);
|
||||
this.textBox1.Name = "textBox1";
|
||||
this.textBox1.Size = new System.Drawing.Size(246, 20);
|
||||
this.textBox1.Size = new System.Drawing.Size(196, 20);
|
||||
this.textBox1.TabIndex = 0;
|
||||
//
|
||||
// _buttonCancel
|
||||
//
|
||||
this._buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this._buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this._buttonCancel.Location = new System.Drawing.Point(52, 37);
|
||||
this._buttonCancel.Name = "_buttonCancel";
|
||||
this._buttonCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this._buttonCancel.TabIndex = 11;
|
||||
this._buttonCancel.Text = "Cancel";
|
||||
this._buttonCancel.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// _buttonOK
|
||||
//
|
||||
this._buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this._buttonOK.Location = new System.Drawing.Point(133, 37);
|
||||
this._buttonOK.Name = "_buttonOK";
|
||||
this._buttonOK.Size = new System.Drawing.Size(75, 23);
|
||||
this._buttonOK.TabIndex = 10;
|
||||
this._buttonOK.Text = "OK";
|
||||
this._buttonOK.UseVisualStyleBackColor = true;
|
||||
this._buttonOK.Click += new System.EventHandler(this._buttonOK_Click);
|
||||
//
|
||||
// EditValue
|
||||
//
|
||||
this.AcceptButton = this._buttonOK;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(246, 20);
|
||||
this.CancelButton = this._buttonCancel;
|
||||
this.ClientSize = new System.Drawing.Size(220, 72);
|
||||
this.Controls.Add(this._buttonCancel);
|
||||
this.Controls.Add(this._buttonOK);
|
||||
this.Controls.Add(this.textBox1);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||
this.KeyPreview = true;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
|
@ -58,5 +85,7 @@
|
|||
#endregion
|
||||
|
||||
private System.Windows.Forms.TextBox textBox1;
|
||||
private System.Windows.Forms.Button _buttonCancel;
|
||||
private System.Windows.Forms.Button _buttonOK;
|
||||
}
|
||||
}
|
92
EditValue.cs
92
EditValue.cs
|
@ -8,25 +8,14 @@ using Substrate.Nbt;
|
|||
|
||||
namespace NBTExplorer
|
||||
{
|
||||
public enum EditValueType
|
||||
{
|
||||
Name,
|
||||
Value,
|
||||
}
|
||||
|
||||
public partial class EditValue : Form
|
||||
{
|
||||
private string _name;
|
||||
private TagNode _tag;
|
||||
private EditValueType _type;
|
||||
|
||||
private List<string> _invalidNames = new List<string>();
|
||||
|
||||
public EditValue (TagNode tag)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
_type = EditValueType.Value;
|
||||
_tag = tag;
|
||||
|
||||
if (tag == null) {
|
||||
|
@ -35,78 +24,25 @@ namespace NBTExplorer
|
|||
return;
|
||||
}
|
||||
|
||||
SetTitle();
|
||||
|
||||
textBox1.Text = _tag.ToString();
|
||||
}
|
||||
|
||||
public EditValue (string name)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
_type = EditValueType.Name;
|
||||
_name = name ?? "";
|
||||
|
||||
SetTitle();
|
||||
|
||||
textBox1.Text = _name.ToString();
|
||||
}
|
||||
|
||||
public string NodeName
|
||||
{
|
||||
get { return _name; }
|
||||
}
|
||||
|
||||
public TagNode NodeTag
|
||||
{
|
||||
get { return _tag; }
|
||||
}
|
||||
|
||||
public List<string> InvalidNames
|
||||
private void Apply ()
|
||||
{
|
||||
get { return _invalidNames; }
|
||||
}
|
||||
|
||||
private void SetTitle ()
|
||||
{
|
||||
switch (_type) {
|
||||
case EditValueType.Name:
|
||||
base.Text = "Edit Name...";
|
||||
break;
|
||||
|
||||
case EditValueType.Value:
|
||||
base.Text = "Edit Value...";
|
||||
break;
|
||||
if (ValidateInput()) {
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
}
|
||||
}
|
||||
|
||||
private bool ValidateInput ()
|
||||
{
|
||||
switch (_type) {
|
||||
case EditValueType.Name:
|
||||
return ValidateNameInput();
|
||||
case EditValueType.Value:
|
||||
return ValidateValueInput();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private bool ValidateNameInput ()
|
||||
{
|
||||
string text = textBox1.Text.Trim();
|
||||
if (String.IsNullOrEmpty(text)) {
|
||||
MessageBox.Show("You must provide a nonempty name.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (_invalidNames.Contains(text)) {
|
||||
MessageBox.Show("Duplicate name provided.");
|
||||
return false;
|
||||
}
|
||||
|
||||
_name = textBox1.Text.Trim();
|
||||
return true;
|
||||
return ValidateValueInput();
|
||||
}
|
||||
|
||||
private bool ValidateValueInput ()
|
||||
|
@ -157,23 +93,9 @@ namespace NBTExplorer
|
|||
return true;
|
||||
}
|
||||
|
||||
protected override void OnKeyDown (KeyEventArgs e)
|
||||
private void _buttonOK_Click (object sender, EventArgs e)
|
||||
{
|
||||
switch (e.KeyCode) {
|
||||
case Keys.Escape:
|
||||
DialogResult = DialogResult.Cancel;
|
||||
Close();
|
||||
return;
|
||||
|
||||
case Keys.Enter:
|
||||
if (ValidateInput()) {
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
base.OnKeyDown(e);
|
||||
Apply();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -112,9 +112,9 @@
|
|||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
7
Form1.Designer.cs
generated
7
Form1.Designer.cs
generated
|
@ -259,7 +259,7 @@
|
|||
this.findToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("findToolStripMenuItem.Image")));
|
||||
this.findToolStripMenuItem.Name = "findToolStripMenuItem";
|
||||
this.findToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F)));
|
||||
this.findToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.findToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||
this.findToolStripMenuItem.Text = "Find...";
|
||||
this.findToolStripMenuItem.Click += new System.EventHandler(this.findToolStripMenuItem_Click);
|
||||
//
|
||||
|
@ -268,7 +268,7 @@
|
|||
this.findNextToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("findNextToolStripMenuItem.Image")));
|
||||
this.findNextToolStripMenuItem.Name = "findNextToolStripMenuItem";
|
||||
this.findNextToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F3;
|
||||
this.findNextToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.findNextToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||
this.findNextToolStripMenuItem.Text = "Find Next";
|
||||
this.findNextToolStripMenuItem.Click += new System.EventHandler(this.findNextToolStripMenuItem_Click);
|
||||
//
|
||||
|
@ -285,7 +285,7 @@
|
|||
this.aboutToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("aboutToolStripMenuItem.Image")));
|
||||
this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem";
|
||||
this.aboutToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F1;
|
||||
this.aboutToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.aboutToolStripMenuItem.Size = new System.Drawing.Size(126, 22);
|
||||
this.aboutToolStripMenuItem.Text = "&About";
|
||||
this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click);
|
||||
//
|
||||
|
@ -297,6 +297,7 @@
|
|||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this._nodeTree.ImageIndex = 0;
|
||||
this._nodeTree.ImageList = this.imageList1;
|
||||
this._nodeTree.ItemHeight = 18;
|
||||
this._nodeTree.Location = new System.Drawing.Point(0, 49);
|
||||
this._nodeTree.Margin = new System.Windows.Forms.Padding(0);
|
||||
this._nodeTree.Name = "_nodeTree";
|
||||
|
|
139
Form1.cs
139
Form1.cs
|
@ -99,7 +99,7 @@ namespace NBTExplorer
|
|||
case TagType.TAG_FLOAT:
|
||||
case TagType.TAG_DOUBLE:
|
||||
case TagType.TAG_STRING:
|
||||
return tag.ToString();
|
||||
return tag.ToString().Replace('\n', (char)0x00B6);
|
||||
|
||||
case TagType.TAG_BYTE_ARRAY:
|
||||
return tag.ToTagByteArray().Length + " bytes";
|
||||
|
@ -910,9 +910,28 @@ namespace NBTExplorer
|
|||
tag.GetTagType() == TagType.TAG_COMPOUND)
|
||||
return;
|
||||
|
||||
if (tag.GetTagType() == TagType.TAG_BYTE_ARRAY) {
|
||||
if (tag.GetTagType() == TagType.TAG_STRING) {
|
||||
EditString form = new EditString(tag.ToTagString().Data);
|
||||
if (form.ShowDialog() == DialogResult.OK) {
|
||||
TreeNode baseNode = BaseNode(node);
|
||||
if (baseNode != null) {
|
||||
(baseNode.Tag as DataNode).Modified = true;
|
||||
}
|
||||
|
||||
tag.ToTagString().Data = form.StringValue;
|
||||
node.Text = GetNodeText(node);
|
||||
}
|
||||
}
|
||||
else if (tag.GetTagType() == TagType.TAG_BYTE_ARRAY) {
|
||||
HexEditor form = new HexEditor(GetTagNodeName(node), tag.ToTagByteArray().Data);
|
||||
form.ShowDialog();
|
||||
if (form.ShowDialog() == DialogResult.OK && form.Modified) {
|
||||
TreeNode baseNode = BaseNode(node);
|
||||
if (baseNode != null) {
|
||||
(baseNode.Tag as DataNode).Modified = true;
|
||||
}
|
||||
|
||||
Array.Copy(form.Data, tag.ToTagByteArray().Data, tag.ToTagByteArray().Length);
|
||||
}
|
||||
}
|
||||
else if (tag.GetTagType() == TagType.TAG_INT_ARRAY) {
|
||||
TagNodeIntArray iatag = tag.ToTagIntArray();
|
||||
|
@ -923,7 +942,16 @@ namespace NBTExplorer
|
|||
}
|
||||
|
||||
HexEditor form = new HexEditor(GetTagNodeName(node), data);
|
||||
form.ShowDialog();
|
||||
if (form.ShowDialog() == DialogResult.OK && form.Modified) {
|
||||
TreeNode baseNode = BaseNode(node);
|
||||
if (baseNode != null) {
|
||||
(baseNode.Tag as DataNode).Modified = true;
|
||||
}
|
||||
|
||||
for (int i = 0; i < iatag.Length; i++) {
|
||||
iatag.Data[i] = BitConverter.ToInt32(form.Data, i * 4);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
EditValue form = new EditValue(tag);
|
||||
|
@ -961,11 +989,12 @@ namespace NBTExplorer
|
|||
if (name == null)
|
||||
return;
|
||||
|
||||
EditValue form = new EditValue(name);
|
||||
EditName form = new EditName(name);
|
||||
|
||||
TagNode parentTag = GetParentTagNode(node);
|
||||
foreach (string key in parentTag.ToTagCompound().Keys) {
|
||||
form.InvalidNames.Add(key);
|
||||
if (key != name)
|
||||
form.InvalidNames.Add(key);
|
||||
}
|
||||
|
||||
if (form.ShowDialog() == DialogResult.OK) {
|
||||
|
@ -974,7 +1003,7 @@ namespace NBTExplorer
|
|||
(baseNode.Tag as DataNode).Modified = true;
|
||||
}
|
||||
|
||||
SetTagNodeName(node, form.NodeName);
|
||||
SetTagNodeName(node, form.TagName);
|
||||
node.Text = GetNodeText(node);
|
||||
}
|
||||
}
|
||||
|
@ -1004,47 +1033,10 @@ namespace NBTExplorer
|
|||
tag.ToTagList().Count > 0)
|
||||
return;
|
||||
|
||||
TagNode newNode = null;
|
||||
switch (type) {
|
||||
case TagType.TAG_BYTE:
|
||||
newNode = new TagNodeByte();
|
||||
break;
|
||||
case TagType.TAG_SHORT:
|
||||
newNode = new TagNodeShort();
|
||||
break;
|
||||
case TagType.TAG_INT:
|
||||
newNode = new TagNodeInt();
|
||||
break;
|
||||
case TagType.TAG_LONG:
|
||||
newNode = new TagNodeLong();
|
||||
break;
|
||||
case TagType.TAG_FLOAT:
|
||||
newNode = new TagNodeFloat();
|
||||
break;
|
||||
case TagType.TAG_DOUBLE:
|
||||
newNode = new TagNodeDouble();
|
||||
break;
|
||||
case TagType.TAG_BYTE_ARRAY:
|
||||
newNode = new TagNodeByteArray();
|
||||
break;
|
||||
case TagType.TAG_STRING:
|
||||
newNode = new TagNodeString();
|
||||
break;
|
||||
case TagType.TAG_LIST:
|
||||
newNode = new TagNodeList(TagType.TAG_BYTE);
|
||||
break;
|
||||
case TagType.TAG_COMPOUND:
|
||||
newNode = new TagNodeCompound();
|
||||
break;
|
||||
case TagType.TAG_INT_ARRAY:
|
||||
newNode = new TagNodeIntArray();
|
||||
break;
|
||||
}
|
||||
|
||||
if (tag is TagNodeCompound) {
|
||||
TagNodeCompound ctag = tag as TagNodeCompound;
|
||||
|
||||
EditValue form = new EditValue("");
|
||||
CreateNode form = new CreateNode(type);
|
||||
foreach (string key in ctag.Keys) {
|
||||
form.InvalidNames.Add(key);
|
||||
}
|
||||
|
@ -1052,15 +1044,27 @@ namespace NBTExplorer
|
|||
if (form.ShowDialog() != DialogResult.OK)
|
||||
return;
|
||||
|
||||
ctag.Add(form.NodeName, newNode);
|
||||
ctag.Add(form.TagName, form.TagNode);
|
||||
|
||||
TreeNode tnode = NodeFromTag(newNode, form.NodeName);
|
||||
TreeNode tnode = NodeFromTag(form.TagNode, form.TagName);
|
||||
node.Nodes.Add(tnode);
|
||||
|
||||
_nodeTree.SelectedNode = tnode;
|
||||
tnode.Expand();
|
||||
}
|
||||
else if (tag is TagNodeList) {
|
||||
TagNode newNode;
|
||||
if (TagIsSizedType(type)) {
|
||||
CreateNode form = new CreateNode(type, false);
|
||||
if (form.ShowDialog() != DialogResult.OK)
|
||||
return;
|
||||
|
||||
newNode = form.TagNode;
|
||||
}
|
||||
else {
|
||||
newNode = CreateDefaultTag(type);
|
||||
}
|
||||
|
||||
TagNodeList ltag = tag as TagNodeList;
|
||||
if (ltag.ValueType != type)
|
||||
ltag.ChangeValueType(type);
|
||||
|
@ -1082,6 +1086,47 @@ namespace NBTExplorer
|
|||
}
|
||||
}
|
||||
|
||||
private TagNode CreateDefaultTag (TagType type)
|
||||
{
|
||||
switch (type) {
|
||||
case TagType.TAG_BYTE:
|
||||
return new TagNodeByte();
|
||||
case TagType.TAG_SHORT:
|
||||
return new TagNodeShort();
|
||||
case TagType.TAG_INT:
|
||||
return new TagNodeInt();
|
||||
case TagType.TAG_LONG:
|
||||
return new TagNodeLong();
|
||||
case TagType.TAG_FLOAT:
|
||||
return new TagNodeFloat();
|
||||
case TagType.TAG_DOUBLE:
|
||||
return new TagNodeDouble();
|
||||
case TagType.TAG_BYTE_ARRAY:
|
||||
return new TagNodeByteArray(new byte[0]);
|
||||
case TagType.TAG_STRING:
|
||||
return new TagNodeString();
|
||||
case TagType.TAG_LIST:
|
||||
return new TagNodeList(TagType.TAG_BYTE);
|
||||
case TagType.TAG_COMPOUND:
|
||||
return new TagNodeCompound();
|
||||
case TagType.TAG_INT_ARRAY:
|
||||
return new TagNodeIntArray(new int[0]);
|
||||
default:
|
||||
return new TagNodeByte();
|
||||
}
|
||||
}
|
||||
|
||||
private bool TagIsSizedType (TagType type)
|
||||
{
|
||||
switch (type) {
|
||||
case TagType.TAG_BYTE_ARRAY:
|
||||
case TagType.TAG_INT_ARRAY:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private void _buttonAddTagByte_Click (object sender, EventArgs e)
|
||||
{
|
||||
AddTagToNode(_nodeTree.SelectedNode, TagType.TAG_BYTE);
|
||||
|
|
477
Form1.resx
477
Form1.resx
|
@ -342,213 +342,212 @@
|
|||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAI
|
||||
MAAAAk1TRnQBSQFMAgEBDwEAAfgBAAH4AQABEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA
|
||||
AwABQAMAAQEBAAEYBgABMBIAA/wD+SH4A/kD/AMAA/0D+SH4A/kD/WMAAZYBqQG8AVwBhAGuAVwBhAGu
|
||||
AVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGu
|
||||
AVwBhAGuAZYBqQG8AwACzwHLArkBsAK5AbACuQGwArkBsAK5AbACuQGwArkBsAK5AbACuQGwArkBsAK5
|
||||
AbACuQGwArkBsALPActjAAFsAZMBugFVAYgBuwFwAaMB1gFnAZoBzQFnAZoBzQFnAZoBzQFnAZoBzQFn
|
||||
AZoBzQFnAZoBzQFnAZoBzQFnAZoBzQFnAZoBzQFwAaMB1gFVAYgBuwFsAZMBugMAAsEBuQL5AekC8wHi
|
||||
AvMB4gLzAeIC8wHiAvMB4gLzAeIC8wHiAvMB4gLzAeIC8wHiAvMB4gL5AekCwQG5YwABfgGiAccBcQGk
|
||||
AdcBVQGIAbsBcQGkAdcBcQGkAdcBcQGkAdcBcQGkAdcBcQGkAdcBcQGkAdcBcQGkAdcBcQGkAdcBcQGk
|
||||
AdcBVQGIAbsBcQGkAdcBfgGiAccDAALLAcMC9AHkAXoBpwGbAYcBtwGnAYcBtQGjAYkBswGiAWgBoAGG
|
||||
AVcBlwF4AVgBkwF5AWgBkAF+AZIBpAGTAYYBlwGAAqgBjgL0AeQCywHDCQAD/gP8BvkD+gb8A/sG+QP8
|
||||
A/42AAGGAaoBzQFzAaYB2QFqAZ0B0AFIAXsBrgFfAZIBxQFMAX8BsgFfAZIBxQFMAX8BsgFfAZIBxQFM
|
||||
AX8BsgFfAZIBxQFIAXsBrgFqAZ0B0AFzAaYB2QGGAaoBzQMAAs8BxwL1AeYBhAG1AasBmAHXAccBkAHR
|
||||
Ab4BcwGwAZkBlwHLAbYBpwHOAb0BlwG9AawBlAG6AagBqQG/Aa8BjgGtAaEBtwGtAYsC9QHmAs8BxwkA
|
||||
A/4D/AP5A7MDXAb8A1wDtAP5A/wD/jYAAYsBrQHPAXUBqAHbAWwBnwHSAUoBfQGwAWwBnwHSAVIBhQG4
|
||||
AWwBnwHSAVIBhQG4AWwBnwHSAVIBhQG4AWwBnwHSAUoBfQGwAWwBnwHSAXUBqAHbAYsBrQHPAwAC0QHJ
|
||||
AvYB6QGQAbwBtQG5AeUB2wGmAd0B0AGIAcABsgGHAckBtQF+Ab4BpAGIAbkBowGuAdABvwGpAccBtQGU
|
||||
AboBqAG2AbUBkQL2AekC0QHJDwADywN1A/gGAAP4A3UDyzwAAY8BsQHSAXcBqgHdAW4BoQHUAUcBegGt
|
||||
AW4BoQHUAU8BggG1AW4BoQHUAU8BggG1AW4BoQHUAU8BggG1AW4BoQHUAUcBegGtAW4BoQHUAXcBqgHd
|
||||
AY8BsQHSAwAC0wHMAvcB6wHFAbgBhwH/Ad4BjAH4AecBrQHVAdEBsAHKAesB4gG9AeUB2QGgAcoBuwGq
|
||||
Ac4BrwGCAcEBpAF+AbYCmAGsAYQC9wHrAtMBzAwAA84DfwP5Ad0BswG5AcABSQFaAcABSQFaAd0BswG5
|
||||
A/kDfwPOOQABkwG0AdQBeAGrAd4BbwGiAdUBRAF3AaoBbwGiAdUBTAF/AbIBbwGiAdUBTAF/AbIBbwGi
|
||||
AdUBTAF/AbIBbwGiAdUBRAF3AaoBbwGiAdUBeAGrAd4BkwG0AdQDAALVAc0C+AHuAdEBrgFpAdsBugFx
|
||||
Ad4BvgF0AekByQF8Ab8BzQGoAZUBzAHCAaEBzwG+AZEBxAGvAX8BvQGmAXcBtwGdAagBqgF3AvgB7gLV
|
||||
Ac0JAAPQA4YD+QYAAeABtgG8AdEBewGHBgAD+QOGA9A2AAGYAbgB1wF6Aa0B4AFxAaQB1wFBAXQBpwFx
|
||||
AaQB1wFJAXwBrwFxAaQB1wFJAXwBrwFxAaQB1wFJAXwBrwFxAaQB1wFBAXQBpwFxAaQB1wF6Aa0B4AGY
|
||||
AbgB1wMAAtcBzwL5AfEB0wGsAWYB/wHTAX4B/wHWAYIB4AG+AXQB9gHhAZkBsAHtAeQBrwHRAb8BogHg
|
||||
AdMBmAHYAcYBjgHQAboBuAGyAYAC+QHxAtcBzwYAA+8DbAPvCQAB4wG4Ab8B1wGBAY0JAAPvA2wD7zMA
|
||||
AZsBugHZAXwBrwHiAXMBpgHZAT8BcgGlAXMBpgHZAUcBegGtAXMBpgHZAUcBegGtAXMBpgHZAUcBegGt
|
||||
AXMBpgHZAT8BcgGlAXMBpgHZAXwBrwHiAZsBugHZAwAC2QHRAvsB9AHVAakBYgH/Ac4BeQH/AdIBfQHf
|
||||
AboBbwH/AdgBgwHmAeoBvQGmAdgBzQGzAewB4gG5AeQB0AG2AdwBxAGrAb4BlwL7AfQC2QHRCQAD1AOR
|
||||
A/kGAAHmAbsBwQHdAYcBkwYAA/kDkQPUNgABnQG9AdsBfgGxAeQBdQGoAdsBOAFrAZ4BUQGEAbcBOAFr
|
||||
AZ4BUQGEAbcBOAFrAZ4BUQGEAbcBOAFrAZ4BUQGEAbcBOAFrAZ4BdQGoAdsBfgGxAeQBnQG9AdsDAALa
|
||||
AdMC/AH3AdcBpwFfAdoBrAFkAdwBsAFnAecBvAFwAeABugFvAeMBvgFzAd8B0QGYAdsBzwGWAdUB0QGc
|
||||
AcQBzQGkAZ0B0QHDAvwB9wLaAdMMAAPVA5YD+QHoAb0BwwHdAWYBdwHdAWYBdwHoAb0BwwP5A5YD1TkA
|
||||
AaABvgHcAX8BsgHlAWYBmQHMAXYBqQHcAXYBqQHcAXYBqQHcAXYBqQHcAXYBqQHcAXYBqQHcAXYBqQHc
|
||||
AXYBqQHcAXYBqQHcAWYBmQHMAX8BsgHlAaABvgHcAwAC2wHUAv0B+QHZAaQBXAH/AcQBbwH/AcgBcwHe
|
||||
AbABZwH/Ac4BeQH/AdIBfQHkAb4BcgH/AdgBgwHtAeQBqAHiAeYBtgHQAdcBrQL9AfkC2wHUDwAD1wOZ
|
||||
A/oGAAP6A5kD1zwAAaMBwAHeAWsBngHRAXcBqgHdAXcBqgHdAXcBqgHdAXcBqgHdAXcBqgHdAXcBqgHd
|
||||
AXcBqgHdAXcBqgHdAXcBqgHdAXcBqgHdAXcBqgHdAWsBngHRAaMBwAHeAwAC3QHVAv4B/AHaAaMBWgH/
|
||||
Ab8BawH/AcIBbgHeAawBYgH/AckBdAH/Ac0BeAHjAbkBbgH/AdMBfgH/AdcBgwH8Ad4BlQHsAcoBfAL+
|
||||
AfwC3QHVEgAD2AOdBgADnQPYPwABpgHDAeABoAHTAfoBmAHLAfUBkwHGAfMBkwHGAfMBkwHGAfMBkwHG
|
||||
AfMBkwHGAfMBkwHGAfMBkwHGAfMBkwHGAfMBkwHGAfMBmAHLAfUBoAHTAfoBpgHDAeADAALeAdcC/wH+
|
||||
AdsBoQFYAdsBogFZAdsBpAFbAdsBpQFdAdsBqQFgAdsBrAFjAdsBrwFmAdsBsQFoAdsBtAFrAdsBtwFu
|
||||
AdsBuQFxAv8B/gLeAddjAAHoAe0B8wGoAcQB4QGXAcoB9QGSAcUB8wGSAcUB8wGSAcUB8wGSAcUB8wGS
|
||||
AcUB8wGSAcUB8wGSAcUB8wGSAcUB8wGSAcUB8wGXAcoB9QGoAcQB4QHoAe0B8wMAAt8B2Sf/At8B2WYA
|
||||
AegB7QHzAakBxQHiAakBxQHiAakBxQHiAakBxQHiAakBxQHiAakBxQHiAakBxQHiAakBxQHiAakBxQHi
|
||||
AakBxQHiAakBxQHiAegB7QHzBgAC6gHmAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZ
|
||||
AuAB2QLgAdkC4AHZAuAB2QLqAebDAAP7A/EBlQGvAbwBaAGbAbYBaAGbAbYBaAGbAbYBaAGbAbYBaAGb
|
||||
AbYBaAGbAbYBaAGbAbYBaAGbAbYBaAGbAbYBaAGbAbYBlQGvAbwD8QP7FQAS+AP5A/0zAAP8A/kk+AP5
|
||||
A/wD/QP6AXcBqAHBAYYBzwHwAYEBywHtAYEBywHtAYEBywHtAYEBywHtAYEBywHtAYEBywHtAYYBzwHw
|
||||
AUsBjwGxAYYBzwHwAXcBqAHBAdwB4gHlBv0D+Qz4A/MBiQGlAY8BVQGLAV8BVQGLAV8BVQGLAV8BVQGL
|
||||
AV8BVQGLAV8BVQGLAV8BlAGtAZkGAAPAAywDwAMAA/sb+AP7A/cBkwGmAboBYAGIAa8BYAGIAa8BYAGI
|
||||
Aa8BYAGIAa8BYAGIAa8BYAGIAa8BYAGIAa8BYAGIAa8BYAGIAa8BYAGIAa8BYAGIAa8BYAGIAa8BkwGm
|
||||
AboD9wYAAYYBtQHNAYQBzgHuAXwBxwHoAXwBxwHoAXwBxwHoAXwBxwHoAXwBxwHoAXwBxwHoAYQBzgHu
|
||||
AVcBmwG9AYQBzgHuAfQBtgEuAYYBtQHNAwAClAG4AlUBowJVAaMCVQGjAlUBowJVAaMCVQGjAVUBegGJ
|
||||
ATUBvQF5AUMBywGHAT4BxgGCAT4BxgGCAT4BxgGCAUMBywGHAVUBoAFwBgADQAFnAlYDQAMAA/sDYQNe
|
||||
A1wDWQNUA0kDPAMvA2wD+wMAAXIBmAG/AXsBrgHgAXoBrQHfAXoBrQHfAXoBrQHfAXoBrQHfAXoBrQHf
|
||||
AXoBrQHfAXoBrQHfAXoBrQHfAXoBrQHfAXoBrQHfAXsBrgHgAXIBmAG/CQABkQG+AdQBhwHQAe8BfwHK
|
||||
AekBfwHKAekBfwHKAekBfwHKAekBfwHKAekBfwHKAekBhwHQAe8BXwGjAcUBhwHQAe8B/gHJAUEBkQG+
|
||||
AdQDAAJVAbQBLwEeAdwBJQETAdgBJQETAdgBJQETAdgBJQETAdgBJQETAdgBVQF+AZUBNwG/AXsBQgHK
|
||||
AYYBNwG/AXsBNwG/AXsBNwG/AXsBQgHKAYYBVQGnAXYGAAPLA1UDyycAAYQBpwHLAYEBtAHkAX0BsAHh
|
||||
AX0BsAHhAX0BsAHhAX0BsAHhAX0BsAHhAX0BsAHhAX0BsAHhAX0BsAHhAX0BsAHhAX0BsAHhAYEBtAHk
|
||||
AYQBpwHLCQABlAHAAdYBigHTAfABggHNAesBggHNAesBggHNAesBggHNAesBggHNAesBggHNAesBigHT
|
||||
AfABYgGmAcgBigHTAfAC6QHbAZQBwAHWAwACVQG5AS0BHAHeARUBAAHVARUBAAHVARUBAAHVARUBAAHV
|
||||
ARUBAAHVAVUBgQGaATsBwwF/AUgBzwGMATsBwwF/ATsBwwF/ATsBwwF/AUgBzwGMAVUBrQF7NgABigGt
|
||||
Ac8BiAG7AeoBggG1AeUBggG1AeUBggG1AeUBggG1AeUBggG1AeUBggG1AeUBggG1AeUBggG1AeUBggG1
|
||||
AeUBggG1AeUBiAG7AeoBigGtAc8JAAGYAcMB2AGOAdYB8gGHAdAB7QGHAdAB7QGHAdAB7QGHAdAB7QGH
|
||||
AdAB7QGHAdAB7QGOAdYB8gFmAaoBzAGOAdYB8gLwAeYBmAHDAdgDAAJVAb8BNgElAeQBGQEAAdsBGQEA
|
||||
AdsBGQEAAdsBGQEAAdsBGQEAAdsBVQGEAaABPgHGAYIBTQHVAZEBPgHGAYIBPgHGAYIBPgHGAYIBTQHV
|
||||
AZEBVQGzAYA2AAGOAbAB0QGPAcIB7gGHAboB6QGHAboB6QGHAboB6QGHAboB6QGHAboB6QGHAboB6QGH
|
||||
AboB6QGHAboB6QGHAboB6QGHAboB6QGPAcIB7gGOAbAB0QkAAZsBxgHaAZIB2gH0AYsB1AHwAYsB1AHw
|
||||
AYsB1AHwAYsB1AHwAYsB1AHwAYsB1AHwAZIB2gH0AWkBrQHPAZIB2gH0AvgB8wGbAcYB2gMAAlUBxAE+
|
||||
AS0B7AEcAQAB4wEcAQAB4wEcAQAB4wEcAQAB4wEcAQAB4wFVAYYBpAFCAcoBhgFRAdkBlQFCAcoBhgFC
|
||||
AcoBhgFCAcoBhgFRAdkBlQFVAbkBhAYAA9ADZwPQJwABkwG0AdQBlgHJAfIBjAG/AewBjAG/AewBjAG/
|
||||
AewBRAF3AaoBjAG/AewBRAF3AaoBjAG/AewBjAG/AewBjAG/AewBjAG/AewBlgHJAfIBkwG0AdQJAAGf
|
||||
AcgB3QGXAd4B9gGQAdgB8gGQAdgB8gGQAdgB8gGQAdgB8gGQAdgB8gGQAdgB8gGXAd4B9gF5Ab0B3AF4
|
||||
Ab0B3AL+Af0BnwHIAd0DAAJVAcgBRgE1AfIBIAEAAekBIAEAAekBIAEAAekBIAEAAekBIAEAAekBVQGJ
|
||||
AagBRAHMAYgBZQHtAakBZQHtAakBZQHtAakBZQHtAakBWAHWAZYBfwHLAaQGAANsAW8CaQNsBgADdQN0
|
||||
A3EDbgNsA2gDZQNjA2AGAAGYAbgB1wGbAc4B9gGRAcQB8AGRAcQB8AGRAcQB8AFVAYgBuwFEAXcBqgFV
|
||||
AYgBuwFAAXMBpgGRAcQB8AGRAcQB8AGRAcQB8AGbAc4B9gGYAbgB1wkAAaIBygHeAZsB4QH3AZQB2wH0
|
||||
AZQB2wH0AZQB2wH0AZQB2wH0AZQB2wH0AZQB2wH0AZQB2wH0AZ4B5AH5AXwBwAHeAaIBygHeAe4B8wH1
|
||||
AwACfwHVAWIBYQHnAXYBdQH+AXYBdQH+AXkBYgGjAXsBUAFVAXsBUAFVAWoBWQE/AWoBbgEyAWoBbgEy
|
||||
AWEBiwFRAVUBwQGKAVUBwQGKAVUBwQGKAeIB7wHoBgAD0wNxA9MnAAGbAboB2QGfAdIB+QGVAcgB8wGV
|
||||
AcgB8wGVAcgB8wFVAYgBuwFVAYgBuwFVAYgBuwFNAYABswGVAcgB8wGVAcgB8wGVAcgB8wGfAdIB+QGb
|
||||
AboB2QkAAaUBzQHgAZ4B5QH5AZgB3wH2AZgB3wH2AZgB3wH2AZgB3wH2AZgB3wH2AZgB3wH2AZgB3wH2
|
||||
AZgB3wH2AaEB6AH6AaUBzQHgBgAC4gHxAlUBzgJVAc4CVQHOAW0BUwF1AdwBqQEyAdcBpAEtAdcBpAEt
|
||||
AdcBpAEtAdwBqQEyAbABhgFIQgABnwG9AdsBqQHbAf4BqgHdAf8BqgHdAf8BqgHdAf8BdwGqAd0BdwGq
|
||||
Ad0BdwGqAd0BZgGZAcwBqgHdAf8BqgHdAf8BqgHdAf8BqQHbAf4BnwG9AdsJAAGoAc4B4gGjAegB+wGd
|
||||
AeMB+QGdAeMB+QGdAeMB+QGdAeMB+QGdAeMB+QGdAeMB+QGdAeMB+QGdAeMB+QGjAegB+wGoAc4B4hIA
|
||||
AbYBiwFFAdwBqQEyAdEBngEnAdEBngEnAdEBngEnAdwBqQEyAbYBiwFFQgABxwHXAecBiAG2AeIBgAGz
|
||||
AeYBgAGzAeYBgAGzAeYBTgGBAbQBTgGBAbQBTgGBAbQBSAF7Aa4BgAGzAeYBgAGzAeYBgAGzAeYBiAG2
|
||||
AeIBxwHXAecJAAGrAdAB4wGmAesB/AGhAeYB+wGhAeYB+wGhAeYB+wGhAeYB+wGhAeYB+wGhAeYB+wGh
|
||||
AeYB+wGhAeYB+wGmAesB/AGrAdAB4xIAAbsBkAFBAeEBrgE4AdYBowEsAdYBowEsAdYBowEsAeEBrgE4
|
||||
AbsBkAFBEgAD1wN9A9cnAAHjAeoB8QGOAbgB4QGJAbwB7wGIAbsB7gGIAbsB7gFBAXQBpwFBAXQBpwFB
|
||||
AXQBpwE+AXEBpAGIAbsB7gGIAbsB7gGJAbwB7wGOAbgB4QHjAeoB8QkAAa4B0gHkAakB7gH9AaQB6QH8
|
||||
AaQB6QH8AaQB6QH8AaQB6QH8AaQB6QH8AaQB6QH8AaQB6QH8AaQB6QH8AakB7gH9Aa4B0gHkEgABwAGV
|
||||
AT8B5wG0AT0B2gGnATAB2gGnATAB2gGnATAB5wG0AT0BwAGVAT8SAAN/A3cDfwYAA4IDgQN/A34DfAN6
|
||||
A3kDdgOrBgAB9QH3AfkBmwG+Ad8BiQG8Ae8BiAG7Ae4BiAG7Ae4BNQFoAZsBNQFoAZsBNQFoAZsBNQFo
|
||||
AZsBiAG7Ae4BiAG7Ae4BiQG8Ae8BmwG+Ad8B9QH3AfkJAAGwAdQB5gGsAfEB/wGnAewB/gGnAewB/gGn
|
||||
AewB/gGnAewB/gGnAewB/gGnAewB/gGnAewB/gGnAewB/gGsAfEB/wGwAdQB5hIAAcYBmgE9AesBuAFB
|
||||
Ad0BqgEzAd0BqgEzAd0BqgEzAesBuAFBAcYBmgE9EgAD2AOCA9gnAAP+AcsB2gHqAakBxQHiAakBxQHi
|
||||
AakBxQHiAVUBfQGmAVUBfQGmAVUBfQGmAVUBfQGmAakBxQHiAakBxQHiAakBxQHiAcsB2gHqA/4JAAGy
|
||||
AdUB5gGxAfUB/wGuAfIB/wGuAfIB/wGuAfIB/wGuAfIB/wGuAfIB/wGuAfIB/wGuAfIB/wGuAfIB/wGx
|
||||
AfUB/wGyAdUB5hIAAdQBswFsAecBuAFGAf4BywFUAf4BywFUAf4BywFUAecBuAFGAdQBswFsdQAB0AHk
|
||||
Ae4BswHWAecBswHWAecBswHWAecBswHWAecBswHWAecBswHWAecBswHWAecBswHWAecBswHWAecBswHW
|
||||
AecB0AHkAe4SAAHwAesB3gHNAaABOQHNAaABOQHNAaABOQHNAaABOQHNAaABOQHwAesB3g8AA/sD8QLI
|
||||
AcMCuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwAsgBwwPxBvsD8QLIAcMCuAGw
|
||||
ArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwAsgBwwPxA/tgAAP9A/oCwAG4C/8D/gH9
|
||||
Av4B/AL9AfsC/QH6AvwB+AL+AfkCwAG4A/oG/QP6AsABuAv/A/4B/QL+AfwC/QH7Av0B+gL8AfgC/gH5
|
||||
AsABuAP6A/1mAALJAcEG/wP+Av0B/AL9AfsC/AH5AvsB+AL6AfYC+AH0AvsB9gLJAcEMAALJAcEG/wP+
|
||||
Av0B/AL9AfsC/AH5AvsB+AL6AfYC+AH0AvsB9gLJAcFsAALPAccD/wP+Av0B/AL9AfsC/AH5AvsB+AL6
|
||||
AfYC+AH0AvcB8gL7AfUCzwHHDAACzwHHA/8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL3AfIC+wH1
|
||||
As8BxwwAA/4D/Ab5A/oG/AP7BvkD/AP+BgAD/QP8A/oe+AP6A/wD/QYAAtAByAL/Af4C/QH8Av0B+wG/
|
||||
AUgBrgHsAc4B5QL6AfYC+AH0AvcB8gL2AfAC+gHzAtAByAwAAtAByAL/Af4C/QH8AekBzwHrAa4BSAG/
|
||||
Aa4BSAG/Aa4BSAG/AdMBoQHaAvcB8gL2AfAC+gHzAtAByAwAA/4D/AP5A7MDXAb8A1wDtAP5A/wD/gYA
|
||||
A/0DhAM0A4QD+APiBjQDhAPiA3UDpAP4A4QDNAPpBgAC0gHLAv4D/QH7AvwB+QHGAU8BtQHsAc8B5QL4
|
||||
AfQC9wHyAvYB8AL1Ae4C+gHyAtIBywwAAtIBywL+A/0B+wHqAdEB7QG1AU8BxgL6AfYB5wHOAegBtQFP
|
||||
AcYB7gHhAesC9QHuAvoB8gLSAcsSAAPLA3UD+AYAA/gDdQPLEgADeQP1BgADqgN5BgADywO+A+4DqgPC
|
||||
CQAC1QHNAv4D/AH5AvsB+AHOAVcBvQHOAVcBvQHOAVcBvQHiAaYB1gL1Ae4C9AHsAvkB7wLVAc0MAALV
|
||||
Ac0C/gP8AfkB6wHSAe0BvQFXAc4C+AH0AvcB8gG9AVcBzgHnAc0B5QL0AewC+QHvAtUBzQ8AA84DfwP5
|
||||
DAAD+QN/A84PAAPGDGADxgYAA/UJYAPpCQAC1gHOAv0D+wH4AvoB9gHWAV8BxQHvAdEB5gL2AfAC9QHu
|
||||
AvQB7ALxAecC9wHqAtYBzgwAAtYBzgL9A/sB+AHsAdMB7gHFAV8B1gL3AfIB6gHRAeoBxQFfAdYB7QHh
|
||||
AekC8QHnAvcB6gLWAc4MAAPQA4YD+RIAA/kDhgPQDAAD9QOUA+8D0QNoA/UJAAOTA+8DaAwAAtgB0AL9
|
||||
A/oB9gL4AfQB3AFlAcsB3AFlAcsB3AFlAcsB4gGJAdMC8QHnAuwB3wL0AeUC2AHQDAAC2AHQAv0D+gH2
|
||||
Ae0B0wHuAcsBZQHcAcsBZQHcAcsBZQHcAd8BrAHjAvEB5wLsAd8C9AHlAtgB0AkAA+8DbAPvGAAD7wNs
|
||||
A+8MAAOPA/YDtwOPDAADzAN9A8wMAALaAdIC/AP4AfQC9wHyAvYB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZ
|
||||
AvMB4gLaAdIMAALaAdIC/AP4AfQC9wHyAvYB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZAvMB4gLaAdIMAAPU
|
||||
A5ED+RIAA/kDkQPUDwADzgPVA3cDzgwAA+wDdwPsDAAC2wHTAvwD9wHyAvYB8AL1Ae4C9AHsAvEB5wLs
|
||||
Ad8C6AHZAuYB1QLyAeEC2wHTDAAC2wHTAvwD9wHyAvYB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZAuYB1QLy
|
||||
AeEC2wHTDwAD1QOWA/kMAAP5A5YD1RIAA/YDogN+A/YhAALcAdUC+wP2AfAC9QHuAvQB7ALxAecC7AHf
|
||||
AugB2QLmAdUC5QHUAvIB4QLcAdUMAALcAdUC+wP2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUC5QHU
|
||||
AvIB4QLcAdUSAAPXA5kD+gYAA/oDmQPXGAAGnCQAAt0B1gL6AfQC9QHuAvQB7ALxAecC7AHfAugB2QLm
|
||||
AdUCpAGTAqQBkwKkAZMCyQHADAAC3QHWAvoB9AL1Ae4C9AHsAvEB5wLsAd8C6AHZAuYB1QKkAZMCpAGT
|
||||
AqQBkwLJAcAVAAPYA50GAAOdA9hFAALeAdcC+gHzAvQB7ALxAecC7AHfAugB2QLmAdUC5QHUArYBpQP/
|
||||
At4B1wL3AfYMAALeAdcC+gHzAvQB7ALxAecC7AHfAugB2QLmAdUC5QHUArYBpQP/At4B1wL3AfZsAALf
|
||||
AdkC/AH1AvkB7wL2AeoC9AHlAvMB4gLyAeEC8gHhAsIBsQLfAdkC9wH2DwAC3wHZAvwB9QL5Ae8C9gHq
|
||||
AvQB5QLzAeIC8gHhAvIB4QLCAbEC3wHZAvcB9m8AAuoB5gLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLg
|
||||
AdkC4AHZAvcB9hIAAuoB5gLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAvcB9mwAA/sD8QLI
|
||||
AcMCuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwAsgBwwPxBvsD8QLIAcMCuAGw
|
||||
ArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwAsgBwwPxBvsD8QLIAcMCuAGwArgBsAK4
|
||||
AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwAsgBwwPxBvsD8QLIAcMCuAGwArgBsAK4AbACuAGw
|
||||
ArgBsAK4AbACuAGwArgBsAK4AbACuAGwAsgBwwPxA/sD/QP6AsABuAv/A/4B/QL+AfwC/QH7Av0B+gL8
|
||||
AfgC/gH5AsABuAP6Bv0D+gLAAbgL/wP+Af0C/gH8Av0B+wL9AfoC/AH4Av4B+QLAAbgD+gb9A/oCwAG4
|
||||
C/8D/gH9Av4B/AL9AfsC/QH6AvwB+AL+AfkCwAG4A/oG/QP6AsABuAv/A/4B/QL+AfwC/QH7Av0B+gL8
|
||||
AfgC/gH5AsABuAP6A/0GAALJAcEG/wP+Av0B/AL9AfsC/AH5AvsB+AL6AfYC+AH0AvsB9gLJAcEMAALJ
|
||||
AcEG/wP+Av0B/AL9AfsC/AH5AvsB+AL6AfYC+AH0AvsB9gLJAcEMAALJAcEG/wP+Av0B/AL9AfsC/AH5
|
||||
AvsB+AL6AfYC+AH0AvsB9gLJAcEMAALJAcEG/wP+Av0B/AL9AfsC/AH5AvsB+AL6AfYC+AH0AvsB9gLJ
|
||||
AcEMAALPAccD/wP+Av0B/AL9AfsC/AH5AvsB+AL6AfYC+AH0AvcB8gL7AfUCzwHHDAACzwHHA/8D/gL9
|
||||
AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL3AfIC+wH1As8BxwwAAs8BxwP/A/4C/QH8Av0B+wL8AfkC+wH4
|
||||
AvoB9gL4AfQC9wHyAvsB9QLPAccMAALPAccD/wP+Av0B/AL9AfsC/AH5AvsB+AL6AfYC+AH0AvcB8gL7
|
||||
AfUCzwHHDAAC0AHIAv8B/gL9AfwB3AHPAesBewFIAb8BewFIAb8BewFIAb8BiwFeAcYB6AHhAesC9gHw
|
||||
AvoB8wLQAcgMAALQAcgC/wH+Av0B/AL9AfsBggHCAbQBWQGuAZ0BWQGuAZ0BqQHTAcgC9wHyAvYB8AL6
|
||||
AfMC0AHIDAAC0AHIAv8B/gL9AfwC/QH7Ad4BogGpAb8BSAFZAb8BSAFZAdwBoAGmAvcB8gL2AfAC+gHz
|
||||
AtAByAwAAtAByAL/Af4C/QH8Av0B+wG/AXsBSAG/AXsBSAG/AXsBSAHcAboBngL3AfIC9gHwAvoB8wLQ
|
||||
AcgMAALSAcsC/gP9AfsB3QHRAe0BggFPAcYC+gH2AvgB9AGCAU8BxgHZAcwB5QL1Ae4C+gHyAtIBywwA
|
||||
AtIBywL+A/0B+wL8AfkC+wH4AvoB9gHSAegB4AFgAbUBpAL2AfAC9QHuAvoB8gLSAcsMAALSAcsC/gP9
|
||||
AfsC/AH5AvsB+AHgAaUBqwHTAXoBhQL3AfIC9gHwAvUB7gL6AfIC0gHLDAAC0gHLAv4D/QH7AvwB+QHG
|
||||
AYIBTwHsAdsBzAL4AfQC9wHyAvYB8AL1Ae4C+gHyAtIBywwAAtUBzQL+A/wB+QHfAdIB7QGKAVcBzgGY
|
||||
AWwB0wGKAVcBzgGlAX8B1wHnAeEB6QL0AewC+QHvAtUBzQwAAtUBzQL+A/wB+QL7AfgBsgHcAdIBaAG9
|
||||
AawBaAG9AawBrgHZAc0C9QHuAvQB7AL5Ae8C1QHNDAAC1QHNAv4D/AH5AvsB+AL6AfYB4wGoAa4B2QF/
|
||||
AYsC9gHwAvUB7gL0AewC+QHvAtUBzQwAAtUBzQL+A/wB+QL7AfgBzgGKAVcB7gHdAcwC9wHyAvYB8AL1
|
||||
Ae4C9AHsAvkB7wLVAc0MAALWAc4C/QP7AfgB4AHTAe4BkgFfAdYC9wHyAd0B0AHpAZIBXwHWAvQB7ALx
|
||||
AecC9wHqAtYBzgwAAtYBzgL9A/sB+AL6AfYBcAHFAbQB1QHrAeIC9gHwAvUB7gL0AewC8QHnAvcB6gLW
|
||||
Ac4MAALWAc4C/QP7AfgC+gH2AvgB9AHnAasBsQHeAYUBkAL1Ae4C9AHsAvEB5wL3AeoC1gHODAAC1gHO
|
||||
Av0D+wH4AvoB9gHWAZIBXwHvAd4BzQL2AfAC9QHuAvQB7ALxAecC9wHqAtYBzgwAAtgB0AL9A/oB9gHg
|
||||
AdMB7gGYAWUB3AGYAWUB3AGYAWUB3AHFAawB4wLxAecC7AHfAvQB5QLYAdAMAALYAdAC/QP6AfYC+AH0
|
||||
AbcB4QHVAXYBywG6AXYBywG6AZUB1QHGAvEB5wLsAd8C9AHlAtgB0AwAAtgB0AL9A/oB9gL4AfQB6gGv
|
||||
AbQB3AFlAXYB3AFlAXYB6AGsAbEC8QHnAuwB3wL0AeUC2AHQDAAC2AHQAv0D+gH2AvgB9AHcAZgBZQHv
|
||||
Ad4BzQL1Ae4C9AHsAvEB5wLsAd8C9AHlAtgB0AwAAtoB0gL8A/gB9AL3AfIC9gHwAvUB7gL0AewC8QHn
|
||||
AuwB3wLoAdkC8wHiAtoB0gwAAtoB0gL8A/gB9AL3AfIC9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC8wHi
|
||||
AtoB0gwAAtoB0gL8A/gB9AL3AfIC9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC8wHiAtoB0gwAAtoB0gL8
|
||||
A/gB9AL3AfIC9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC8wHiAtoB0gwAAtsB0wL8A/cB8gL2AfAC9QHu
|
||||
AvQB7ALxAecC7AHfAugB2QLmAdUC8gHhAtsB0wwAAtsB0wL8A/cB8gL2AfAC9QHuAvQB7ALxAecC7AHf
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAG
|
||||
MAAAAk1TRnQBSQFMAgEBDwIAAQEBAAEBARABAAEQAQAE/wEZAQAI/wFCAU0BNgcAATYDAAEoAwABQAMA
|
||||
AUADAAEBAQABGAYAATASAAP8A/kh+AP5A/wDAAP9A/kh+AP5A/1jAAGWAakBvAFcAYQBrgFcAYQBrgFc
|
||||
AYQBrgFcAYQBrgFcAYQBrgFcAYQBrgFcAYQBrgFcAYQBrgFcAYQBrgFcAYQBrgFcAYQBrgFcAYQBrgFc
|
||||
AYQBrgGWAakBvAMAAs8BywK5AbACuQGwArkBsAK5AbACuQGwArkBsAK5AbACuQGwArkBsAK5AbACuQGw
|
||||
ArkBsAK5AbACzwHLYwABbAGTAboBVQGIAbsBcAGjAdYBZwGaAc0BZwGaAc0BZwGaAc0BZwGaAc0BZwGa
|
||||
Ac0BZwGaAc0BZwGaAc0BZwGaAc0BZwGaAc0BcAGjAdYBVQGIAbsBbAGTAboDAALBAbkC+QHpAvMB4gLz
|
||||
AeIC8wHiAvMB4gLzAeIC8wHiAvMB4gLzAeIC8wHiAvMB4gLzAeIC+QHpAsEBuWMAAX4BogHHAXEBpAHX
|
||||
AVUBiAG7AXEBpAHXAXEBpAHXAXEBpAHXAXEBpAHXAXEBpAHXAXEBpAHXAXEBpAHXAXEBpAHXAXEBpAHX
|
||||
AVUBiAG7AXEBpAHXAX4BogHHAwACywHDAvQB5AF6AacBmwGHAbcBpwGHAbUBowGJAbMBogFoAaABhgFX
|
||||
AZcBeAFYAZMBeQFoAZABfgGSAaQBkwGGAZcBgAKoAY4C9AHkAssBwwkAA/4D/Ab5A/oG/AP7BvkD/AP+
|
||||
NgABhgGqAc0BcwGmAdkBagGdAdABSAF7Aa4BXwGSAcUBTAF/AbIBXwGSAcUBTAF/AbIBXwGSAcUBTAF/
|
||||
AbIBXwGSAcUBSAF7Aa4BagGdAdABcwGmAdkBhgGqAc0DAALPAccC9QHmAYQBtQGrAZgB1wHHAZAB0QG+
|
||||
AXMBsAGZAZcBywG2AacBzgG9AZcBvQGsAZQBugGoAakBvwGvAY4BrQGhAbcBrQGLAvUB5gLPAccJAAP+
|
||||
A/wD+QOzA1wG/ANcA7QD+QP8A/42AAGLAa0BzwF1AagB2wFsAZ8B0gFKAX0BsAFsAZ8B0gFSAYUBuAFs
|
||||
AZ8B0gFSAYUBuAFsAZ8B0gFSAYUBuAFsAZ8B0gFKAX0BsAFsAZ8B0gF1AagB2wGLAa0BzwMAAtEByQL2
|
||||
AekBkAG8AbUBuQHlAdsBpgHdAdABiAHAAbIBhwHJAbUBfgG+AaQBiAG5AaMBrgHQAb8BqQHHAbUBlAG6
|
||||
AagBtgG1AZEC9gHpAtEByQ8AA8sDdQP4BgAD+AN1A8s8AAGPAbEB0gF3AaoB3QFuAaEB1AFHAXoBrQFu
|
||||
AaEB1AFPAYIBtQFuAaEB1AFPAYIBtQFuAaEB1AFPAYIBtQFuAaEB1AFHAXoBrQFuAaEB1AF3AaoB3QGP
|
||||
AbEB0gMAAtMBzAL3AesBxQG4AYcB/wHeAYwB+AHnAa0B1QHRAbABygHrAeIBvQHlAdkBoAHKAbsBqgHO
|
||||
Aa8BggHBAaQBfgG2ApgBrAGEAvcB6wLTAcwMAAPOA38D+QHdAbMBuQHAAUkBWgHAAUkBWgHdAbMBuQP5
|
||||
A38DzjkAAZMBtAHUAXgBqwHeAW8BogHVAUQBdwGqAW8BogHVAUwBfwGyAW8BogHVAUwBfwGyAW8BogHV
|
||||
AUwBfwGyAW8BogHVAUQBdwGqAW8BogHVAXgBqwHeAZMBtAHUAwAC1QHNAvgB7gHRAa4BaQHbAboBcQHe
|
||||
Ab4BdAHpAckBfAG/Ac0BqAGVAcwBwgGhAc8BvgGRAcQBrwF/Ab0BpgF3AbcBnQGoAaoBdwL4Ae4C1QHN
|
||||
CQAD0AOGA/kGAAHgAbYBvAHRAXsBhwYAA/kDhgPQNgABmAG4AdcBegGtAeABcQGkAdcBQQF0AacBcQGk
|
||||
AdcBSQF8Aa8BcQGkAdcBSQF8Aa8BcQGkAdcBSQF8Aa8BcQGkAdcBQQF0AacBcQGkAdcBegGtAeABmAG4
|
||||
AdcDAALXAc8C+QHxAdMBrAFmAf8B0wF+Af8B1gGCAeABvgF0AfYB4QGZAbAB7QHkAa8B0QG/AaIB4AHT
|
||||
AZgB2AHGAY4B0AG6AbgBsgGAAvkB8QLXAc8GAAPvA2wD7wkAAeMBuAG/AdcBgQGNCQAD7wNsA+8zAAGb
|
||||
AboB2QF8Aa8B4gFzAaYB2QE/AXIBpQFzAaYB2QFHAXoBrQFzAaYB2QFHAXoBrQFzAaYB2QFHAXoBrQFz
|
||||
AaYB2QE/AXIBpQFzAaYB2QF8Aa8B4gGbAboB2QMAAtkB0QL7AfQB1QGpAWIB/wHOAXkB/wHSAX0B3wG6
|
||||
AW8B/wHYAYMB5gHqAb0BpgHYAc0BswHsAeIBuQHkAdABtgHcAcQBqwG+AZcC+wH0AtkB0QkAA9QDkQP5
|
||||
BgAB5gG7AcEB3QGHAZMGAAP5A5ED1DYAAZ0BvQHbAX4BsQHkAXUBqAHbATgBawGeAVEBhAG3ATgBawGe
|
||||
AVEBhAG3ATgBawGeAVEBhAG3ATgBawGeAVEBhAG3ATgBawGeAXUBqAHbAX4BsQHkAZ0BvQHbAwAC2gHT
|
||||
AvwB9wHXAacBXwHaAawBZAHcAbABZwHnAbwBcAHgAboBbwHjAb4BcwHfAdEBmAHbAc8BlgHVAdEBnAHE
|
||||
Ac0BpAGdAdEBwwL8AfcC2gHTDAAD1QOWA/kB6AG9AcMB3QFmAXcB3QFmAXcB6AG9AcMD+QOWA9U5AAGg
|
||||
Ab4B3AF/AbIB5QFmAZkBzAF2AakB3AF2AakB3AF2AakB3AF2AakB3AF2AakB3AF2AakB3AF2AakB3AF2
|
||||
AakB3AF2AakB3AFmAZkBzAF/AbIB5QGgAb4B3AMAAtsB1AL9AfkB2QGkAVwB/wHEAW8B/wHIAXMB3gGw
|
||||
AWcB/wHOAXkB/wHSAX0B5AG+AXIB/wHYAYMB7QHkAagB4gHmAbYB0AHXAa0C/QH5AtsB1A8AA9cDmQP6
|
||||
BgAD+gOZA9c8AAGjAcAB3gFrAZ4B0QF3AaoB3QF3AaoB3QF3AaoB3QF3AaoB3QF3AaoB3QF3AaoB3QF3
|
||||
AaoB3QF3AaoB3QF3AaoB3QF3AaoB3QF3AaoB3QFrAZ4B0QGjAcAB3gMAAt0B1QL+AfwB2gGjAVoB/wG/
|
||||
AWsB/wHCAW4B3gGsAWIB/wHJAXQB/wHNAXgB4wG5AW4B/wHTAX4B/wHXAYMB/AHeAZUB7AHKAXwC/gH8
|
||||
At0B1RIAA9gDnQYAA50D2D8AAaYBwwHgAaAB0wH6AZgBywH1AZMBxgHzAZMBxgHzAZMBxgHzAZMBxgHz
|
||||
AZMBxgHzAZMBxgHzAZMBxgHzAZMBxgHzAZMBxgHzAZgBywH1AaAB0wH6AaYBwwHgAwAC3gHXAv8B/gHb
|
||||
AaEBWAHbAaIBWQHbAaQBWwHbAaUBXQHbAakBYAHbAawBYwHbAa8BZgHbAbEBaAHbAbQBawHbAbcBbgHb
|
||||
AbkBcQL/Af4C3gHXYwAB6AHtAfMBqAHEAeEBlwHKAfUBkgHFAfMBkgHFAfMBkgHFAfMBkgHFAfMBkgHF
|
||||
AfMBkgHFAfMBkgHFAfMBkgHFAfMBkgHFAfMBlwHKAfUBqAHEAeEB6AHtAfMDAALfAdkn/wLfAdlmAAHo
|
||||
Ae0B8wGpAcUB4gGpAcUB4gGpAcUB4gGpAcUB4gGpAcUB4gGpAcUB4gGpAcUB4gGpAcUB4gGpAcUB4gGp
|
||||
AcUB4gGpAcUB4gHoAe0B8wYAAuoB5gLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLg
|
||||
AdkC4AHZAuAB2QLgAdkC6gHmwwAD+wPxAZUBrwG8AWgBmwG2AWgBmwG2AWgBmwG2AWgBmwG2AWgBmwG2
|
||||
AWgBmwG2AWgBmwG2AWgBmwG2AWgBmwG2AWgBmwG2AZUBrwG8A/ED+xUAEvgD+QP9MwAD/AP5JPgD+QP8
|
||||
A/0D+gF3AagBwQGGAc8B8AGBAcsB7QGBAcsB7QGBAcsB7QGBAcsB7QGBAcsB7QGBAcsB7QGGAc8B8AFL
|
||||
AY8BsQGGAc8B8AF3AagBwQHcAeIB5Qb9A/kM+APzAYkBpQGPAVUBiwFfAVUBiwFfAVUBiwFfAVUBiwFf
|
||||
AVUBiwFfAVUBiwFfAZQBrQGZBgADwAMsA8ADAAP7G/gD+wP3AZMBpgG6AWABiAGvAWABiAGvAWABiAGv
|
||||
AWABiAGvAWABiAGvAWABiAGvAWABiAGvAWABiAGvAWABiAGvAWABiAGvAWABiAGvAWABiAGvAZMBpgG6
|
||||
A/cGAAGGAbUBzQGEAc4B7gF8AccB6AF8AccB6AF8AccB6AF8AccB6AF8AccB6AF8AccB6AGEAc4B7gFX
|
||||
AZsBvQGEAc4B7gH0AbYBLgGGAbUBzQMAApQBuAJVAaMCVQGjAlUBowJVAaMCVQGjAlUBowFVAXoBiQE1
|
||||
Ab0BeQFDAcsBhwE+AcYBggE+AcYBggE+AcYBggFDAcsBhwFVAaABcAYAA0ABZwJWA0ADAAP7A2EDXgNc
|
||||
A1kDVANJAzwDLwNsA/sDAAFyAZgBvwF7Aa4B4AF6Aa0B3wF6Aa0B3wF6Aa0B3wF6Aa0B3wF6Aa0B3wF6
|
||||
Aa0B3wF6Aa0B3wF6Aa0B3wF6Aa0B3wF6Aa0B3wF7Aa4B4AFyAZgBvwkAAZEBvgHUAYcB0AHvAX8BygHp
|
||||
AX8BygHpAX8BygHpAX8BygHpAX8BygHpAX8BygHpAYcB0AHvAV8BowHFAYcB0AHvAf4ByQFBAZEBvgHU
|
||||
AwACVQG0AS8BHgHcASUBEwHYASUBEwHYASUBEwHYASUBEwHYASUBEwHYAVUBfgGVATcBvwF7AUIBygGG
|
||||
ATcBvwF7ATcBvwF7ATcBvwF7AUIBygGGAVUBpwF2BgADywNVA8snAAGEAacBywGBAbQB5AF9AbAB4QF9
|
||||
AbAB4QF9AbAB4QF9AbAB4QF9AbAB4QF9AbAB4QF9AbAB4QF9AbAB4QF9AbAB4QF9AbAB4QGBAbQB5AGE
|
||||
AacBywkAAZQBwAHWAYoB0wHwAYIBzQHrAYIBzQHrAYIBzQHrAYIBzQHrAYIBzQHrAYIBzQHrAYoB0wHw
|
||||
AWIBpgHIAYoB0wHwAukB2wGUAcAB1gMAAlUBuQEtARwB3gEVAQAB1QEVAQAB1QEVAQAB1QEVAQAB1QEV
|
||||
AQAB1QFVAYEBmgE7AcMBfwFIAc8BjAE7AcMBfwE7AcMBfwE7AcMBfwFIAc8BjAFVAa0BezYAAYoBrQHP
|
||||
AYgBuwHqAYIBtQHlAYIBtQHlAYIBtQHlAYIBtQHlAYIBtQHlAYIBtQHlAYIBtQHlAYIBtQHlAYIBtQHl
|
||||
AYIBtQHlAYgBuwHqAYoBrQHPCQABmAHDAdgBjgHWAfIBhwHQAe0BhwHQAe0BhwHQAe0BhwHQAe0BhwHQ
|
||||
Ae0BhwHQAe0BjgHWAfIBZgGqAcwBjgHWAfIC8AHmAZgBwwHYAwACVQG/ATYBJQHkARkBAAHbARkBAAHb
|
||||
ARkBAAHbARkBAAHbARkBAAHbAVUBhAGgAT4BxgGCAU0B1QGRAT4BxgGCAT4BxgGCAT4BxgGCAU0B1QGR
|
||||
AVUBswGANgABjgGwAdEBjwHCAe4BhwG6AekBhwG6AekBhwG6AekBhwG6AekBhwG6AekBhwG6AekBhwG6
|
||||
AekBhwG6AekBhwG6AekBhwG6AekBjwHCAe4BjgGwAdEJAAGbAcYB2gGSAdoB9AGLAdQB8AGLAdQB8AGL
|
||||
AdQB8AGLAdQB8AGLAdQB8AGLAdQB8AGSAdoB9AFpAa0BzwGSAdoB9AL4AfMBmwHGAdoDAAJVAcQBPgEt
|
||||
AewBHAEAAeMBHAEAAeMBHAEAAeMBHAEAAeMBHAEAAeMBVQGGAaQBQgHKAYYBUQHZAZUBQgHKAYYBQgHK
|
||||
AYYBQgHKAYYBUQHZAZUBVQG5AYQGAAPQA2cD0CcAAZMBtAHUAZYByQHyAYwBvwHsAYwBvwHsAYwBvwHs
|
||||
AUQBdwGqAYwBvwHsAUQBdwGqAYwBvwHsAYwBvwHsAYwBvwHsAYwBvwHsAZYByQHyAZMBtAHUCQABnwHI
|
||||
Ad0BlwHeAfYBkAHYAfIBkAHYAfIBkAHYAfIBkAHYAfIBkAHYAfIBkAHYAfIBlwHeAfYBeQG9AdwBeAG9
|
||||
AdwC/gH9AZ8ByAHdAwACVQHIAUYBNQHyASABAAHpASABAAHpASABAAHpASABAAHpASABAAHpAVUBiQGo
|
||||
AUQBzAGIAWUB7QGpAWUB7QGpAWUB7QGpAWUB7QGpAVgB1gGWAX8BywGkBgADbAFvAmkDbAYAA3UDdANx
|
||||
A24DbANoA2UDYwNgBgABmAG4AdcBmwHOAfYBkQHEAfABkQHEAfABkQHEAfABVQGIAbsBRAF3AaoBVQGI
|
||||
AbsBQAFzAaYBkQHEAfABkQHEAfABkQHEAfABmwHOAfYBmAG4AdcJAAGiAcoB3gGbAeEB9wGUAdsB9AGU
|
||||
AdsB9AGUAdsB9AGUAdsB9AGUAdsB9AGUAdsB9AGUAdsB9AGeAeQB+QF8AcAB3gGiAcoB3gHuAfMB9QMA
|
||||
An8B1QFiAWEB5wF2AXUB/gF2AXUB/gF5AWIBowF7AVABVQF7AVABVQFqAVkBPwFqAW4BMgFqAW4BMgFh
|
||||
AYsBUQFVAcEBigFVAcEBigFVAcEBigHiAe8B6AYAA9MDcQPTJwABmwG6AdkBnwHSAfkBlQHIAfMBlQHI
|
||||
AfMBlQHIAfMBVQGIAbsBVQGIAbsBVQGIAbsBTQGAAbMBlQHIAfMBlQHIAfMBlQHIAfMBnwHSAfkBmwG6
|
||||
AdkJAAGlAc0B4AGeAeUB+QGYAd8B9gGYAd8B9gGYAd8B9gGYAd8B9gGYAd8B9gGYAd8B9gGYAd8B9gGY
|
||||
Ad8B9gGhAegB+gGlAc0B4AYAAuIB8QJVAc4CVQHOAlUBzgFtAVMBdQHcAakBMgHXAaQBLQHXAaQBLQHX
|
||||
AaQBLQHcAakBMgGwAYYBSEIAAZ8BvQHbAakB2wH+AaoB3QH/AaoB3QH/AaoB3QH/AXcBqgHdAXcBqgHd
|
||||
AXcBqgHdAWYBmQHMAaoB3QH/AaoB3QH/AaoB3QH/AakB2wH+AZ8BvQHbCQABqAHOAeIBowHoAfsBnQHj
|
||||
AfkBnQHjAfkBnQHjAfkBnQHjAfkBnQHjAfkBnQHjAfkBnQHjAfkBnQHjAfkBowHoAfsBqAHOAeISAAG2
|
||||
AYsBRQHcAakBMgHRAZ4BJwHRAZ4BJwHRAZ4BJwHcAakBMgG2AYsBRUIAAccB1wHnAYgBtgHiAYABswHm
|
||||
AYABswHmAYABswHmAU4BgQG0AU4BgQG0AU4BgQG0AUgBewGuAYABswHmAYABswHmAYABswHmAYgBtgHi
|
||||
AccB1wHnCQABqwHQAeMBpgHrAfwBoQHmAfsBoQHmAfsBoQHmAfsBoQHmAfsBoQHmAfsBoQHmAfsBoQHm
|
||||
AfsBoQHmAfsBpgHrAfwBqwHQAeMSAAG7AZABQQHhAa4BOAHWAaMBLAHWAaMBLAHWAaMBLAHhAa4BOAG7
|
||||
AZABQRIAA9cDfQPXJwAB4wHqAfEBjgG4AeEBiQG8Ae8BiAG7Ae4BiAG7Ae4BQQF0AacBQQF0AacBQQF0
|
||||
AacBPgFxAaQBiAG7Ae4BiAG7Ae4BiQG8Ae8BjgG4AeEB4wHqAfEJAAGuAdIB5AGpAe4B/QGkAekB/AGk
|
||||
AekB/AGkAekB/AGkAekB/AGkAekB/AGkAekB/AGkAekB/AGkAekB/AGpAe4B/QGuAdIB5BIAAcABlQE/
|
||||
AecBtAE9AdoBpwEwAdoBpwEwAdoBpwEwAecBtAE9AcABlQE/EgADfwN3A38GAAOCA4EDfwN+A3wDegN5
|
||||
A3YDqwYAAfUB9wH5AZsBvgHfAYkBvAHvAYgBuwHuAYgBuwHuATUBaAGbATUBaAGbATUBaAGbATUBaAGb
|
||||
AYgBuwHuAYgBuwHuAYkBvAHvAZsBvgHfAfUB9wH5CQABsAHUAeYBrAHxAf8BpwHsAf4BpwHsAf4BpwHs
|
||||
Af4BpwHsAf4BpwHsAf4BpwHsAf4BpwHsAf4BpwHsAf4BrAHxAf8BsAHUAeYSAAHGAZoBPQHrAbgBQQHd
|
||||
AaoBMwHdAaoBMwHdAaoBMwHrAbgBQQHGAZoBPRIAA9gDggPYJwAD/gHLAdoB6gGpAcUB4gGpAcUB4gGp
|
||||
AcUB4gFVAX0BpgFVAX0BpgFVAX0BpgFVAX0BpgGpAcUB4gGpAcUB4gGpAcUB4gHLAdoB6gP+CQABsgHV
|
||||
AeYBsQH1Af8BrgHyAf8BrgHyAf8BrgHyAf8BrgHyAf8BrgHyAf8BrgHyAf8BrgHyAf8BrgHyAf8BsQH1
|
||||
Af8BsgHVAeYSAAHUAbMBbAHnAbgBRgH+AcsBVAH+AcsBVAH+AcsBVAHnAbgBRgHUAbMBbHUAAdAB5AHu
|
||||
AbMB1gHnAbMB1gHnAbMB1gHnAbMB1gHnAbMB1gHnAbMB1gHnAbMB1gHnAbMB1gHnAbMB1gHnAbMB1gHn
|
||||
AdAB5AHuEgAB8AHrAd4BzQGgATkBzQGgATkBzQGgATkBzQGgATkBzQGgATkB8AHrAd4PAAP7A/ECyAHD
|
||||
ArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsALIAcMD8Qb7A/ECyAHDArgBsAK4
|
||||
AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsALIAcMD8QP7YAAD/QP6AsABuAv/A/4B/QL+
|
||||
AfwC/QH7Av0B+gL8AfgC/gH5AsABuAP6Bv0D+gLAAbgL/wP+Af0C/gH8Av0B+wL9AfoC/AH4Av4B+QLA
|
||||
AbgD+gP9ZgACyQHBBv8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL7AfYCyQHBDAACyQHBBv8D/gL9
|
||||
AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL7AfYCyQHBbAACzwHHA/8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2
|
||||
AvgB9AL3AfIC+wH1As8BxwwAAs8BxwP/A/4C/QH8Av0B+wL8AfkC+wH4AvoB9gL4AfQC9wHyAvsB9QLP
|
||||
AccMAAP+A/wG+QP6BvwD+wb5A/wD/gYAA/0D/AP6HvgD+gP8A/0GAALQAcgC/wH+Av0B/AL9AfsBvwFI
|
||||
Aa4B7AHOAeUC+gH2AvgB9AL3AfIC9gHwAvoB8wLQAcgMAALQAcgC/wH+Av0B/AHpAc8B6wGuAUgBvwGu
|
||||
AUgBvwGuAUgBvwHTAaEB2gL3AfIC9gHwAvoB8wLQAcgMAAP+A/wD+QOzA1wG/ANcA7QD+QP8A/4GAAP9
|
||||
A4QDNAOEA/gD4gY0A4QD4gN1A6QD+AOEAzQD6QYAAtIBywL+A/0B+wL8AfkBxgFPAbUB7AHPAeUC+AH0
|
||||
AvcB8gL2AfAC9QHuAvoB8gLSAcsMAALSAcsC/gP9AfsB6gHRAe0BtQFPAcYC+gH2AecBzgHoAbUBTwHG
|
||||
Ae4B4QHrAvUB7gL6AfIC0gHLEgADywN1A/gGAAP4A3UDyxIAA3kD9QYAA6oDeQYAA8sDvgPuA6oDwgkA
|
||||
AtUBzQL+A/wB+QL7AfgBzgFXAb0BzgFXAb0BzgFXAb0B4gGmAdYC9QHuAvQB7AL5Ae8C1QHNDAAC1QHN
|
||||
Av4D/AH5AesB0gHtAb0BVwHOAvgB9AL3AfIBvQFXAc4B5wHNAeUC9AHsAvkB7wLVAc0PAAPOA38D+QwA
|
||||
A/kDfwPODwADxgxgA8YGAAP1CWAD6QkAAtYBzgL9A/sB+AL6AfYB1gFfAcUB7wHRAeYC9gHwAvUB7gL0
|
||||
AewC8QHnAvcB6gLWAc4MAALWAc4C/QP7AfgB7AHTAe4BxQFfAdYC9wHyAeoB0QHqAcUBXwHWAe0B4QHp
|
||||
AvEB5wL3AeoC1gHODAAD0AOGA/kSAAP5A4YD0AwAA/UDlAPvA9EDaAP1CQADkwPvA2gMAALYAdAC/QP6
|
||||
AfYC+AH0AdwBZQHLAdwBZQHLAdwBZQHLAeIBiQHTAvEB5wLsAd8C9AHlAtgB0AwAAtgB0AL9A/oB9gHt
|
||||
AdMB7gHLAWUB3AHLAWUB3AHLAWUB3AHfAawB4wLxAecC7AHfAvQB5QLYAdAJAAPvA2wD7xgAA+8DbAPv
|
||||
DAADjwP2A7cDjwwAA8wDfQPMDAAC2gHSAvwD+AH0AvcB8gL2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLz
|
||||
AeIC2gHSDAAC2gHSAvwD+AH0AvcB8gL2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLzAeIC2gHSDAAD1AOR
|
||||
A/kSAAP5A5ED1A8AA84D1QN3A84MAAPsA3cD7AwAAtsB0wL8A/cB8gL2AfAC9QHuAvQB7ALxAecC7AHf
|
||||
AugB2QLmAdUC8gHhAtsB0wwAAtsB0wL8A/cB8gL2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUC8gHh
|
||||
AtsB0wwAAtsB0wL8A/cB8gL2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUC8gHhAtsB0wwAAtwB1QL7
|
||||
A/YB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZAuYB1QLlAdQC8gHhAtwB1QwAAtwB1QL7A/YB8AL1Ae4C9AHs
|
||||
AvEB5wLsAd8C6AHZAuYB1QLlAdQC8gHhAtwB1QwAAtwB1QL7A/YB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZ
|
||||
AuYB1QLlAdQC8gHhAtwB1QwAAtwB1QL7A/YB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZAuYB1QLlAdQC8gHh
|
||||
AtwB1QwAAt0B1gL6AfQC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUCpAGTAqQBkwKkAZMCyQHADAAC3QHW
|
||||
AvoB9AL1Ae4C9AHsAvEB5wLsAd8C6AHZAuYB1QKkAZMCpAGTAqQBkwLJAcAMAALdAdYC+gH0AvUB7gL0
|
||||
AewC8QHnAuwB3wLoAdkC5gHVAqQBkwKkAZMCpAGTAskBwAwAAt0B1gL6AfQC9QHuAvQB7ALxAecC7AHf
|
||||
AugB2QLmAdUCpAGTAqQBkwKkAZMCyQHADAAC3gHXAvoB8wL0AewC8QHnAuwB3wLoAdkC5gHVAuUB1AK2
|
||||
AaUD/wLeAdcC9wH2DAAC3gHXAvoB8wL0AewC8QHnAuwB3wLoAdkC5gHVAuUB1AK2AaUD/wLeAdcC9wH2
|
||||
DAAC3gHXAvoB8wL0AewC8QHnAuwB3wLoAdkC5gHVAuUB1AK2AaUD/wLeAdcC9wH2DAAC3gHXAvoB8wL0
|
||||
AewC8QHnAuwB3wLoAdkC5gHVAuUB1AK2AaUD/wLeAdcC9wH2DAAC3wHZAvwB9QL5Ae8C9gHqAvQB5QLz
|
||||
AeIC8gHhAvIB4QLCAbEC3wHZAvcB9g8AAt8B2QL8AfUC+QHvAvYB6gL0AeUC8wHiAvIB4QLyAeECwgGx
|
||||
At8B2QL3AfYPAALfAdkC/AH1AvkB7wL2AeoC9AHlAvMB4gLyAeEC8gHhAsIBsQLfAdkC9wH2DwAC3wHZ
|
||||
AvwB9QL5Ae8C9gHqAvQB5QLzAeIC8gHhAvIB4QLCAbEC3wHZAvcB9g8AAuoB5gLgAdkC4AHZAuAB2QLg
|
||||
AdkC4AHZAuAB2QLgAdkC4AHZAvcB9hIAAuoB5gLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZ
|
||||
AvcB9hIAAuoB5gLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAvcB9hIAAuoB5gLgAdkC4AHZ
|
||||
AuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAvcB9gwAAUIBTQE+BwABPgMAASgDAAFAAwABQAMAAQEBAAEB
|
||||
BgABAhYAA/8CAAEBAQABAQL/AwABAQEAAQEC/wMAAQEBAAEBAv8DAAEBAQABAQHAAQMDAAEBAQABAQHA
|
||||
AQMDAAEBAQABAQHxAY8DAAEBAQABAQHgAQcDAAEBAQABAQHGAWMDAAEBAQABAQGOAXEDAAEBAQABAQHG
|
||||
AWMDAAEBAQABAQHgAQcDAAEBAQABAQHxAY8DAAEBAQABAQH5AZ8DAAEBAQABAQL/AwABAQEAAQEC/wIA
|
||||
AYABAwEAAQEC/wIABP8CAAH+AQEC/wUAAQEBiAMAAcABAQEAAQEBiAEAAYABAQHAAQEBAAEBAY8B/wGA
|
||||
AQEBwAEBAQABAQL/AYABAQHAAQEBAAEBAv8BgAEBAcABAQEAAQEBjwH/AYABAQHAAQEBAAEBAYwBAQGA
|
||||
AQEBwAEBAQABAQGPAf8BgAEBAcABAwEAAR8C/wGAAQEBwAEDAfABHwL/AYABAQHAAQMB8AEfAY8B/wGA
|
||||
AQEBwAEDAfABHwGMAQEBgAEBAcABAwHwAR8BjwH/AYABAQHAAQMB8AEfBP8BwAEDAfABHwQABP8EAAT/
|
||||
AcABAwHAAQME/wHAAQMBwAEDAcABAwIAAcABAwHAAQMBwAEDAgABwAEDAcABAwHxAY8BzAHBAcABAwHA
|
||||
AQMB4wHHAcABwQHAAQMBwAEDAccB4wHAAeMBwAEDAcABAwGPAfEB4QHjAcABAwHAAQMBxwHjAeEB4wHA
|
||||
AQMBwAEDAeMBxwHhAf8BwAEDAcABAwHxAY8B8wH/AcABAwHAAQMB+QGfAv8BwAEDAcABAwT/AcABBwHA
|
||||
AQcE/wHAAQ8BwAEPBP8QAAHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAED
|
||||
AcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAED
|
||||
AcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAED
|
||||
AcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQcBwAEHAcABBwHAAQcBwAEPAcABDwHAAQ8BwAEP
|
||||
Cw==
|
||||
AtsB0w8AA9UDlgP5DAAD+QOWA9USAAP2A6IDfgP2IQAC3AHVAvsD9gHwAvUB7gL0AewC8QHnAuwB3wLo
|
||||
AdkC5gHVAuUB1ALyAeEC3AHVDAAC3AHVAvsD9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC5gHVAuUB1ALy
|
||||
AeEC3AHVEgAD1wOZA/oGAAP6A5kD1xgABpwkAALdAdYC+gH0AvUB7gL0AewC8QHnAuwB3wLoAdkC5gHV
|
||||
AqQBkwKkAZMCpAGTAskBwAwAAt0B1gL6AfQC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUCpAGTAqQBkwKk
|
||||
AZMCyQHAFQAD2AOdBgADnQPYRQAC3gHXAvoB8wL0AewC8QHnAuwB3wLoAdkC5gHVAuUB1AK2AaUD/wLe
|
||||
AdcC9wH2DAAC3gHXAvoB8wL0AewC8QHnAuwB3wLoAdkC5gHVAuUB1AK2AaUD/wLeAdcC9wH2bAAC3wHZ
|
||||
AvwB9QL5Ae8C9gHqAvQB5QLzAeIC8gHhAvIB4QLCAbEC3wHZAvcB9g8AAt8B2QL8AfUC+QHvAvYB6gL0
|
||||
AeUC8wHiAvIB4QLyAeECwgGxAt8B2QL3AfZvAALqAeYC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZ
|
||||
AuAB2QL3AfYSAALqAeYC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QL3AfZsAAP7A/ECyAHD
|
||||
ArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsALIAcMD8Qb7A/ECyAHDArgBsAK4
|
||||
AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsALIAcMD8Qb7A/ECyAHDArgBsAK4AbACuAGw
|
||||
ArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsALIAcMD8Qb7A/ECyAHDArgBsAK4AbACuAGwArgBsAK4
|
||||
AbACuAGwArgBsAK4AbACuAGwArgBsALIAcMD8QP7A/0D+gLAAbgL/wP+Af0C/gH8Av0B+wL9AfoC/AH4
|
||||
Av4B+QLAAbgD+gb9A/oCwAG4C/8D/gH9Av4B/AL9AfsC/QH6AvwB+AL+AfkCwAG4A/oG/QP6AsABuAv/
|
||||
A/4B/QL+AfwC/QH7Av0B+gL8AfgC/gH5AsABuAP6Bv0D+gLAAbgL/wP+Af0C/gH8Av0B+wL9AfoC/AH4
|
||||
Av4B+QLAAbgD+gP9BgACyQHBBv8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL7AfYCyQHBDAACyQHB
|
||||
Bv8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL7AfYCyQHBDAACyQHBBv8D/gL9AfwC/QH7AvwB+QL7
|
||||
AfgC+gH2AvgB9AL7AfYCyQHBDAACyQHBBv8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL7AfYCyQHB
|
||||
DAACzwHHA/8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL3AfIC+wH1As8BxwwAAs8BxwP/A/4C/QH8
|
||||
Av0B+wL8AfkC+wH4AvoB9gL4AfQC9wHyAvsB9QLPAccMAALPAccD/wP+Av0B/AL9AfsC/AH5AvsB+AL6
|
||||
AfYC+AH0AvcB8gL7AfUCzwHHDAACzwHHA/8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL3AfIC+wH1
|
||||
As8BxwwAAtAByAL/Af4C/QH8AdwBzwHrAXsBSAG/AXsBSAG/AXsBSAG/AYsBXgHGAegB4QHrAvYB8AL6
|
||||
AfMC0AHIDAAC0AHIAv8B/gL9AfwC/QH7AYIBwgG0AVkBrgGdAVkBrgGdAakB0wHIAvcB8gL2AfAC+gHz
|
||||
AtAByAwAAtAByAL/Af4C/QH8Av0B+wHeAaIBqQG/AUgBWQG/AUgBWQHcAaABpgL3AfIC9gHwAvoB8wLQ
|
||||
AcgMAALQAcgC/wH+Av0B/AL9AfsBvwF7AUgBvwF7AUgBvwF7AUgB3AG6AZ4C9wHyAvYB8AL6AfMC0AHI
|
||||
DAAC0gHLAv4D/QH7Ad0B0QHtAYIBTwHGAvoB9gL4AfQBggFPAcYB2QHMAeUC9QHuAvoB8gLSAcsMAALS
|
||||
AcsC/gP9AfsC/AH5AvsB+AL6AfYB0gHoAeABYAG1AaQC9gHwAvUB7gL6AfIC0gHLDAAC0gHLAv4D/QH7
|
||||
AvwB+QL7AfgB4AGlAasB0wF6AYUC9wHyAvYB8AL1Ae4C+gHyAtIBywwAAtIBywL+A/0B+wL8AfkBxgGC
|
||||
AU8B7AHbAcwC+AH0AvcB8gL2AfAC9QHuAvoB8gLSAcsMAALVAc0C/gP8AfkB3wHSAe0BigFXAc4BmAFs
|
||||
AdMBigFXAc4BpQF/AdcB5wHhAekC9AHsAvkB7wLVAc0MAALVAc0C/gP8AfkC+wH4AbIB3AHSAWgBvQGs
|
||||
AWgBvQGsAa4B2QHNAvUB7gL0AewC+QHvAtUBzQwAAtUBzQL+A/wB+QL7AfgC+gH2AeMBqAGuAdkBfwGL
|
||||
AvYB8AL1Ae4C9AHsAvkB7wLVAc0MAALVAc0C/gP8AfkC+wH4Ac4BigFXAe4B3QHMAvcB8gL2AfAC9QHu
|
||||
AvQB7AL5Ae8C1QHNDAAC1gHOAv0D+wH4AeAB0wHuAZIBXwHWAvcB8gHdAdAB6QGSAV8B1gL0AewC8QHn
|
||||
AvcB6gLWAc4MAALWAc4C/QP7AfgC+gH2AXABxQG0AdUB6wHiAvYB8AL1Ae4C9AHsAvEB5wL3AeoC1gHO
|
||||
DAAC1gHOAv0D+wH4AvoB9gL4AfQB5wGrAbEB3gGFAZAC9QHuAvQB7ALxAecC9wHqAtYBzgwAAtYBzgL9
|
||||
A/sB+AL6AfYB1gGSAV8B7wHeAc0C9gHwAvUB7gL0AewC8QHnAvcB6gLWAc4MAALYAdAC/QP6AfYB4AHT
|
||||
Ae4BmAFlAdwBmAFlAdwBmAFlAdwBxQGsAeMC8QHnAuwB3wL0AeUC2AHQDAAC2AHQAv0D+gH2AvgB9AG3
|
||||
AeEB1QF2AcsBugF2AcsBugGVAdUBxgLxAecC7AHfAvQB5QLYAdAMAALYAdAC/QP6AfYC+AH0AeoBrwG0
|
||||
AdwBZQF2AdwBZQF2AegBrAGxAvEB5wLsAd8C9AHlAtgB0AwAAtgB0AL9A/oB9gL4AfQB3AGYAWUB7wHe
|
||||
Ac0C9QHuAvQB7ALxAecC7AHfAvQB5QLYAdAMAALaAdIC/AP4AfQC9wHyAvYB8AL1Ae4C9AHsAvEB5wLs
|
||||
Ad8C6AHZAvMB4gLaAdIMAALaAdIC/AP4AfQC9wHyAvYB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZAvMB4gLa
|
||||
AdIMAALaAdIC/AP4AfQC9wHyAvYB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZAvMB4gLaAdIMAALaAdIC/AP4
|
||||
AfQC9wHyAvYB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZAvMB4gLaAdIMAALbAdMC/AP3AfIC9gHwAvUB7gL0
|
||||
AewC8QHnAuwB3wLoAdkC5gHVAvIB4QLbAdMMAALbAdMC/AP3AfIC9gHwAvUB7gL0AewC8QHnAuwB3wLo
|
||||
AdkC5gHVAvIB4QLbAdMMAALbAdMC/AP3AfIC9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC5gHVAvIB4QLb
|
||||
AdMMAALbAdMC/AP3AfIC9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC5gHVAvIB4QLbAdMMAALcAdUC+wP2
|
||||
AfAC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUC5QHUAvIB4QLcAdUMAALcAdUC+wP2AfAC9QHuAvQB7ALx
|
||||
AecC7AHfAugB2QLmAdUC5QHUAvIB4QLcAdUMAALcAdUC+wP2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLm
|
||||
AdUC5QHUAvIB4QLcAdUMAALcAdUC+wP2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUC5QHUAvIB4QLc
|
||||
AdUMAALdAdYC+gH0AvUB7gL0AewC8QHnAuwB3wLoAdkC5gHVAqQBkwKkAZMCpAGTAskBwAwAAt0B1gL6
|
||||
AfQC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUCpAGTAqQBkwKkAZMCyQHADAAC3QHWAvoB9AL1Ae4C9AHs
|
||||
AvEB5wLsAd8C6AHZAuYB1QKkAZMCpAGTAqQBkwLJAcAMAALdAdYC+gH0AvUB7gL0AewC8QHnAuwB3wLo
|
||||
AdkC5gHVAqQBkwKkAZMCpAGTAskBwAwAAt4B1wL6AfMC9AHsAvEB5wLsAd8C6AHZAuYB1QLlAdQCtgGl
|
||||
A/8C3gHXAvcB9gwAAt4B1wL6AfMC9AHsAvEB5wLsAd8C6AHZAuYB1QLlAdQCtgGlA/8C3gHXAvcB9gwA
|
||||
At4B1wL6AfMC9AHsAvEB5wLsAd8C6AHZAuYB1QLlAdQCtgGlA/8C3gHXAvcB9gwAAt4B1wL6AfMC9AHs
|
||||
AvEB5wLsAd8C6AHZAuYB1QLlAdQCtgGlA/8C3gHXAvcB9gwAAt8B2QL8AfUC+QHvAvYB6gL0AeUC8wHi
|
||||
AvIB4QLyAeECwgGxAt8B2QL3AfYPAALfAdkC/AH1AvkB7wL2AeoC9AHlAvMB4gLyAeEC8gHhAsIBsQLf
|
||||
AdkC9wH2DwAC3wHZAvwB9QL5Ae8C9gHqAvQB5QLzAeIC8gHhAvIB4QLCAbEC3wHZAvcB9g8AAt8B2QL8
|
||||
AfUC+QHvAvYB6gL0AeUC8wHiAvIB4QLyAeECwgGxAt8B2QL3AfYPAALqAeYC4AHZAuAB2QLgAdkC4AHZ
|
||||
AuAB2QLgAdkC4AHZAuAB2QL3AfYSAALqAeYC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QL3
|
||||
AfYSAALqAeYC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QL3AfYSAALqAeYC4AHZAuAB2QLg
|
||||
AdkC4AHZAuAB2QLgAdkC4AHZAuAB2QL3AfYMAAFCAU0BPgcAAT4DAAEoAwABQAMAAUADAAEBAQABAQYA
|
||||
AQIWAAP/AgABAQEAAQEC/wMAAQEBAAEBAv8DAAEBAQABAQL/AwABAQEAAQEBwAEDAwABAQEAAQEBwAED
|
||||
AwABAQEAAQEB8QGPAwABAQEAAQEB4AEHAwABAQEAAQEBxgFjAwABAQEAAQEBjgFxAwABAQEAAQEBxgFj
|
||||
AwABAQEAAQEB4AEHAwABAQEAAQEB8QGPAwABAQEAAQEB+QGfAwABAQEAAQEC/wMAAQEBAAEBAv8CAAGA
|
||||
AQMBAAEBAv8CAAT/AgAB/gEBAv8FAAEBAYgDAAHAAQEBAAEBAYgBAAGAAQEBwAEBAQABAQGPAf8BgAEB
|
||||
AcABAQEAAQEC/wGAAQEBwAEBAQABAQL/AYABAQHAAQEBAAEBAY8B/wGAAQEBwAEBAQABAQGMAQEBgAEB
|
||||
AcABAQEAAQEBjwH/AYABAQHAAQMBAAEfAv8BgAEBAcABAwHwAR8C/wGAAQEBwAEDAfABHwGPAf8BgAEB
|
||||
AcABAwHwAR8BjAEBAYABAQHAAQMB8AEfAY8B/wGAAQEBwAEDAfABHwT/AcABAwHwAR8EAAT/BAAE/wHA
|
||||
AQMBwAEDBP8BwAEDAcABAwHAAQMCAAHAAQMBwAEDAcABAwIAAcABAwHAAQMB8QGPAcwBwQHAAQMBwAED
|
||||
AeMBxwHAAcEBwAEDAcABAwHHAeMBwAHjAcABAwHAAQMBjwHxAeEB4wHAAQMBwAEDAccB4wHhAeMBwAED
|
||||
AcABAwHjAccB4QH/AcABAwHAAQMB8QGPAfMB/wHAAQMBwAEDAfkBnwL/AcABAwHAAQME/wHAAQcBwAEH
|
||||
BP8BwAEPAcABDwT/EAABwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHA
|
||||
AQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHA
|
||||
AQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHA
|
||||
AQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEHAcABBwHAAQcBwAEHAcABDwHAAQ8BwAEPAcABDws=
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
|
@ -603,15 +602,15 @@
|
|||
<data name="_buttonCut.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHASURBVDhPrVI9SAJhGH5vlygi+jFIBBGH8CZBAkFwEWlQ
|
||||
WsIma1cKTG40AucajCJoixqkloiEcBCCEC7ilqTloDjiloYKEvLrfT68UDFpSHh4v/f5u+9Uov/4pFKp
|
||||
xWQyGfxLF3zw93gzmYwGJBKJoSXQHW9Pgc/n03RdF+l0WotGowNLwEOHD/7+2wZBGoYh+Iqaqqo9JdjB
|
||||
Q++EBz4k6Pf7tWazKeLxuMZGacLEDh46U0NfU5aYpikikYjmdruXMLH/JSxfa4GfEAgENMuyRCwWu6rV
|
||||
agI7+F9/pRci1zPR8pOi7DBOK4pS3fJ4DNu2Rd3lMu54Bw8dPvh/ygxeHhVl2w6HGx/Z7GurWGyLUknc
|
||||
53LimugdZwA8dPjgR06W6EQrZiikw3Tm9T7sEjW+ikVxwfOSqIyJHTx0+OBHThbUFeWwO/yZz4tzNjOk
|
||||
ARM7+O4S5GRBhaj6ls+3IbYKBXHM88Rp77wodvDQ4YMfOSnvEe3fqqqFWxyxuNkXdr4s8NDhgx85qfmJ
|
||||
omWiAyZuVok2mJrH/4cxx3AzZhleRmCNaB0++JFzymf44GCaz5OMccYoY6SDMZ4TjKkuLzL0DSJE7Fvo
|
||||
PhlwAAAAAElFTkSuQmCC
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHBSURBVDhPrVI9SAJhGH5vlygi+rkgEUQc4pwECQTBRaRB
|
||||
aQmbrFmkwOQ2jcC5BqMI2qIGqSUiIRyEIISLuCVpEQqJW4IoMMiv9/nwQsWkIeHh/d7n775Tif7jE4/H
|
||||
F2OxmPaXLvjg7/Emk0kdiEajQ0ug296eArfbrRuGIRKJhB4KhQaWgIcOH/z9t9VAmqYp+Iq6z+frKcEO
|
||||
HnonPPAhmsfj0ev1uohEIjobpQkTO3joTA19TVnSaDREMBjUVVVdwsT+l7B8rQV+gtfr1ZvNpgiHw1eV
|
||||
SkVgB//rr/RC5HgmWn5SlB3GaUlRyltOp2lZlqg6HOYd7+Chwwf/T5nJy6OibFuBQO0jlXpt5XJtUSiI
|
||||
+3RaXBO94wyAhw4f/MjJEoNopeH3GzCduVwPu0S1r3xeXPC8JCpiYgcPHT74kZMFVUU57A63MhlxzmaG
|
||||
NGBiB99dgpwsKBGV3zKZNsTPbFYc8zyx2zsvih08dPjgR07Ke0T7t5rWxC2OWNzsC9tfFnjo8MGPnNQ8
|
||||
RKEi0QETN6tEG0zN4//DmGOojFmGi+FdI1qHD37k7PIZPtiY5vMkY5wxyhjpYIznBGOqy4sMfQMNTOxL
|
||||
rJWu9gAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="_buttonCopy.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
|
@ -631,17 +630,17 @@
|
|||
<data name="_buttonPaste.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJfSURBVDhPjZJdSJNRGMfPRQhdVRJd1GVNc1j5Tm3ah5oG
|
||||
y5EX6pxOXWo5tZlDG69JDlakhJB5saKitC/t+8uLFnQTSGAXb2gfUEkIUdZFMSi3tjn133ne2oFtXnTg
|
||||
x3s45zk/nvN/D2NLDHeFNqm8vLzMZDI1EzSntaVqxdqZfHbBk8cUokdik0Ny69epqY8gaE5r0X2qTZDR
|
||||
5oez+zHatg3j468xMfEe09NfVGhOa7T3zlMPqk0QnN7JlDcDtbhel46LlRtw1arFzQMZuG3TYbh+E4aq
|
||||
UzHSsBmv+qtBtQmC/lymTJ6y4PmxEjxxFqicl0sxcMQiOOduwGBvM3p2r36bIOjLYcrLPjOede8ReLqt
|
||||
+L2wgF9zc/gRCmHG78fo2BjaK/WfylwuTYzkZBZTXvSU4mlnkaC/swqBSAS+QADfZ2fx2efDiNcLGntl
|
||||
2V7c1ZUiJCcymULtP+7IU6HAjttLEJyfx89gUEg8w8OIojEYXELg3sIUav/+wa1qkJeqNJDrChHmV/CH
|
||||
wzES6mSGd1VktzuE4KiWKd7D+bhcsxGDlhQV575CRLggyDOIl1AmO2y2DiGQ05jysDUHV2rTBB3WXVhY
|
||||
XESYXyNeQsHqrVanELRrmPKAC67x9qM4agqwyAOb513ES/xcIJnNnULgWM8Fdr36WKK0mLeriZOEOqHr
|
||||
UCYUbIh/U43GbiFoWvdXcKtRErSV6lBVLMVgMUrI0Kz9tkKSelfpdI0kWM5ZU7GSKY8O5ap/4V5LNu42
|
||||
ZwnuNGWCoGdNUC2d+XeWJfNJevYydsOQxJT/gWrpDCf5D6Zt9cwWcc11AAAAAElFTkSuQmCC
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJfSURBVDhPjZJdSJNRGMfPRQhdVRJd1GVNc1j2Tm3ah5oG
|
||||
y5EX6pxOXWr51UzRxmuSwoqUEFperKgo7Uv7/vKiBd0EEtjFCe0DKgkhyrooBuVsm9P9O89bO6DzogM/
|
||||
3sM5z/nxnP97GFtiuEr0ccXFxUUWi6WBoDmtLVUr185kswueLMaJboWND6hNXycmPoKgOa1F96k2Rkab
|
||||
H87ux3DzNoyOvsbY2HtMTn7RoDmt0d47TzWoNkZweifjb/oqcb0qGRdLN+CqXY+bB7bgdp0Bg9WbMFCe
|
||||
iKGazXjlLgfVxgjcmYyPn7Lh+bECPHHmaJxXC9F3xCY556pBf08Dunevfhsj6M1g/GWvFc8690g8nXb8
|
||||
np/Hr9lZ/AgGMeX3Y3hkBK2lxk9FXV26BZKTaYy/6C7E0/Y8ibu9DDPhMHwzM/g+PY3PPh+GvF7Q2Kuq
|
||||
jvyOjgQpOZHKOLX/uC1LgwI77ihAYG4OPwMBKfEMDiKKzmTqkgJXCuPU/v2DW7UgL5XpoFblIiSu4A+F
|
||||
FkiokynRVZ7D0SIFR/WMew9n43LFRvTbEjSc+3IRFoKAyGCxhDLZUVfXJgVqEuMPmzJwpTJJ0mbfhflI
|
||||
BCFxjcUSCtZotzuloFXH+AMhuCbaj9JSkYOICGxOdLFY4hcCxWptl4KW9ULgMGqPJUqjdbuWOEmoE7oO
|
||||
ZULBBsU30WzulIL6dX8Ft2oVSXOhAWX5ygJsZgUpurXfVihKzyqDoZYEywVrSlYy/uhQpvYX7jWm425D
|
||||
muROfSoIetYE1dKZf2dZvJgkpy9jN0xxjP8PVEtnBPF/AKXf9csr/2VyAAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="_buttonRename.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
|
@ -804,27 +803,27 @@
|
|||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFySURBVDhPY2CgBthfz8CyP4kl40AiczcM19sxnEHGyHIg
|
||||
tSA9cLv3xrErn6rWXPp+T+f/d7s7wHh2hikKhomD1IDUgvTADdiVwOx+c4r3EWQDlpc4/ofhJYV2cINB
|
||||
akBqQXrgBuyIZ8m9vyz7wbPNDf9heEuj338YXlftARcHyYPUgvTADdgawzz1/v7lf//fXfUfhu+uKgcy
|
||||
akBqQXrgBuyIZ8m9vyz7wbPNDf9heEuj338YXlftARcHyYPUgvTADdgawzz13v7lf//fXfUfhu+uKgcy
|
||||
IfjMzDS4OEgepBakB27A5ijmGT8vzf//+cRUON7dEfofhjc3+KLIgdSC9MAN2BDFPPvbudn/PxyZCMcg
|
||||
zavKXcCGLCt2QJEDqQXpgRuwOoJ5/qeT0/6/2d8DxyDNID6MRpYDqQXpgRuwPIx58btD/f9f7monCoPU
|
||||
gvTADVgSwrjsFTDun25tIgqD1IL0wA2YH8C4+smWxv8PN9QShUFqQXrgBkzxZNzxYF31//trq4jCILUg
|
||||
PTAD5FKNGee1uTAeJQWD9AANkAMZwg/E4kAsRSIG6QHppQwAAH683UYodOupAAAAAElFTkSuQmCC
|
||||
PTAD5FKNGee1uTAeJQWD9AANkAMZwg/E4kAsRSIG6QHppQwAAHlk3UT14yZDAAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="_buttonFindNext.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJRSURBVDhPhVJdaJJRGFbRLhSnOGQQdVGDCOpOiOlANDVc
|
||||
oxT/Nz+XS5cm/v8kmWGjxEF3RYx1EQQFXWw3YzQCK0nqIhbZRTAYBdEPRbddRLt4Ou+H3/a1Rn3wcN7z
|
||||
Ps/7nPd7z5FIRJ9UKp1lWKRVnKf4X9yWlomWqtUq1Gp1e6cB5YgjzU6O3zPiql6vf2W320Erw21BSLGY
|
||||
I+1fJiy53Gw2USqVkMuVoNPpemIQV61eQDabpy6WdzNYaTQaiEQ4eL1hGAwG5PN5HhQTF4vF4PEEyGBl
|
||||
N4PVer2OyckJmEwmvkgMh8OBaDQKl8tLBqt/GLDEda1Wu07/LxS5XC6kUikeFFPebrfxK2mpRjz9dq1W
|
||||
Y/+ehc/ng9Fogkaj2RDD7/cjk8kgHo8zJKmL7Ztim065XMbUFMdOsWN83A+VSvWeXd0IgeJKpcJmcBZj
|
||||
Y044nW4y6Ig76BYKBYTDE7BarUzggVKp/CAIKC4Wi2wGZ2C79AC2mRYZdMUGL7LZLEKhAMxmMxwOF+Ry
|
||||
+SdBQHEul+NvyHStw/AMQ6OhDbHBy3Q6jenpKD+DYJCDQqH4QoIjzd7C/tzir9HZxzBeaePY5UeY/wwc
|
||||
TC79ONp8zQmvsGexWGCzHd+6BXbqNyKHL3bXbnwEUm+ByJttlNYB4oQu3iUSCXAcx67MzR5SCDKZ7DuR
|
||||
utNzC4OBm5uHz9/HoeQ9DM/cxchzQBe89XPQ3eI72MfwkOGrGGxIT9jeQOjHPK86ObdJUBywPO3XSgbo
|
||||
IIYhhr3/w55T83cUJ1rn+jUDvwF4CyfRYwLPWAAAAABJRU5ErkJggg==
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJQSURBVDhPhVJdaJJRGFbRLhSnOGQQu6lBBHUnxHQgmp/h
|
||||
GqX4v/m5XLo08f8nyQwbJQ66K2KsiyAo6GK7GaMRWElSF9HILoLBKIh+KLrtItrF03k/dPtaoz54OO95
|
||||
n+d9zvu950gkok8qlc4xLNEqzlP8L25by0TLlUoFarW6tduAcsSRZjcn7BlxVa/Xr3McB1oZbveFFIs5
|
||||
0v5lwpIrjUYDxWIR2WwROp2uKwZxlcoFZDI56mJlL4PVer2OcJiHxxOCwWBALpcTQDFx0WgUbrefDFb3
|
||||
Mlir1WqYmpqEyWQSisSw2+2IRCJwOj1ksPaHAUtc12q1G/T//SKn04lkMimAYspznE1YSUs14um3qtUq
|
||||
+/cMvF4vjEYTNBrNphg+nw/pdBqxWIwhQV3s3BTbtEulEqaneXYKh4kJH1Qq1Xt2daMEisvlMpvBWYyP
|
||||
O+BwuMigLe6gk8/nEQpNwmq1MoEbSqXyQ19AcaFQYDM4A9ulB7DNNsmgIzZ4kclkEAz6YTabYbc7IZfL
|
||||
P/UFFGezWeGGTNfaDM8wNBbcFBu8TKVSmJmJCDMIBHgoFIovJDjS6C4OZ5d+jc09hvFKC8cuP8LCZ+Bg
|
||||
YvnH0cZrvv8KuxaLBTbb8e1bYKd+I3LkYufVjY9A8i0QfrOD4gZAXL+Ld/F4HDzPsytzsYcUhEwm+06k
|
||||
7vT84qD/5tbh8/dxKHEPI7N3Mfoc0AVu/Rx0NYUOhhkeMnwVgw3pCdsbCL1Y4FUn57cIigOWp71ayQAd
|
||||
xDDEsP9/2Hdq4Y7iRPNcr2bgN3brJ9Bul6m9AAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
|
|
40
HexEditor.Designer.cs
generated
40
HexEditor.Designer.cs
generated
|
@ -30,7 +30,8 @@
|
|||
this.hexBox1 = new Be.Windows.Forms.HexBox();
|
||||
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
|
||||
this._curPositionLabel = new System.Windows.Forms.ToolStripStatusLabel();
|
||||
this._buttonClose = new System.Windows.Forms.Button();
|
||||
this._buttonCancel = new System.Windows.Forms.Button();
|
||||
this._buttonOK = new System.Windows.Forms.Button();
|
||||
this.statusStrip1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
|
@ -67,24 +68,36 @@
|
|||
this._curPositionLabel.Size = new System.Drawing.Size(100, 17);
|
||||
this._curPositionLabel.Text = "0000";
|
||||
//
|
||||
// _buttonClose
|
||||
// _buttonCancel
|
||||
//
|
||||
this._buttonClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this._buttonClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this._buttonClose.Location = new System.Drawing.Point(429, 307);
|
||||
this._buttonClose.Name = "_buttonClose";
|
||||
this._buttonClose.Size = new System.Drawing.Size(75, 23);
|
||||
this._buttonClose.TabIndex = 2;
|
||||
this._buttonClose.Text = "Close";
|
||||
this._buttonClose.UseVisualStyleBackColor = true;
|
||||
this._buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this._buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this._buttonCancel.Location = new System.Drawing.Point(348, 307);
|
||||
this._buttonCancel.Name = "_buttonCancel";
|
||||
this._buttonCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this._buttonCancel.TabIndex = 13;
|
||||
this._buttonCancel.Text = "Cancel";
|
||||
this._buttonCancel.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// _buttonOK
|
||||
//
|
||||
this._buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this._buttonOK.Location = new System.Drawing.Point(429, 307);
|
||||
this._buttonOK.Name = "_buttonOK";
|
||||
this._buttonOK.Size = new System.Drawing.Size(75, 23);
|
||||
this._buttonOK.TabIndex = 12;
|
||||
this._buttonOK.Text = "OK";
|
||||
this._buttonOK.UseVisualStyleBackColor = true;
|
||||
this._buttonOK.Click += new System.EventHandler(this._buttonOK_Click);
|
||||
//
|
||||
// HexEditor
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this._buttonClose;
|
||||
this.CancelButton = this._buttonCancel;
|
||||
this.ClientSize = new System.Drawing.Size(516, 355);
|
||||
this.Controls.Add(this._buttonClose);
|
||||
this.Controls.Add(this._buttonCancel);
|
||||
this.Controls.Add(this._buttonOK);
|
||||
this.Controls.Add(this.statusStrip1);
|
||||
this.Controls.Add(this.hexBox1);
|
||||
this.Name = "HexEditor";
|
||||
|
@ -101,6 +114,7 @@
|
|||
private Be.Windows.Forms.HexBox hexBox1;
|
||||
private System.Windows.Forms.StatusStrip statusStrip1;
|
||||
private System.Windows.Forms.ToolStripStatusLabel _curPositionLabel;
|
||||
private System.Windows.Forms.Button _buttonClose;
|
||||
private System.Windows.Forms.Button _buttonCancel;
|
||||
private System.Windows.Forms.Button _buttonOK;
|
||||
}
|
||||
}
|
55
HexEditor.cs
55
HexEditor.cs
|
@ -11,17 +11,51 @@ namespace NBTExplorer
|
|||
{
|
||||
public partial class HexEditor : Form
|
||||
{
|
||||
private byte[] _data;
|
||||
private bool _modified;
|
||||
DynamicByteProvider _byteProvider;
|
||||
|
||||
private class FixedByteProvider : DynamicByteProvider
|
||||
{
|
||||
public FixedByteProvider (byte[] data)
|
||||
: base(data)
|
||||
{ }
|
||||
|
||||
public override bool SupportsInsertBytes ()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public HexEditor (string tagName, byte[] data)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
this.Text = "Editing: " + tagName + " (Read Only)";
|
||||
this.Text = "Editing: " + tagName;
|
||||
|
||||
hexBox1.ByteProvider = new DynamicByteProvider(data);
|
||||
_data = new byte[data.Length];
|
||||
Array.Copy(data, _data, data.Length);
|
||||
|
||||
_byteProvider = new FixedByteProvider(_data);
|
||||
_byteProvider.Changed += (o, e) => { _modified = true; };
|
||||
|
||||
hexBox1.ByteProvider = _byteProvider;
|
||||
|
||||
hexBox1.HorizontalByteCountChanged += HexBox_HorizontalByteCountChanged;
|
||||
hexBox1.CurrentLineChanged += HexBox_CurrentLineChanged;
|
||||
hexBox1.CurrentPositionInLineChanged += HexBox_CurrentPositionInLineChanged;
|
||||
|
||||
hexBox1.ReadOnly = false;
|
||||
}
|
||||
|
||||
public byte[] Data
|
||||
{
|
||||
get { return _data; }
|
||||
}
|
||||
|
||||
public bool Modified
|
||||
{
|
||||
get { return _modified; }
|
||||
}
|
||||
|
||||
private void HexBox_HorizontalByteCountChanged (object sender, EventArgs e)
|
||||
|
@ -45,5 +79,22 @@ namespace NBTExplorer
|
|||
|
||||
_curPositionLabel.Text = pos.ToString();
|
||||
}
|
||||
|
||||
private void Apply ()
|
||||
{
|
||||
long len = Math.Min(_data.Length, _byteProvider.Length);
|
||||
|
||||
for (int i = 0; i < len; i++) {
|
||||
_data[i] = _byteProvider.Bytes[i];
|
||||
}
|
||||
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
}
|
||||
|
||||
private void _buttonOK_Click (object sender, EventArgs e)
|
||||
{
|
||||
Apply();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
<ApplicationIcon>dead_bush.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Substrate, Version=1.0.2.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<Reference Include="Substrate, Version=1.3.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\Substrate\SubstrateCS\bin\Release\NET2\Substrate.dll</HintPath>
|
||||
</Reference>
|
||||
|
@ -55,6 +55,24 @@
|
|||
<Compile Include="About.Designer.cs">
|
||||
<DependentUpon>About.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="EditName.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="EditName.Designer.cs">
|
||||
<DependentUpon>EditName.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="EditString.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="EditString.Designer.cs">
|
||||
<DependentUpon>EditString.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="CreateNode.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="CreateNode.Designer.cs">
|
||||
<DependentUpon>CreateNode.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="EditValue.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
|
@ -84,6 +102,15 @@
|
|||
<EmbeddedResource Include="About.resx">
|
||||
<DependentUpon>About.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="EditName.resx">
|
||||
<DependentUpon>EditName.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="EditString.resx">
|
||||
<DependentUpon>EditString.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="CreateNode.resx">
|
||||
<DependentUpon>CreateNode.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="EditValue.resx">
|
||||
<DependentUpon>EditValue.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
|
|
@ -151,7 +151,7 @@ namespace Be.Windows.Forms
|
|||
/// <summary>
|
||||
/// Returns true
|
||||
/// </summary>
|
||||
public bool SupportsWriteByte()
|
||||
public virtual bool SupportsWriteByte()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
@ -159,7 +159,7 @@ namespace Be.Windows.Forms
|
|||
/// <summary>
|
||||
/// Returns true
|
||||
/// </summary>
|
||||
public bool SupportsInsertBytes()
|
||||
public virtual bool SupportsInsertBytes()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
@ -167,7 +167,7 @@ namespace Be.Windows.Forms
|
|||
/// <summary>
|
||||
/// Returns true
|
||||
/// </summary>
|
||||
public bool SupportsDeleteBytes()
|
||||
public virtual bool SupportsDeleteBytes()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue