forked from mirrors/NBTExplorer
Compare commits
42 commits
Author | SHA1 | Date | |
---|---|---|---|
|
15b1b2891f | ||
|
e26a29580a | ||
|
d29f249d7e | ||
|
931ac752f5 | ||
|
97386a4e5f | ||
|
9d640079b8 | ||
|
2882fcde17 | ||
|
60a7bbf8e9 | ||
|
27110539a8 | ||
|
5d456cf743 | ||
|
a279bb281e | ||
|
a9f40fc596 | ||
|
3916b8d362 | ||
|
26780b841d | ||
|
f2688a8f9f | ||
|
abde7d87c9 | ||
|
3dc86b8b7c | ||
|
1fd6ec2680 | ||
|
975c11d3d8 | ||
|
7a151d3e6f | ||
|
db5d2a05c0 | ||
|
5c32832281 | ||
|
d8229f7ec5 | ||
|
fc63457d8e | ||
|
d3e53ac559 | ||
|
c9014d8b1f | ||
|
2a043ba09c | ||
|
6412629678 | ||
|
f3304f51a1 | ||
|
3e6240d895 | ||
|
e1096e29ca | ||
|
b303551fa0 | ||
|
16ec47a411 | ||
|
c5debf12d4 | ||
|
d4ad1bd99a | ||
|
a03537bb99 | ||
|
2d70d2af10 | ||
|
5d51967501 | ||
|
ab4e789114 | ||
|
b642b3aee4 | ||
|
400eb1f80a | ||
|
366ec3fe9e |
90 changed files with 4259 additions and 1186 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -5,3 +5,4 @@ obj
|
||||||
*.cache
|
*.cache
|
||||||
*.userprefs
|
*.userprefs
|
||||||
Staging/
|
Staging/
|
||||||
|
UpgradeLog*.htm
|
||||||
|
|
Binary file not shown.
|
@ -3,7 +3,7 @@
|
||||||
<Product Id="*"
|
<Product Id="*"
|
||||||
Name="NBTExplorer"
|
Name="NBTExplorer"
|
||||||
Language="1033"
|
Language="1033"
|
||||||
Version="2.6.0.0"
|
Version="2.8.0.0"
|
||||||
Manufacturer="Justin Aquadro"
|
Manufacturer="Justin Aquadro"
|
||||||
UpgradeCode="0bfb1026-21f2-4552-ad71-ca90aae10a25">
|
UpgradeCode="0bfb1026-21f2-4552-ad71-ca90aae10a25">
|
||||||
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
|
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
|
||||||
|
@ -81,6 +81,15 @@
|
||||||
<Component Id="C.NBTExplorer.visualelementsmanifest.xml" Guid="*">
|
<Component Id="C.NBTExplorer.visualelementsmanifest.xml" Guid="*">
|
||||||
<File Source="../Staging/Windows/NBTExplorer.visualelementsmanifest.xml" KeyPath="yes" />
|
<File Source="../Staging/Windows/NBTExplorer.visualelementsmanifest.xml" KeyPath="yes" />
|
||||||
</Component>
|
</Component>
|
||||||
|
<Component Id="C.NBTUtil.exe" Guid="*">
|
||||||
|
<File Source="../Staging/NBTUtil.exe" KeyPath="yes" />
|
||||||
|
</Component>
|
||||||
|
<Component Id="C.NBTUtil.exe.config" Guid="*">
|
||||||
|
<File Source="../Staging/NBTUtil.exe.config" KeyPath="yes" />
|
||||||
|
</Component>
|
||||||
|
<Component Id="C.NBTModel.dll" Guid="*">
|
||||||
|
<File Source="../Staging/NBTModel.dll" KeyPath="yes" />
|
||||||
|
</Component>
|
||||||
<Component Id="C.Substrate.dll" Guid="*">
|
<Component Id="C.Substrate.dll" Guid="*">
|
||||||
<File Source="../Staging/Substrate.dll" KeyPath="yes" />
|
<File Source="../Staging/Substrate.dll" KeyPath="yes" />
|
||||||
</Component>
|
</Component>
|
||||||
|
|
|
@ -1,13 +1,22 @@
|
||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio 2013
|
# Visual Studio 14
|
||||||
VisualStudioVersion = 12.0.21005.1
|
VisualStudioVersion = 14.0.23107.0
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NBTExplorer", "NBTExplorer\NBTExplorer.csproj", "{8A458245-8176-4599-95CD-3CA39F2435CE}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NBTExplorer", "NBTExplorer\NBTExplorer.csproj", "{8A458245-8176-4599-95CD-3CA39F2435CE}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NBTExplorerMac", "NBTExplorer\NBTExplorerMac.csproj", "{01F9A296-C477-4CBF-A0D0-41E697048257}"
|
|
||||||
EndProject
|
|
||||||
Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "NBTExplorer.Installer", "NBTExplorer.Installer\NBTExplorer.Installer.wixproj", "{A1566071-7CBB-4C54-AAE1-4B81B7715DB3}"
|
Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "NBTExplorer.Installer", "NBTExplorer.Installer\NBTExplorer.Installer.wixproj", "{A1566071-7CBB-4C54-AAE1-4B81B7715DB3}"
|
||||||
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
|
{8A458245-8176-4599-95CD-3CA39F2435CE} = {8A458245-8176-4599-95CD-3CA39F2435CE}
|
||||||
|
{20D7CBA3-5B6D-40B0-8D28-4C9A58E4FFBC} = {20D7CBA3-5B6D-40B0-8D28-4C9A58E4FFBC}
|
||||||
|
{BD90EED5-97B9-47D5-AFEA-C2C0D0E59FCF} = {BD90EED5-97B9-47D5-AFEA-C2C0D0E59FCF}
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NBTUtil", "NBTUtil\NBTUtil.csproj", "{BD90EED5-97B9-47D5-AFEA-C2C0D0E59FCF}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NBTModel", "NBTModel\NBTModel.csproj", "{20D7CBA3-5B6D-40B0-8D28-4C9A58E4FFBC}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Substrate (NET2)", "..\Substrate\SubstrateCS\Substrate (NET2).csproj", "{AFE30E14-3F2F-4461-9F7D-147AB4DCA4C3}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
@ -40,22 +49,6 @@ Global
|
||||||
{8A458245-8176-4599-95CD-3CA39F2435CE}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
{8A458245-8176-4599-95CD-3CA39F2435CE}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
{8A458245-8176-4599-95CD-3CA39F2435CE}.Release|x86.ActiveCfg = Release|x86
|
{8A458245-8176-4599-95CD-3CA39F2435CE}.Release|x86.ActiveCfg = Release|x86
|
||||||
{8A458245-8176-4599-95CD-3CA39F2435CE}.Release|x86.Build.0 = Release|x86
|
{8A458245-8176-4599-95CD-3CA39F2435CE}.Release|x86.Build.0 = Release|x86
|
||||||
{01F9A296-C477-4CBF-A0D0-41E697048257}.AppStore|Any CPU.ActiveCfg = AppStore|Any CPU
|
|
||||||
{01F9A296-C477-4CBF-A0D0-41E697048257}.AppStore|Any CPU.Build.0 = AppStore|Any CPU
|
|
||||||
{01F9A296-C477-4CBF-A0D0-41E697048257}.AppStore|Mixed Platforms.ActiveCfg = AppStore|Any CPU
|
|
||||||
{01F9A296-C477-4CBF-A0D0-41E697048257}.AppStore|x86.ActiveCfg = AppStore|Any CPU
|
|
||||||
{01F9A296-C477-4CBF-A0D0-41E697048257}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{01F9A296-C477-4CBF-A0D0-41E697048257}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{01F9A296-C477-4CBF-A0D0-41E697048257}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
|
||||||
{01F9A296-C477-4CBF-A0D0-41E697048257}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
|
||||||
{01F9A296-C477-4CBF-A0D0-41E697048257}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{01F9A296-C477-4CBF-A0D0-41E697048257}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{01F9A296-C477-4CBF-A0D0-41E697048257}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{01F9A296-C477-4CBF-A0D0-41E697048257}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{01F9A296-C477-4CBF-A0D0-41E697048257}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{01F9A296-C477-4CBF-A0D0-41E697048257}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{01F9A296-C477-4CBF-A0D0-41E697048257}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{01F9A296-C477-4CBF-A0D0-41E697048257}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{A1566071-7CBB-4C54-AAE1-4B81B7715DB3}.AppStore|Any CPU.ActiveCfg = Release|x86
|
{A1566071-7CBB-4C54-AAE1-4B81B7715DB3}.AppStore|Any CPU.ActiveCfg = Release|x86
|
||||||
{A1566071-7CBB-4C54-AAE1-4B81B7715DB3}.AppStore|Mixed Platforms.ActiveCfg = Release|x86
|
{A1566071-7CBB-4C54-AAE1-4B81B7715DB3}.AppStore|Mixed Platforms.ActiveCfg = Release|x86
|
||||||
{A1566071-7CBB-4C54-AAE1-4B81B7715DB3}.AppStore|Mixed Platforms.Build.0 = Release|x86
|
{A1566071-7CBB-4C54-AAE1-4B81B7715DB3}.AppStore|Mixed Platforms.Build.0 = Release|x86
|
||||||
|
@ -71,6 +64,55 @@ Global
|
||||||
{A1566071-7CBB-4C54-AAE1-4B81B7715DB3}.Release|Mixed Platforms.Build.0 = Release|x86
|
{A1566071-7CBB-4C54-AAE1-4B81B7715DB3}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||||
{A1566071-7CBB-4C54-AAE1-4B81B7715DB3}.Release|x86.ActiveCfg = Release|x86
|
{A1566071-7CBB-4C54-AAE1-4B81B7715DB3}.Release|x86.ActiveCfg = Release|x86
|
||||||
{A1566071-7CBB-4C54-AAE1-4B81B7715DB3}.Release|x86.Build.0 = Release|x86
|
{A1566071-7CBB-4C54-AAE1-4B81B7715DB3}.Release|x86.Build.0 = Release|x86
|
||||||
|
{BD90EED5-97B9-47D5-AFEA-C2C0D0E59FCF}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{BD90EED5-97B9-47D5-AFEA-C2C0D0E59FCF}.AppStore|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{BD90EED5-97B9-47D5-AFEA-C2C0D0E59FCF}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
|
{BD90EED5-97B9-47D5-AFEA-C2C0D0E59FCF}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
|
{BD90EED5-97B9-47D5-AFEA-C2C0D0E59FCF}.AppStore|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{BD90EED5-97B9-47D5-AFEA-C2C0D0E59FCF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{BD90EED5-97B9-47D5-AFEA-C2C0D0E59FCF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{BD90EED5-97B9-47D5-AFEA-C2C0D0E59FCF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||||
|
{BD90EED5-97B9-47D5-AFEA-C2C0D0E59FCF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||||
|
{BD90EED5-97B9-47D5-AFEA-C2C0D0E59FCF}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{BD90EED5-97B9-47D5-AFEA-C2C0D0E59FCF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{BD90EED5-97B9-47D5-AFEA-C2C0D0E59FCF}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{BD90EED5-97B9-47D5-AFEA-C2C0D0E59FCF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
|
{BD90EED5-97B9-47D5-AFEA-C2C0D0E59FCF}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
|
{BD90EED5-97B9-47D5-AFEA-C2C0D0E59FCF}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{20D7CBA3-5B6D-40B0-8D28-4C9A58E4FFBC}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{20D7CBA3-5B6D-40B0-8D28-4C9A58E4FFBC}.AppStore|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{20D7CBA3-5B6D-40B0-8D28-4C9A58E4FFBC}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
|
{20D7CBA3-5B6D-40B0-8D28-4C9A58E4FFBC}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
|
{20D7CBA3-5B6D-40B0-8D28-4C9A58E4FFBC}.AppStore|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{20D7CBA3-5B6D-40B0-8D28-4C9A58E4FFBC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{20D7CBA3-5B6D-40B0-8D28-4C9A58E4FFBC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{20D7CBA3-5B6D-40B0-8D28-4C9A58E4FFBC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||||
|
{20D7CBA3-5B6D-40B0-8D28-4C9A58E4FFBC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||||
|
{20D7CBA3-5B6D-40B0-8D28-4C9A58E4FFBC}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{20D7CBA3-5B6D-40B0-8D28-4C9A58E4FFBC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{20D7CBA3-5B6D-40B0-8D28-4C9A58E4FFBC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{20D7CBA3-5B6D-40B0-8D28-4C9A58E4FFBC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
|
{20D7CBA3-5B6D-40B0-8D28-4C9A58E4FFBC}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
|
{20D7CBA3-5B6D-40B0-8D28-4C9A58E4FFBC}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{20D7CBA3-5B6D-40B0-8D28-4C9A58E4FFBC}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{AFE30E14-3F2F-4461-9F7D-147AB4DCA4C3}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{AFE30E14-3F2F-4461-9F7D-147AB4DCA4C3}.AppStore|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{AFE30E14-3F2F-4461-9F7D-147AB4DCA4C3}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
|
{AFE30E14-3F2F-4461-9F7D-147AB4DCA4C3}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
|
{AFE30E14-3F2F-4461-9F7D-147AB4DCA4C3}.AppStore|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{AFE30E14-3F2F-4461-9F7D-147AB4DCA4C3}.AppStore|x86.Build.0 = Release|Any CPU
|
||||||
|
{AFE30E14-3F2F-4461-9F7D-147AB4DCA4C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{AFE30E14-3F2F-4461-9F7D-147AB4DCA4C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{AFE30E14-3F2F-4461-9F7D-147AB4DCA4C3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||||
|
{AFE30E14-3F2F-4461-9F7D-147AB4DCA4C3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||||
|
{AFE30E14-3F2F-4461-9F7D-147AB4DCA4C3}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{AFE30E14-3F2F-4461-9F7D-147AB4DCA4C3}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{AFE30E14-3F2F-4461-9F7D-147AB4DCA4C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{AFE30E14-3F2F-4461-9F7D-147AB4DCA4C3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{AFE30E14-3F2F-4461-9F7D-147AB4DCA4C3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
|
{AFE30E14-3F2F-4461-9F7D-147AB4DCA4C3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
|
{AFE30E14-3F2F-4461-9F7D-147AB4DCA4C3}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{AFE30E14-3F2F-4461-9F7D-147AB4DCA4C3}.Release|x86.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|
|
@ -6,6 +6,8 @@ using NBTExplorer.Model;
|
||||||
using NBTExplorer.Vendor.MultiSelectTreeView;
|
using NBTExplorer.Vendor.MultiSelectTreeView;
|
||||||
using NBTExplorer.Windows;
|
using NBTExplorer.Windows;
|
||||||
using Substrate.Nbt;
|
using Substrate.Nbt;
|
||||||
|
using System.Collections;
|
||||||
|
using NBTExplorer.Utility;
|
||||||
|
|
||||||
namespace NBTExplorer.Controllers
|
namespace NBTExplorer.Controllers
|
||||||
{
|
{
|
||||||
|
@ -20,6 +22,87 @@ namespace NBTExplorer.Controllers
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class NodeTreeComparer : IComparer
|
||||||
|
{
|
||||||
|
private NaturalComparer _comparer = new NaturalComparer();
|
||||||
|
|
||||||
|
public int OrderForTag(TagType tagID)
|
||||||
|
{
|
||||||
|
switch (tagID)
|
||||||
|
{
|
||||||
|
case TagType.TAG_COMPOUND:
|
||||||
|
return 0;
|
||||||
|
case TagType.TAG_LIST:
|
||||||
|
return 1;
|
||||||
|
case TagType.TAG_BYTE:
|
||||||
|
case TagType.TAG_SHORT:
|
||||||
|
case TagType.TAG_INT:
|
||||||
|
case TagType.TAG_LONG:
|
||||||
|
case TagType.TAG_FLOAT:
|
||||||
|
case TagType.TAG_DOUBLE:
|
||||||
|
case TagType.TAG_STRING:
|
||||||
|
return 2;
|
||||||
|
default:
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int OrderForNode(object node)
|
||||||
|
{
|
||||||
|
if (node is DirectoryDataNode)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int Compare(object x, object y)
|
||||||
|
{
|
||||||
|
TreeNode tx = x as TreeNode;
|
||||||
|
TreeNode ty = y as TreeNode;
|
||||||
|
TagDataNode dx = tx.Tag as TagDataNode;
|
||||||
|
TagDataNode dy = ty.Tag as TagDataNode;
|
||||||
|
|
||||||
|
if (dx == null || dy == null)
|
||||||
|
{
|
||||||
|
int nodeOrder = this.OrderForNode(tx.Tag).CompareTo(this.OrderForNode(ty.Tag));
|
||||||
|
if (nodeOrder != 0)
|
||||||
|
{
|
||||||
|
return nodeOrder;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return _comparer.Compare(tx.Text, ty.Text);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TagDataNode px = dx.Parent as TagDataNode;
|
||||||
|
TagDataNode py = dy.Parent as TagDataNode;
|
||||||
|
if (px != null && py != null)
|
||||||
|
{
|
||||||
|
if (px.Tag.GetTagType() == TagType.TAG_LIST || py.Tag.GetTagType() == TagType.TAG_LIST)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TagType idx = dx.Tag.GetTagType();
|
||||||
|
TagType idy = dy.Tag.GetTagType();
|
||||||
|
int tagOrder = this.OrderForTag(idx).CompareTo(this.OrderForTag(idy));
|
||||||
|
if (tagOrder != 0)
|
||||||
|
{
|
||||||
|
return tagOrder;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return _comparer.Compare(dx.NodeDisplay, dy.NodeDisplay);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class NodeTreeController
|
public class NodeTreeController
|
||||||
{
|
{
|
||||||
private TreeView _nodeTree;
|
private TreeView _nodeTree;
|
||||||
|
@ -33,6 +116,7 @@ namespace NBTExplorer.Controllers
|
||||||
public NodeTreeController (TreeView nodeTree)
|
public NodeTreeController (TreeView nodeTree)
|
||||||
{
|
{
|
||||||
_nodeTree = nodeTree;
|
_nodeTree = nodeTree;
|
||||||
|
nodeTree.TreeViewNodeSorter = new NodeTreeComparer();
|
||||||
_multiTree = nodeTree as MultiSelectTreeView;
|
_multiTree = nodeTree as MultiSelectTreeView;
|
||||||
|
|
||||||
InitializeIconRegistry();
|
InitializeIconRegistry();
|
||||||
|
@ -147,6 +231,8 @@ namespace NBTExplorer.Controllers
|
||||||
node = item.Value.NodeCreate(path);
|
node = item.Value.NodeCreate(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (node == null)
|
||||||
|
node = NbtFileDataNode.TryCreateFrom(path);
|
||||||
if (node != null)
|
if (node != null)
|
||||||
_nodeTree.Nodes.Add(CreateUnexpandedNode(node));
|
_nodeTree.Nodes.Add(CreateUnexpandedNode(node));
|
||||||
else
|
else
|
||||||
|
@ -676,7 +762,9 @@ namespace NBTExplorer.Controllers
|
||||||
_iconRegistry.Register(typeof(CubicRegionDataNode), 11);
|
_iconRegistry.Register(typeof(CubicRegionDataNode), 11);
|
||||||
_iconRegistry.Register(typeof(NbtFileDataNode), 12);
|
_iconRegistry.Register(typeof(NbtFileDataNode), 12);
|
||||||
_iconRegistry.Register(typeof(TagIntArrayDataNode), 14);
|
_iconRegistry.Register(typeof(TagIntArrayDataNode), 14);
|
||||||
_iconRegistry.Register(typeof(RootDataNode), 16);
|
_iconRegistry.Register(typeof(TagShortArrayDataNode), 16);
|
||||||
|
_iconRegistry.Register(typeof(TagLongArrayDataNode), 17);
|
||||||
|
_iconRegistry.Register(typeof(RootDataNode), 18);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateNodeText (TreeNode node)
|
private void UpdateNodeText (TreeNode node)
|
||||||
|
@ -751,6 +839,14 @@ namespace NBTExplorer.Controllers
|
||||||
menu.Items.Add(itemDn);
|
menu.Items.Add(itemDn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (node is DirectoryDataNode) {
|
||||||
|
if (menu.Items.Count > 0)
|
||||||
|
menu.Items.Add(new ToolStripSeparator());
|
||||||
|
|
||||||
|
ToolStripMenuItem itemOpenExplorer = new ToolStripMenuItem("Open in E&xplorer", null, _contextOpenInExplorer_Click);
|
||||||
|
menu.Items.Add(itemOpenExplorer);
|
||||||
|
}
|
||||||
|
|
||||||
return (menu.Items.Count > 0) ? menu : null;
|
return (menu.Items.Count > 0) ? menu : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -791,6 +887,20 @@ namespace NBTExplorer.Controllers
|
||||||
MoveSelectionDown();
|
MoveSelectionDown();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void _contextOpenInExplorer_Click (object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (_multiTree.SelectedNode != null && _multiTree.SelectedNode.Tag is DirectoryDataNode) {
|
||||||
|
DirectoryDataNode ddNode = _multiTree.SelectedNode.Tag as DirectoryDataNode;
|
||||||
|
try {
|
||||||
|
string path = (!Interop.IsWindows ? "file://" : "") + ddNode.NodeDirPath;
|
||||||
|
System.Diagnostics.Process.Start(path);
|
||||||
|
}
|
||||||
|
catch (Exception ex) {
|
||||||
|
MessageBox.Show(ex.Message, "Can't open directory", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#region Capability Checking
|
#region Capability Checking
|
||||||
|
|
||||||
#region Capability Predicates
|
#region Capability Predicates
|
||||||
|
@ -847,6 +957,12 @@ namespace NBTExplorer.Controllers
|
||||||
return (dataNode != null) && dataNode.CanCreateTag(TagType.TAG_INT_ARRAY);
|
return (dataNode != null) && dataNode.CanCreateTag(TagType.TAG_INT_ARRAY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool CreateLongArrayNodePred (DataNode dataNode, out GroupCapabilities caps)
|
||||||
|
{
|
||||||
|
caps = GroupCapabilities.Single;
|
||||||
|
return (dataNode != null) && dataNode.CanCreateTag(TagType.TAG_LONG_ARRAY);
|
||||||
|
}
|
||||||
|
|
||||||
public static bool CreateStringNodePred (DataNode dataNode, out GroupCapabilities caps)
|
public static bool CreateStringNodePred (DataNode dataNode, out GroupCapabilities caps)
|
||||||
{
|
{
|
||||||
caps = GroupCapabilities.Single;
|
caps = GroupCapabilities.Single;
|
||||||
|
|
|
@ -30,10 +30,10 @@ namespace NBTExplorer.Controllers
|
||||||
_iconRegistry = new IconRegistry();
|
_iconRegistry = new IconRegistry();
|
||||||
_iconRegistry.DefaultIcon = 15;
|
_iconRegistry.DefaultIcon = 15;
|
||||||
|
|
||||||
_iconRegistry.Register(typeof(RootRule), 16);
|
_iconRegistry.Register(typeof(RootRule), 18);
|
||||||
_iconRegistry.Register(typeof(UnionRule), 19);
|
_iconRegistry.Register(typeof(UnionRule), 21);
|
||||||
_iconRegistry.Register(typeof(IntersectRule), 18);
|
_iconRegistry.Register(typeof(IntersectRule), 20);
|
||||||
_iconRegistry.Register(typeof(WildcardRule), 17);
|
_iconRegistry.Register(typeof(WildcardRule), 19);
|
||||||
_iconRegistry.Register(typeof(ByteTagRule), 0);
|
_iconRegistry.Register(typeof(ByteTagRule), 0);
|
||||||
_iconRegistry.Register(typeof(ShortTagRule), 1);
|
_iconRegistry.Register(typeof(ShortTagRule), 1);
|
||||||
_iconRegistry.Register(typeof(IntTagRule), 2);
|
_iconRegistry.Register(typeof(IntTagRule), 2);
|
||||||
|
|
60
NBTExplorer/Interop.cs
Normal file
60
NBTExplorer/Interop.cs
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
namespace NBTExplorer
|
||||||
|
{
|
||||||
|
internal static class Interop
|
||||||
|
{
|
||||||
|
public static bool WinInteropAvailable
|
||||||
|
{
|
||||||
|
get { return IsWindows && Type.GetType("Mono.Runtime") == null; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsWindows
|
||||||
|
{
|
||||||
|
get { return Environment.OSVersion.Platform == PlatformID.Win32NT; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsWinXP
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
OperatingSystem OS = Environment.OSVersion;
|
||||||
|
return (OS.Platform == PlatformID.Win32NT) &&
|
||||||
|
((OS.Version.Major > 5) || ((OS.Version.Major == 5) && (OS.Version.Minor == 1)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsWinVista
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
OperatingSystem OS = Environment.OSVersion;
|
||||||
|
return (OS.Platform == PlatformID.Win32NT) && (OS.Version.Major >= 6);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IntPtr SendMessage (IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam)
|
||||||
|
{
|
||||||
|
if (WinInteropAvailable)
|
||||||
|
return NativeInterop.SendMessage(hWnd, msg, wParam, lParam);
|
||||||
|
else
|
||||||
|
return IntPtr.Zero;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static class NativeInterop
|
||||||
|
{
|
||||||
|
public const int WM_PRINTCLIENT = 0x0318;
|
||||||
|
public const int PRF_CLIENT = 0x00000004;
|
||||||
|
|
||||||
|
public const int TV_FIRST = 0x1100;
|
||||||
|
public const int TVM_SETBKCOLOR = TV_FIRST + 29;
|
||||||
|
public const int TVM_SETEXTENDEDSTYLE = TV_FIRST + 44;
|
||||||
|
|
||||||
|
public const int TVS_EX_DOUBLEBUFFER = 0x0004;
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern IntPtr SendMessage (IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,24 +0,0 @@
|
||||||
using Substrate.Core;
|
|
||||||
|
|
||||||
namespace NBTExplorer.Model
|
|
||||||
{
|
|
||||||
public class CubicRegionFile : RegionFile
|
|
||||||
{
|
|
||||||
private const int _sectorBytes = 256;
|
|
||||||
private static byte[] _emptySector = new byte[_sectorBytes];
|
|
||||||
|
|
||||||
public CubicRegionFile (string path)
|
|
||||||
: base(path)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
protected override int SectorBytes
|
|
||||||
{
|
|
||||||
get { return _sectorBytes; }
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override byte[] EmptySector
|
|
||||||
{
|
|
||||||
get { return _emptySector; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,38 +0,0 @@
|
||||||
using Substrate.Nbt;
|
|
||||||
|
|
||||||
namespace NBTExplorer.Model
|
|
||||||
{
|
|
||||||
public class ListTagContainer : IOrderedTagContainer
|
|
||||||
{
|
|
||||||
private TagNodeList _tag;
|
|
||||||
|
|
||||||
public ListTagContainer (TagNodeList tag)
|
|
||||||
{
|
|
||||||
_tag = tag;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int TagCount
|
|
||||||
{
|
|
||||||
get { return _tag.Count; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool DeleteTag (TagNode tag)
|
|
||||||
{
|
|
||||||
return _tag.Remove(tag);
|
|
||||||
}
|
|
||||||
|
|
||||||
public int GetTagIndex (TagNode tag)
|
|
||||||
{
|
|
||||||
return _tag.IndexOf(tag);
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool InsertTag (TagNode tag, int index)
|
|
||||||
{
|
|
||||||
if (index < 0 || index > _tag.Count)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
_tag.Insert(index, tag);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
using Substrate.Nbt;
|
|
||||||
|
|
||||||
namespace NBTExplorer.Model
|
|
||||||
{
|
|
||||||
public class TagDoubleDataNode : TagDataNode
|
|
||||||
{
|
|
||||||
public TagDoubleDataNode (TagNodeDouble tag)
|
|
||||||
: base(tag)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
public override bool EditNode ()
|
|
||||||
{
|
|
||||||
return EditScalarValue(Tag);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
using Substrate.Nbt;
|
|
||||||
|
|
||||||
namespace NBTExplorer.Model
|
|
||||||
{
|
|
||||||
public class TagFloatDataNode : TagDataNode
|
|
||||||
{
|
|
||||||
public TagFloatDataNode (TagNodeFloat tag)
|
|
||||||
: base(tag)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
public override bool EditNode ()
|
|
||||||
{
|
|
||||||
return EditScalarValue(Tag);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
using Substrate.Nbt;
|
|
||||||
|
|
||||||
namespace NBTExplorer.Model
|
|
||||||
{
|
|
||||||
public class TagIntDataNode : TagDataNode
|
|
||||||
{
|
|
||||||
public TagIntDataNode (TagNodeInt tag)
|
|
||||||
: base(tag)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
public override bool EditNode ()
|
|
||||||
{
|
|
||||||
return EditScalarValue(Tag);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
using Substrate.Nbt;
|
|
||||||
|
|
||||||
namespace NBTExplorer.Model
|
|
||||||
{
|
|
||||||
public class TagLongDataNode : TagDataNode
|
|
||||||
{
|
|
||||||
public TagLongDataNode (TagNodeLong tag)
|
|
||||||
: base(tag)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
public override bool EditNode ()
|
|
||||||
{
|
|
||||||
return EditScalarValue(Tag);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
using Substrate.Nbt;
|
|
||||||
|
|
||||||
namespace NBTExplorer.Model
|
|
||||||
{
|
|
||||||
public class TagShortDataNode : TagDataNode
|
|
||||||
{
|
|
||||||
public TagShortDataNode (TagNodeShort tag)
|
|
||||||
: base(tag)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
public override bool EditNode ()
|
|
||||||
{
|
|
||||||
return EditScalarValue(Tag);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -12,6 +12,7 @@
|
||||||
<AssemblyName>NBTExplorer</AssemblyName>
|
<AssemblyName>NBTExplorer</AssemblyName>
|
||||||
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||||
<PublishUrl>publish\</PublishUrl>
|
<PublishUrl>publish\</PublishUrl>
|
||||||
<Install>true</Install>
|
<Install>true</Install>
|
||||||
<InstallFrom>Disk</InstallFrom>
|
<InstallFrom>Disk</InstallFrom>
|
||||||
|
@ -24,7 +25,6 @@
|
||||||
<MapFileExtensions>true</MapFileExtensions>
|
<MapFileExtensions>true</MapFileExtensions>
|
||||||
<ApplicationRevision>0</ApplicationRevision>
|
<ApplicationRevision>0</ApplicationRevision>
|
||||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
|
||||||
<UseApplicationTrust>false</UseApplicationTrust>
|
<UseApplicationTrust>false</UseApplicationTrust>
|
||||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
@ -84,10 +84,12 @@
|
||||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<StartupObject />
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="Substrate, Version=1.3.8.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Substrate">
|
||||||
<SpecificVersion>False</SpecificVersion>
|
<HintPath>..\References\Substrate.dll</HintPath>
|
||||||
<HintPath>References\Substrate.dll</HintPath>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Data" />
|
<Reference Include="System.Data" />
|
||||||
|
@ -98,11 +100,8 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Controllers\ExplorerBarController.cs" />
|
<Compile Include="Controllers\ExplorerBarController.cs" />
|
||||||
<Compile Include="Controllers\NodeTreeController.cs" />
|
<Compile Include="Controllers\NodeTreeController.cs" />
|
||||||
<Compile Include="FormRegistry.cs" />
|
|
||||||
<Compile Include="Controllers\RuleTreeController.cs" />
|
<Compile Include="Controllers\RuleTreeController.cs" />
|
||||||
<Compile Include="Model\Search\SearchRule.cs" />
|
<Compile Include="Interop.cs" />
|
||||||
<Compile Include="NbtClipboardController.cs" />
|
|
||||||
<Compile Include="SnapshotList.cs" />
|
|
||||||
<Compile Include="Vendor\MultiSelectTreeView\MultiSelectTreeview.cs">
|
<Compile Include="Vendor\MultiSelectTreeView\MultiSelectTreeview.cs">
|
||||||
<SubType>Component</SubType>
|
<SubType>Component</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -173,32 +172,6 @@
|
||||||
<Compile Include="Windows\EditHex.Designer.cs">
|
<Compile Include="Windows\EditHex.Designer.cs">
|
||||||
<DependentUpon>EditHex.cs</DependentUpon>
|
<DependentUpon>EditHex.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Model\CompoundTagContainer.cs" />
|
|
||||||
<Compile Include="Model\CubicRegionDataNode.cs" />
|
|
||||||
<Compile Include="Model\CubicRegionFile.cs" />
|
|
||||||
<Compile Include="Model\DataNode.cs" />
|
|
||||||
<Compile Include="Model\DataNodeCollection.cs" />
|
|
||||||
<Compile Include="Model\DirectoryDataNode.cs" />
|
|
||||||
<Compile Include="Model\FileTypeRegistry.cs" />
|
|
||||||
<Compile Include="Model\ListTagContainer.cs" />
|
|
||||||
<Compile Include="Model\NbtFileDataNode.cs" />
|
|
||||||
<Compile Include="Model\NodeCapabilities.cs" />
|
|
||||||
<Compile Include="Model\RegionChunkDataNode.cs" />
|
|
||||||
<Compile Include="Model\RegionFileDataNode.cs" />
|
|
||||||
<Compile Include="Model\TagByteArrayDataNode.cs" />
|
|
||||||
<Compile Include="Model\TagByteDataNode.cs" />
|
|
||||||
<Compile Include="Model\TagCompoundDataNode.cs" />
|
|
||||||
<Compile Include="Model\TagContainerInterface.cs" />
|
|
||||||
<Compile Include="Model\TagDataNode.cs" />
|
|
||||||
<Compile Include="Model\TagDoubleDataNode.cs" />
|
|
||||||
<Compile Include="Model\TagFloatDataNode.cs" />
|
|
||||||
<Compile Include="Model\TagIntArrayDataNode.cs" />
|
|
||||||
<Compile Include="Model\TagIntDataNode.cs" />
|
|
||||||
<Compile Include="Model\TagListDataNode.cs" />
|
|
||||||
<Compile Include="Model\TagLongDataNode.cs" />
|
|
||||||
<Compile Include="Model\TagShortDataNode.cs" />
|
|
||||||
<Compile Include="Model\TagStringDataNode.cs" />
|
|
||||||
<Compile Include="NbtClipboardData.cs" />
|
|
||||||
<Compile Include="Program.cs" />
|
<Compile Include="Program.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="Properties\Settings.Designer.cs">
|
<Compile Include="Properties\Settings.Designer.cs">
|
||||||
|
@ -207,7 +180,6 @@
|
||||||
<DependentUpon>Settings.settings</DependentUpon>
|
<DependentUpon>Settings.settings</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="SearchWorker.cs" />
|
<Compile Include="SearchWorker.cs" />
|
||||||
<Compile Include="Model\TagKey.cs" />
|
|
||||||
<Compile Include="Vendor\Be.Windows.Forms.HexBox\BuiltInContextMenu.cs">
|
<Compile Include="Vendor\Be.Windows.Forms.HexBox\BuiltInContextMenu.cs">
|
||||||
<SubType>Component</SubType>
|
<SubType>Component</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -336,6 +308,12 @@
|
||||||
<Install>true</Install>
|
<Install>true</Install>
|
||||||
</BootstrapperPackage>
|
</BootstrapperPackage>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\NBTModel\NBTModel.csproj">
|
||||||
|
<Project>{20d7cba3-5b6d-40b0-8d28-4c9a58e4ffbc}</Project>
|
||||||
|
<Name>NBTModel</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
Other similar extension points exist, see Microsoft.Common.targets.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
using System;
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using NBTExplorer.Windows;
|
using NBTExplorer.Windows;
|
||||||
|
|
||||||
|
@ -10,8 +14,13 @@ namespace NBTExplorer
|
||||||
/// The main entry point for the application.
|
/// The main entry point for the application.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[STAThread]
|
[STAThread]
|
||||||
static void Main ()
|
static void Main (string[] args)
|
||||||
{
|
{
|
||||||
|
Application.ThreadException += AppThreadFailureHandler;
|
||||||
|
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
|
||||||
|
|
||||||
|
AppDomain.CurrentDomain.UnhandledException += AppDomainFailureHandler;
|
||||||
|
|
||||||
Application.EnableVisualStyles();
|
Application.EnableVisualStyles();
|
||||||
Application.SetCompatibleTextRenderingDefault(false);
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
Application.Run(new MainForm());
|
Application.Run(new MainForm());
|
||||||
|
@ -31,5 +40,107 @@ namespace NBTExplorer
|
||||||
MessageBox.Show("Application failed during static initialization: " + original.Message);
|
MessageBox.Show("Application failed during static initialization: " + original.Message);
|
||||||
Application.Exit();
|
Application.Exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void AppThreadFailureHandler (object sender, ThreadExceptionEventArgs e)
|
||||||
|
{
|
||||||
|
ProcessException(e.Exception);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void AppDomainFailureHandler (object sender, UnhandledExceptionEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.ExceptionObject is Exception)
|
||||||
|
ProcessException(e.ExceptionObject as Exception);
|
||||||
|
else if (e.IsTerminating) {
|
||||||
|
MessageBox.Show("NBTExplorer encountered an unknown exception object: " + e.ExceptionObject.GetType().FullName,
|
||||||
|
"NBTExplorer failed to run", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
Application.Exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void ProcessException (Exception ex)
|
||||||
|
{
|
||||||
|
if (IsMissingSubstrate(ex)) {
|
||||||
|
MessageBox.Show("NBTExplorer could not find required assembly \"Substrate.dll\".\n\nIf you obtained NBTExplorer from a ZIP distribution, make sure you've extracted NBTExplorer and all of its supporting files into another directory before running it.",
|
||||||
|
"NBTExplorer failed to run", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
Application.Exit();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (IsMissingNBTModel(ex)) {
|
||||||
|
MessageBox.Show("NBTExplorer could not find required assembly \"NBTModel.dll\".\n\nIf you obtained NBTExplorer from a ZIP distribution, make sure you've extracted NBTExplorer and all of its supporting files into another directory before running it.",
|
||||||
|
"NBTExplorer failed to run", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
Application.Exit();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
StringBuilder errorText = new StringBuilder();
|
||||||
|
errorText.AppendLine("NBTExplorer encountered the following exception while trying to run: " + ex.GetType().Name);
|
||||||
|
errorText.AppendLine("Message: " + ex.Message);
|
||||||
|
|
||||||
|
Exception ix = ex;
|
||||||
|
while (ix.InnerException != null) {
|
||||||
|
ix = ix.InnerException;
|
||||||
|
errorText.AppendLine();
|
||||||
|
errorText.AppendLine("Caused by Inner Exception: " + ix.GetType().Name);
|
||||||
|
errorText.AppendLine("Message: " + ix.Message);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
string logDir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "NBTExplorer");
|
||||||
|
if (!Directory.Exists(logDir))
|
||||||
|
Directory.CreateDirectory(logDir);
|
||||||
|
|
||||||
|
string logPath = Path.Combine(logDir, "error.log");
|
||||||
|
using (var writer = new StreamWriter(logPath, true)) {
|
||||||
|
writer.WriteLine("NBTExplorer Error Report");
|
||||||
|
writer.WriteLine(DateTime.Now);
|
||||||
|
writer.WriteLine("-------");
|
||||||
|
writer.WriteLine(errorText);
|
||||||
|
writer.WriteLine("-------");
|
||||||
|
|
||||||
|
ix = ex;
|
||||||
|
while (ix != null) {
|
||||||
|
writer.WriteLine(ex.StackTrace);
|
||||||
|
writer.WriteLine("-------");
|
||||||
|
ix = ix.InnerException;
|
||||||
|
}
|
||||||
|
|
||||||
|
writer.WriteLine();
|
||||||
|
}
|
||||||
|
|
||||||
|
errorText.AppendLine();
|
||||||
|
errorText.AppendLine("Additional error detail has been written to:\n" + logPath);
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
|
||||||
|
MessageBox.Show(errorText.ToString(), "NBTExplorer failed to run", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
Application.Exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool IsMissingSubstrate (Exception ex)
|
||||||
|
{
|
||||||
|
if (ex is TypeInitializationException && ex.InnerException != null)
|
||||||
|
ex = ex.InnerException;
|
||||||
|
if (ex is FileNotFoundException) {
|
||||||
|
FileNotFoundException fileEx = ex as FileNotFoundException;
|
||||||
|
if (fileEx.FileName.Contains("Substrate"))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool IsMissingNBTModel (Exception ex)
|
||||||
|
{
|
||||||
|
if (ex is TypeInitializationException && ex.InnerException != null)
|
||||||
|
ex = ex.InnerException;
|
||||||
|
if (ex is FileNotFoundException) {
|
||||||
|
FileNotFoundException fileEx = ex as FileNotFoundException;
|
||||||
|
if (fileEx.FileName.Contains("NBTModel"))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
|
||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCompany("")]
|
[assembly: AssemblyCompany("")]
|
||||||
[assembly: AssemblyProduct("NBTExplorer")]
|
[assembly: AssemblyProduct("NBTExplorer")]
|
||||||
[assembly: AssemblyCopyright("Copyright © Justin Aquadro 2011-2012")]
|
[assembly: AssemblyCopyright("Copyright © Justin Aquadro 2011-2017")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||||
// You can specify all the values or you can default the Build and Revision Numbers
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
[assembly: AssemblyVersion("2.6.0.0")]
|
[assembly: AssemblyVersion("2.8.0.0")]
|
||||||
[assembly: AssemblyFileVersion("2.6.0.0")]
|
[assembly: AssemblyFileVersion("2.8.0.0")]
|
||||||
|
|
BIN
NBTExplorer/Resources/edit-code-l.png
Normal file
BIN
NBTExplorer/Resources/edit-code-l.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 370 B |
BIN
NBTExplorer/Resources/edit-code-s.png
Normal file
BIN
NBTExplorer/Resources/edit-code-s.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 379 B |
|
@ -1,7 +1,7 @@
|
||||||
using System;
|
using System.Collections.Generic;
|
||||||
using System.Collections.Generic;
|
|
||||||
using NBTExplorer.Model;
|
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
using System.Globalization;
|
||||||
|
using NBTExplorer.Model;
|
||||||
|
|
||||||
namespace NBTExplorer
|
namespace NBTExplorer
|
||||||
{
|
{
|
||||||
|
@ -53,12 +53,12 @@ namespace NBTExplorer
|
||||||
if (SearchName != null) {
|
if (SearchName != null) {
|
||||||
string tagName = node.NodeName;
|
string tagName = node.NodeName;
|
||||||
if (tagName != null)
|
if (tagName != null)
|
||||||
mName = tagName.Contains(SearchName);
|
mName = CultureInfo.InvariantCulture.CompareInfo.IndexOf(tagName, SearchName, CompareOptions.IgnoreCase) >= 0;
|
||||||
}
|
}
|
||||||
if (SearchValue != null) {
|
if (SearchValue != null) {
|
||||||
string tagValue = node.NodeDisplay;
|
string tagValue = node.NodeDisplay;
|
||||||
if (tagValue != null)
|
if (tagValue != null)
|
||||||
mValue = tagValue.Contains(SearchValue);
|
mValue = CultureInfo.InvariantCulture.CompareInfo.IndexOf(tagValue, SearchValue, CompareOptions.IgnoreCase) >= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mName && mValue) {
|
if (mName && mValue) {
|
||||||
|
|
|
@ -11,7 +11,6 @@ namespace NBTExplorer.Vendor.MultiSelectTreeView
|
||||||
{
|
{
|
||||||
public class MultiSelectTreeView : TreeView
|
public class MultiSelectTreeView : TreeView
|
||||||
{
|
{
|
||||||
|
|
||||||
#region Selected Node(s) Properties
|
#region Selected Node(s) Properties
|
||||||
|
|
||||||
private List<TreeNode> m_SelectedNodes = null;
|
private List<TreeNode> m_SelectedNodes = null;
|
||||||
|
@ -57,14 +56,40 @@ namespace NBTExplorer.Vendor.MultiSelectTreeView
|
||||||
|
|
||||||
public MultiSelectTreeView()
|
public MultiSelectTreeView()
|
||||||
{
|
{
|
||||||
|
DoubleBuffered = true;
|
||||||
|
|
||||||
SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);
|
SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);
|
||||||
|
|
||||||
m_SelectedNodes = new List<TreeNode>();
|
m_SelectedNodes = new List<TreeNode>();
|
||||||
base.SelectedNode = null;
|
base.SelectedNode = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void UpdateExtendedStyles ()
|
||||||
|
{
|
||||||
|
if (Interop.WinInteropAvailable) {
|
||||||
|
int style = 0;
|
||||||
|
|
||||||
|
if (DoubleBuffered)
|
||||||
|
style |= NativeInterop.TVS_EX_DOUBLEBUFFER;
|
||||||
|
|
||||||
|
if (style != 0)
|
||||||
|
Interop.SendMessage(Handle, NativeInterop.TVM_SETEXTENDEDSTYLE, (IntPtr)NativeInterop.TVS_EX_DOUBLEBUFFER, (IntPtr)style);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#region Overridden Events
|
#region Overridden Events
|
||||||
|
|
||||||
|
protected override void OnHandleCreated (EventArgs e)
|
||||||
|
{
|
||||||
|
base.OnHandleCreated(e);
|
||||||
|
|
||||||
|
if (Interop.WinInteropAvailable) {
|
||||||
|
UpdateExtendedStyles();
|
||||||
|
if (!Interop.IsWinXP)
|
||||||
|
Interop.SendMessage(Handle, NativeInterop.TVM_SETBKCOLOR, IntPtr.Zero, (IntPtr)ColorTranslator.ToWin32(BackColor));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected override void OnGotFocus( EventArgs e )
|
protected override void OnGotFocus( EventArgs e )
|
||||||
{
|
{
|
||||||
// Make sure at least one node has a selection
|
// Make sure at least one node has a selection
|
||||||
|
|
12
NBTExplorer/Windows/About.Designer.cs
generated
12
NBTExplorer/Windows/About.Designer.cs
generated
|
@ -35,17 +35,14 @@
|
||||||
//
|
//
|
||||||
// linkLabel1
|
// linkLabel1
|
||||||
//
|
//
|
||||||
this.linkLabel1.AutoSize = true;
|
|
||||||
this.linkLabel1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.linkLabel1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.linkLabel1.LinkArea = new System.Windows.Forms.LinkArea(165, 31);
|
this.linkLabel1.LinkArea = new System.Windows.Forms.LinkArea(171, 32);
|
||||||
this.linkLabel1.Location = new System.Drawing.Point(96, 12);
|
this.linkLabel1.Location = new System.Drawing.Point(96, 12);
|
||||||
this.linkLabel1.Name = "linkLabel1";
|
this.linkLabel1.Name = "linkLabel1";
|
||||||
this.linkLabel1.Size = new System.Drawing.Size(256, 133);
|
this.linkLabel1.Size = new System.Drawing.Size(272, 133);
|
||||||
this.linkLabel1.TabIndex = 0;
|
this.linkLabel1.TabIndex = 0;
|
||||||
this.linkLabel1.TabStop = true;
|
this.linkLabel1.TabStop = true;
|
||||||
this.linkLabel1.Text = "NBTExplorer\r\nCopyright ©2011-2013 Justin Aquadro\r\n\r\nNBTExplorer is based on NBTEd" +
|
this.linkLabel1.Text = resources.GetString("linkLabel1.Text");
|
||||||
"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.UseCompatibleTextRendering = true;
|
this.linkLabel1.UseCompatibleTextRendering = true;
|
||||||
this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
|
this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
|
||||||
//
|
//
|
||||||
|
@ -63,7 +60,7 @@
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(350, 144);
|
this.ClientSize = new System.Drawing.Size(380, 144);
|
||||||
this.Controls.Add(this.pictureBox1);
|
this.Controls.Add(this.pictureBox1);
|
||||||
this.Controls.Add(this.linkLabel1);
|
this.Controls.Add(this.linkLabel1);
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||||
|
@ -73,7 +70,6 @@
|
||||||
this.Text = "About NBTExplorer";
|
this.Text = "About NBTExplorer";
|
||||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,14 @@ namespace NBTExplorer.Windows
|
||||||
public About ()
|
public About ()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
|
int len = linkLabel1.Text.Length;
|
||||||
|
System.Version version = typeof(About).Assembly.GetName().Version;
|
||||||
|
|
||||||
|
linkLabel1.Text = linkLabel1.Text.Replace("{ver}", version.Major + "." + version.Minor + "." + version.Build);
|
||||||
|
|
||||||
|
int adj = linkLabel1.Text.Length - len;
|
||||||
|
linkLabel1.LinkArea = new LinkArea(linkLabel1.LinkArea.Start + adj, linkLabel1.LinkArea.Length);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void linkLabel1_LinkClicked (object sender, LinkLabelLinkClickedEventArgs e)
|
private void linkLabel1_LinkClicked (object sender, LinkLabelLinkClickedEventArgs e)
|
||||||
|
|
|
@ -117,6 +117,16 @@
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.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>
|
</resheader>
|
||||||
|
<data name="linkLabel1.Text" xml:space="preserve">
|
||||||
|
<value>NBTExplorer {ver}
|
||||||
|
Copyright ©2011-2017 Justin Aquadro
|
||||||
|
|
||||||
|
NBTExplorer is based on NBTEdit by copygirl
|
||||||
|
Fugue icon set: p.yusukekamiyamane.com
|
||||||
|
|
||||||
|
Email: jaquadro@gmail.com
|
||||||
|
NBTExplorer Github Project Page</value>
|
||||||
|
</data>
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
|
|
|
@ -107,6 +107,8 @@ namespace NBTExplorer.Windows
|
||||||
return new TagNodeList(TagType.TAG_BYTE);
|
return new TagNodeList(TagType.TAG_BYTE);
|
||||||
case TagType.TAG_LONG:
|
case TagType.TAG_LONG:
|
||||||
return new TagNodeLong();
|
return new TagNodeLong();
|
||||||
|
case TagType.TAG_LONG_ARRAY:
|
||||||
|
return new TagNodeLongArray(new long[_size]);
|
||||||
case TagType.TAG_SHORT:
|
case TagType.TAG_SHORT:
|
||||||
return new TagNodeShort();
|
return new TagNodeShort();
|
||||||
case TagType.TAG_STRING:
|
case TagType.TAG_STRING:
|
||||||
|
@ -163,6 +165,8 @@ namespace NBTExplorer.Windows
|
||||||
switch (_type) {
|
switch (_type) {
|
||||||
case TagType.TAG_BYTE_ARRAY:
|
case TagType.TAG_BYTE_ARRAY:
|
||||||
case TagType.TAG_INT_ARRAY:
|
case TagType.TAG_INT_ARRAY:
|
||||||
|
case TagType.TAG_SHORT_ARRAY:
|
||||||
|
case TagType.TAG_LONG_ARRAY:
|
||||||
return true;
|
return true;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
|
|
4
NBTExplorer/Windows/Find.Designer.cs
generated
4
NBTExplorer/Windows/Find.Designer.cs
generated
|
@ -38,8 +38,6 @@
|
||||||
// _cbName
|
// _cbName
|
||||||
//
|
//
|
||||||
this._cbName.AutoSize = true;
|
this._cbName.AutoSize = true;
|
||||||
this._cbName.Checked = true;
|
|
||||||
this._cbName.CheckState = System.Windows.Forms.CheckState.Checked;
|
|
||||||
this._cbName.Location = new System.Drawing.Point(13, 13);
|
this._cbName.Location = new System.Drawing.Point(13, 13);
|
||||||
this._cbName.Name = "_cbName";
|
this._cbName.Name = "_cbName";
|
||||||
this._cbName.Size = new System.Drawing.Size(57, 17);
|
this._cbName.Size = new System.Drawing.Size(57, 17);
|
||||||
|
@ -65,6 +63,7 @@
|
||||||
this._textName.Name = "_textName";
|
this._textName.Name = "_textName";
|
||||||
this._textName.Size = new System.Drawing.Size(273, 20);
|
this._textName.Size = new System.Drawing.Size(273, 20);
|
||||||
this._textName.TabIndex = 2;
|
this._textName.TabIndex = 2;
|
||||||
|
this._textName.TextChanged += new System.EventHandler(this._textName_TextChanged);
|
||||||
//
|
//
|
||||||
// _textValue
|
// _textValue
|
||||||
//
|
//
|
||||||
|
@ -74,6 +73,7 @@
|
||||||
this._textValue.Name = "_textValue";
|
this._textValue.Name = "_textValue";
|
||||||
this._textValue.Size = new System.Drawing.Size(273, 20);
|
this._textValue.Size = new System.Drawing.Size(273, 20);
|
||||||
this._textValue.TabIndex = 3;
|
this._textValue.TabIndex = 3;
|
||||||
|
this._textValue.TextChanged += new System.EventHandler(this._textValue_TextChanged);
|
||||||
//
|
//
|
||||||
// _buttonFind
|
// _buttonFind
|
||||||
//
|
//
|
||||||
|
|
|
@ -41,5 +41,15 @@ namespace NBTExplorer.Windows
|
||||||
DialogResult = DialogResult.Cancel;
|
DialogResult = DialogResult.Cancel;
|
||||||
Close();
|
Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void _textName_TextChanged (object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
_cbName.Checked = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void _textValue_TextChanged (object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
_cbValue.Checked = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,9 +112,9 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<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>
|
||||||
<resheader name="writer">
|
<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>
|
</resheader>
|
||||||
</root>
|
</root>
|
53
NBTExplorer/Windows/FindReplace.Designer.cs
generated
53
NBTExplorer/Windows/FindReplace.Designer.cs
generated
|
@ -64,6 +64,7 @@
|
||||||
this._tbReplaceDouble = new System.Windows.Forms.ToolStripButton();
|
this._tbReplaceDouble = new System.Windows.Forms.ToolStripButton();
|
||||||
this._tbReplaceByteArray = new System.Windows.Forms.ToolStripButton();
|
this._tbReplaceByteArray = new System.Windows.Forms.ToolStripButton();
|
||||||
this._tbReplaceIntArray = new System.Windows.Forms.ToolStripButton();
|
this._tbReplaceIntArray = new System.Windows.Forms.ToolStripButton();
|
||||||
|
this._tbReplaceLongArray = new System.Windows.Forms.ToolStripButton();
|
||||||
this._tbReplaceString = new System.Windows.Forms.ToolStripButton();
|
this._tbReplaceString = new System.Windows.Forms.ToolStripButton();
|
||||||
this._tbReplaceList = new System.Windows.Forms.ToolStripButton();
|
this._tbReplaceList = new System.Windows.Forms.ToolStripButton();
|
||||||
this._tbReplaceCompound = new System.Windows.Forms.ToolStripButton();
|
this._tbReplaceCompound = new System.Windows.Forms.ToolStripButton();
|
||||||
|
@ -90,7 +91,7 @@
|
||||||
this.groupBox1.Controls.Add(this.panel1);
|
this.groupBox1.Controls.Add(this.panel1);
|
||||||
this.groupBox1.Location = new System.Drawing.Point(3, 3);
|
this.groupBox1.Location = new System.Drawing.Point(3, 3);
|
||||||
this.groupBox1.Name = "groupBox1";
|
this.groupBox1.Name = "groupBox1";
|
||||||
this.groupBox1.Size = new System.Drawing.Size(324, 211);
|
this.groupBox1.Size = new System.Drawing.Size(341, 211);
|
||||||
this.groupBox1.TabIndex = 0;
|
this.groupBox1.TabIndex = 0;
|
||||||
this.groupBox1.TabStop = false;
|
this.groupBox1.TabStop = false;
|
||||||
this.groupBox1.Text = "Find";
|
this.groupBox1.Text = "Find";
|
||||||
|
@ -104,7 +105,7 @@
|
||||||
this.panel1.Controls.Add(this.toolStrip1);
|
this.panel1.Controls.Add(this.toolStrip1);
|
||||||
this.panel1.Location = new System.Drawing.Point(6, 19);
|
this.panel1.Location = new System.Drawing.Point(6, 19);
|
||||||
this.panel1.Name = "panel1";
|
this.panel1.Name = "panel1";
|
||||||
this.panel1.Size = new System.Drawing.Size(312, 186);
|
this.panel1.Size = new System.Drawing.Size(329, 186);
|
||||||
this.panel1.TabIndex = 0;
|
this.panel1.TabIndex = 0;
|
||||||
//
|
//
|
||||||
// treeView1
|
// treeView1
|
||||||
|
@ -118,7 +119,7 @@
|
||||||
this.treeView1.SelectedImageIndex = 0;
|
this.treeView1.SelectedImageIndex = 0;
|
||||||
this.treeView1.ShowPlusMinus = false;
|
this.treeView1.ShowPlusMinus = false;
|
||||||
this.treeView1.ShowRootLines = false;
|
this.treeView1.ShowRootLines = false;
|
||||||
this.treeView1.Size = new System.Drawing.Size(312, 161);
|
this.treeView1.Size = new System.Drawing.Size(329, 161);
|
||||||
this.treeView1.TabIndex = 1;
|
this.treeView1.TabIndex = 1;
|
||||||
//
|
//
|
||||||
// imageList1
|
// imageList1
|
||||||
|
@ -141,10 +142,12 @@
|
||||||
this.imageList1.Images.SetKeyName(13, "map.png");
|
this.imageList1.Images.SetKeyName(13, "map.png");
|
||||||
this.imageList1.Images.SetKeyName(14, "edit-code-i.png");
|
this.imageList1.Images.SetKeyName(14, "edit-code-i.png");
|
||||||
this.imageList1.Images.SetKeyName(15, "question-white.png");
|
this.imageList1.Images.SetKeyName(15, "question-white.png");
|
||||||
this.imageList1.Images.SetKeyName(16, "arrow-315.png");
|
this.imageList1.Images.SetKeyName(16, "edit-code-s.png");
|
||||||
this.imageList1.Images.SetKeyName(17, "asterisk-yellow.png");
|
this.imageList1.Images.SetKeyName(17, "edit-code-l.png");
|
||||||
this.imageList1.Images.SetKeyName(18, "sql-join-inner.png");
|
this.imageList1.Images.SetKeyName(18, "arrow-315.png");
|
||||||
this.imageList1.Images.SetKeyName(19, "sql-join-outer.png");
|
this.imageList1.Images.SetKeyName(19, "asterisk-yellow.png");
|
||||||
|
this.imageList1.Images.SetKeyName(20, "sql-join-inner.png");
|
||||||
|
this.imageList1.Images.SetKeyName(21, "sql-join-outer.png");
|
||||||
//
|
//
|
||||||
// toolStrip1
|
// toolStrip1
|
||||||
//
|
//
|
||||||
|
@ -166,7 +169,7 @@
|
||||||
this._tbFindString});
|
this._tbFindString});
|
||||||
this.toolStrip1.Location = new System.Drawing.Point(0, 0);
|
this.toolStrip1.Location = new System.Drawing.Point(0, 0);
|
||||||
this.toolStrip1.Name = "toolStrip1";
|
this.toolStrip1.Name = "toolStrip1";
|
||||||
this.toolStrip1.Size = new System.Drawing.Size(312, 25);
|
this.toolStrip1.Size = new System.Drawing.Size(329, 25);
|
||||||
this.toolStrip1.TabIndex = 0;
|
this.toolStrip1.TabIndex = 0;
|
||||||
this.toolStrip1.Text = "toolStrip1";
|
this.toolStrip1.Text = "toolStrip1";
|
||||||
//
|
//
|
||||||
|
@ -307,9 +310,9 @@
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.groupBox2.Controls.Add(this._deleteTagsCheckbox);
|
this.groupBox2.Controls.Add(this._deleteTagsCheckbox);
|
||||||
this.groupBox2.Controls.Add(this.panel2);
|
this.groupBox2.Controls.Add(this.panel2);
|
||||||
this.groupBox2.Location = new System.Drawing.Point(333, 3);
|
this.groupBox2.Location = new System.Drawing.Point(350, 3);
|
||||||
this.groupBox2.Name = "groupBox2";
|
this.groupBox2.Name = "groupBox2";
|
||||||
this.groupBox2.Size = new System.Drawing.Size(324, 211);
|
this.groupBox2.Size = new System.Drawing.Size(341, 211);
|
||||||
this.groupBox2.TabIndex = 1;
|
this.groupBox2.TabIndex = 1;
|
||||||
this.groupBox2.TabStop = false;
|
this.groupBox2.TabStop = false;
|
||||||
this.groupBox2.Text = "Replace";
|
this.groupBox2.Text = "Replace";
|
||||||
|
@ -334,7 +337,7 @@
|
||||||
this.panel2.Controls.Add(this.toolStrip2);
|
this.panel2.Controls.Add(this.toolStrip2);
|
||||||
this.panel2.Location = new System.Drawing.Point(6, 19);
|
this.panel2.Location = new System.Drawing.Point(6, 19);
|
||||||
this.panel2.Name = "panel2";
|
this.panel2.Name = "panel2";
|
||||||
this.panel2.Size = new System.Drawing.Size(312, 163);
|
this.panel2.Size = new System.Drawing.Size(329, 163);
|
||||||
this.panel2.TabIndex = 0;
|
this.panel2.TabIndex = 0;
|
||||||
//
|
//
|
||||||
// treeView2
|
// treeView2
|
||||||
|
@ -348,7 +351,7 @@
|
||||||
this.treeView2.SelectedImageIndex = 0;
|
this.treeView2.SelectedImageIndex = 0;
|
||||||
this.treeView2.ShowPlusMinus = false;
|
this.treeView2.ShowPlusMinus = false;
|
||||||
this.treeView2.ShowRootLines = false;
|
this.treeView2.ShowRootLines = false;
|
||||||
this.treeView2.Size = new System.Drawing.Size(312, 138);
|
this.treeView2.Size = new System.Drawing.Size(329, 138);
|
||||||
this.treeView2.TabIndex = 1;
|
this.treeView2.TabIndex = 1;
|
||||||
//
|
//
|
||||||
// toolStrip2
|
// toolStrip2
|
||||||
|
@ -366,12 +369,13 @@
|
||||||
this._tbReplaceDouble,
|
this._tbReplaceDouble,
|
||||||
this._tbReplaceByteArray,
|
this._tbReplaceByteArray,
|
||||||
this._tbReplaceIntArray,
|
this._tbReplaceIntArray,
|
||||||
|
this._tbReplaceLongArray,
|
||||||
this._tbReplaceString,
|
this._tbReplaceString,
|
||||||
this._tbReplaceList,
|
this._tbReplaceList,
|
||||||
this._tbReplaceCompound});
|
this._tbReplaceCompound});
|
||||||
this.toolStrip2.Location = new System.Drawing.Point(0, 0);
|
this.toolStrip2.Location = new System.Drawing.Point(0, 0);
|
||||||
this.toolStrip2.Name = "toolStrip2";
|
this.toolStrip2.Name = "toolStrip2";
|
||||||
this.toolStrip2.Size = new System.Drawing.Size(312, 25);
|
this.toolStrip2.Size = new System.Drawing.Size(329, 25);
|
||||||
this.toolStrip2.TabIndex = 0;
|
this.toolStrip2.TabIndex = 0;
|
||||||
this.toolStrip2.Text = "toolStrip2";
|
this.toolStrip2.Text = "toolStrip2";
|
||||||
//
|
//
|
||||||
|
@ -480,6 +484,16 @@
|
||||||
this._tbReplaceIntArray.Text = "Add Int Array Tag";
|
this._tbReplaceIntArray.Text = "Add Int Array Tag";
|
||||||
this._tbReplaceIntArray.Click += new System.EventHandler(this._tbReplaceIntArray_Click);
|
this._tbReplaceIntArray.Click += new System.EventHandler(this._tbReplaceIntArray_Click);
|
||||||
//
|
//
|
||||||
|
// _tbReplaceLongArray
|
||||||
|
//
|
||||||
|
this._tbReplaceLongArray.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
this._tbReplaceLongArray.Image = ((System.Drawing.Image)(resources.GetObject("_tbReplaceLongArray.Image")));
|
||||||
|
this._tbReplaceLongArray.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this._tbReplaceLongArray.Name = "_tbReplaceLongArray";
|
||||||
|
this._tbReplaceLongArray.Size = new System.Drawing.Size(23, 22);
|
||||||
|
this._tbReplaceLongArray.Text = "Add Long Array Tag";
|
||||||
|
this._tbReplaceLongArray.Click += new System.EventHandler(this._tbReplaceLongArray_Click);
|
||||||
|
//
|
||||||
// _tbReplaceString
|
// _tbReplaceString
|
||||||
//
|
//
|
||||||
this._tbReplaceString.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
this._tbReplaceString.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
@ -513,7 +527,7 @@
|
||||||
// _buttonFind
|
// _buttonFind
|
||||||
//
|
//
|
||||||
this._buttonFind.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
this._buttonFind.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this._buttonFind.Location = new System.Drawing.Point(516, 251);
|
this._buttonFind.Location = new System.Drawing.Point(550, 251);
|
||||||
this._buttonFind.Name = "_buttonFind";
|
this._buttonFind.Name = "_buttonFind";
|
||||||
this._buttonFind.Size = new System.Drawing.Size(75, 23);
|
this._buttonFind.Size = new System.Drawing.Size(75, 23);
|
||||||
this._buttonFind.TabIndex = 2;
|
this._buttonFind.TabIndex = 2;
|
||||||
|
@ -524,7 +538,7 @@
|
||||||
// _buttonReplace
|
// _buttonReplace
|
||||||
//
|
//
|
||||||
this._buttonReplace.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
this._buttonReplace.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this._buttonReplace.Location = new System.Drawing.Point(597, 251);
|
this._buttonReplace.Location = new System.Drawing.Point(631, 251);
|
||||||
this._buttonReplace.Name = "_buttonReplace";
|
this._buttonReplace.Name = "_buttonReplace";
|
||||||
this._buttonReplace.Size = new System.Drawing.Size(75, 23);
|
this._buttonReplace.Size = new System.Drawing.Size(75, 23);
|
||||||
this._buttonReplace.TabIndex = 3;
|
this._buttonReplace.TabIndex = 3;
|
||||||
|
@ -535,7 +549,7 @@
|
||||||
// _buttonReplaceAll
|
// _buttonReplaceAll
|
||||||
//
|
//
|
||||||
this._buttonReplaceAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
this._buttonReplaceAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this._buttonReplaceAll.Location = new System.Drawing.Point(597, 280);
|
this._buttonReplaceAll.Location = new System.Drawing.Point(631, 280);
|
||||||
this._buttonReplaceAll.Name = "_buttonReplaceAll";
|
this._buttonReplaceAll.Name = "_buttonReplaceAll";
|
||||||
this._buttonReplaceAll.Size = new System.Drawing.Size(75, 23);
|
this._buttonReplaceAll.Size = new System.Drawing.Size(75, 23);
|
||||||
this._buttonReplaceAll.TabIndex = 4;
|
this._buttonReplaceAll.TabIndex = 4;
|
||||||
|
@ -558,7 +572,7 @@
|
||||||
//
|
//
|
||||||
this._explorerStrip.Location = new System.Drawing.Point(0, 0);
|
this._explorerStrip.Location = new System.Drawing.Point(0, 0);
|
||||||
this._explorerStrip.Name = "_explorerStrip";
|
this._explorerStrip.Name = "_explorerStrip";
|
||||||
this._explorerStrip.Size = new System.Drawing.Size(684, 25);
|
this._explorerStrip.Size = new System.Drawing.Size(718, 25);
|
||||||
this._explorerStrip.TabIndex = 7;
|
this._explorerStrip.TabIndex = 7;
|
||||||
this._explorerStrip.Text = "toolStrip3";
|
this._explorerStrip.Text = "toolStrip3";
|
||||||
//
|
//
|
||||||
|
@ -576,14 +590,14 @@
|
||||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||||
this.tableLayoutPanel1.RowCount = 1;
|
this.tableLayoutPanel1.RowCount = 1;
|
||||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(660, 217);
|
this.tableLayoutPanel1.Size = new System.Drawing.Size(694, 217);
|
||||||
this.tableLayoutPanel1.TabIndex = 8;
|
this.tableLayoutPanel1.TabIndex = 8;
|
||||||
//
|
//
|
||||||
// FindReplace
|
// FindReplace
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(684, 314);
|
this.ClientSize = new System.Drawing.Size(718, 314);
|
||||||
this.Controls.Add(this.tableLayoutPanel1);
|
this.Controls.Add(this.tableLayoutPanel1);
|
||||||
this.Controls.Add(this._explorerStrip);
|
this.Controls.Add(this._explorerStrip);
|
||||||
this.Controls.Add(this._buttonCancel);
|
this.Controls.Add(this._buttonCancel);
|
||||||
|
@ -658,5 +672,6 @@
|
||||||
private System.Windows.Forms.ToolStrip _explorerStrip;
|
private System.Windows.Forms.ToolStrip _explorerStrip;
|
||||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
||||||
private System.Windows.Forms.CheckBox _deleteTagsCheckbox;
|
private System.Windows.Forms.CheckBox _deleteTagsCheckbox;
|
||||||
|
private System.Windows.Forms.ToolStripButton _tbReplaceLongArray;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -162,6 +162,11 @@ namespace NBTExplorer.Windows
|
||||||
_replaceController.CreateNode(TagType.TAG_INT_ARRAY);
|
_replaceController.CreateNode(TagType.TAG_INT_ARRAY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void _tbReplaceLongArray_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
_replaceController.CreateNode(TagType.TAG_LONG_ARRAY);
|
||||||
|
}
|
||||||
|
|
||||||
private void _tbReplaceString_Click (object sender, EventArgs e)
|
private void _tbReplaceString_Click (object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
_replaceController.CreateNode(TagType.TAG_STRING);
|
_replaceController.CreateNode(TagType.TAG_STRING);
|
||||||
|
|
|
@ -117,9 +117,6 @@
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.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>
|
</resheader>
|
||||||
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>17, 17</value>
|
|
||||||
</metadata>
|
|
||||||
<metadata name="imageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="imageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>235, 17</value>
|
<value>235, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
@ -127,290 +124,300 @@
|
||||||
<value>
|
<value>
|
||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
|
||||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABA
|
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACC
|
||||||
QgAAAk1TRnQBSQFMAgEBFAEAAcABAQHAAQEBEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA
|
RAAAAk1TRnQBSQFMAgEBFgEAAdgBAQHYAQEBEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA
|
||||||
AwABYAMAAQEBAAEYBgABSP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AOEAA/8D/AP6GPgD+QP6A/wMAAP9
|
AwABYAMAAQEBAAEYBgABSP8AkwAD/wP9A/oD+AP5A/oD+wb8A/sD+gP5A/gD+gP9Bv8D/QP6A/gD+QP6
|
||||||
A/oS+AP5A/0D/2kAA/4D+QPxAboBogGKAbYBhgFWAbYBhgFWAbYBhgFWAbYBhgFWAbYBhgFWAbYBhgFW
|
A/sG/AP7A/oD+QP4A/oD/QP/YAAD/gP6Ae8B7gHtAeIB2wHUAd8B0gHFAdwBzAG8AeAB0wHFAd8B1QHO
|
||||||
AbYBhgFWAbYBhgFWAbwBpAGNA/cMAAP8A/YD8wG8AcoBzQFVAZUBowFVAZUBowHQAdcB2QPzA/UD+wP/
|
Ad8B1QHOAeAB0wHFAdwBzAG8Ad8B0gHFAeIB2wHUAe8B7gHtA/oG/gP6AekB5gHlAdwBqAGcAeYBgAFl
|
||||||
BgAD/wP9A/oD+AP5A/oD+wb8A/sD+gP5A/gD+gP9Bv8D/QP6A/gD+QP6A/sG/AP7A/oD+QP4A/oD/QP/
|
AeYBaAFIAecBgQFoAeABqwGeAeABqwGeAecBgQFnAeYBaAFIAeYBgAFlAdwBqAGcAekB5gHlA/oD/mMA
|
||||||
DAAB6AHfAdQBuQGJAVkB/AG4ARwB/AGzAQ4B/AGzAQ0B/AGzAQwB/AGyAQsB/AGyAQsB/AGzAQ4BuQGJ
|
AfYB9QHzAeEB1AHGAeIB1QHHAekB3gHTAeoB3wHUAeQBvAGrAeIBbwFPAeIBbwFPAeQBvAGrAeoB3wHU
|
||||||
AVkPAAH4AvkGAAFeAZkBpgFHAdQB5QFIAcwB3gFZAZYBpAYAAfgC+QkAA/4D+gHvAe4B7QHiAdsB1AHf
|
AekB3gHTAeIB1QHHAeEB1AHGAfYB9QHzBgAB7AHiAd8B3AF2AVkB5AGWAXwB5wG2AaEB6QHBAa4B4wGw
|
||||||
AdIBxQHcAcwBvAHgAdMBxQHfAdUBzgHfAdUBzgHgAdMBxQHcAcwBvAHfAdIBxQHiAdsB1AHvAe4B7QP6
|
AZkB2wGPAXIB2wGPAXIB4wGwAZkB6QHBAa4B5wG2AaIB5AGWAXwB3AF2AVkB7AHiAd9jAAP7AeMB1wHK
|
||||||
Bv4D+gHpAeYB5QHcAagBnAHmAYABZQHmAWgBSAHnAYEBaAHgAasBngHgAasBngHnAYEBZwHmAWgBSAHm
|
AekB3wHVAekB3wHUAekB3wHUAeYB0QHDAdMBaQFJAeYBsQGcAeYBsQGcAdMBaQFJAeYB0QHDAekB3wHU
|
||||||
AYABZQHcAagBnAHpAeYB5QP6A/4PAAHpAd8B1QG+AY4BXQH3AbYBKAH1AasBDgH1AasBDgH1AasBDgH1
|
AekB3wHUAekB3wHVAeMB1wHKA/sB+AH1AfQBzwFtAVEB5QGuAZkB6QHDAbEB6AHDAbEB6AHBAa4B3wG0
|
||||||
AasBDgH2Aa4BFAG+AY4BXQwAAc0B3gHiAVwBnwGtAX4BsQG8AeAB6gHsAX4BsQG8AUQBzwHgAUwB1AHl
|
AZ0B6QHAAawB6QHAAawB3wG0AZ0B6AHBAa4B6AHDAbEB6QHDAbEB5QGuAZkBzwFvAVMB+AH1AfRgAAHw
|
||||||
AVwBnwGtAeAB6gHsAX4BsQG8AVwBnwGtAc0B3gHiCQAB9gH1AfMB4QHUAcYB4gHVAccB6QHeAdMB6gHf
|
AeoB5QHmAdoBzQHrAeEB1wHqAeAB1gHqAeAB1gHRAZIBegHYAY8BdgHpAcQBsgHpAcQBsgHYAY8BdgHR
|
||||||
AdQB5AG8AasB4gFvAU8B4gFvAU8B5AG8AasB6gHfAdQB6QHeAdMB4gHVAccB4QHUAcYB9gH1AfMGAAHs
|
AZIBegHqAeAB1gHqAeAB1gHqAeAB1QHlAdoBzQHwAeoB5QHZAa4BoQHWAZABdwHrAcQBswHpAcQBsQHq
|
||||||
AeIB3wHcAXYBWQHkAZYBfAHnAbYBoQHpAcEBrgHjAbABmQHbAY8BcgHbAY8BcgHjAbABmQHpAcEBrgHn
|
AcQBsgHiAbkBpAHlAbwBpwHpAcQBsgHpAcQBsgHlAbwBpwHiAbkBpAHqAcQBsgHpAcQBsgHpAcQBsgHX
|
||||||
AbYBogHkAZYBfAHcAXYBWQHsAeIB3xUAAdoBwgGqAcMBkwFgAfEBtAE2AewBpgEZAewBpgEZAewBpgEZ
|
AZABeAHZAa4BoWAAAekB4AHXAe0B5QHdAe0B5QHdAewB4wHaAesB4gHZAbYBXAE9AeQBtQGiAekBxQGz
|
||||||
Ae4BqgEjAcMBkwFgDAABYQGoAbUBRAHLAdwBRgHFAdQBVQGqAbkBfQG2AcABRwHGAdYBUQHPAd8BYQGo
|
AekBxQGzAeQBtQGiAbYBXAE9AesB4QHYAeoB4QHYAeoB4QHYAesB4gHYAekB4AHXAbsBagFRAeYBtQGj
|
||||||
AbUBVQGqAbkBRgHFAdQBRAHLAdwBYQGoAbUGAAP7AeMB1wHKAekB3wHVAekB3wHUAekB3wHUAeYB0QHD
|
Ae0BxgG1AewBxQG0AesBxQGzAeABtgGfAeoBxAGxAekBxQGzAekBxQGzAeoBxAGxAeABtgGfAesBxQGz
|
||||||
AdMBaQFJAeYBsQGcAeYBsQGcAdMBaQFJAeYB0QHDAekB3wHUAekB3wHUAekB3wHVAeMB1wHKA/sB+AH1
|
AekBxQGzAekBxQGzAeQBtgGiAbsBagFRYAAB6AHdAdIB8QHqAeMB7wHnAd8B7wHnAd8B8AHoAeIBrAFK
|
||||||
AfQBzwFtAVEB5QGuAZkB6QHDAbEB6AHDAbEB6AHBAa4B3wG0AZ0B6QHAAawB6QHAAawB3wG0AZ0B6AHB
|
|
||||||
Aa4B6AHDAbEB6QHDAbEB5QGuAZkBzwFvAVMB+AH1AfQPAAHsAeIB1wHJAZkBZAHsAbYBSgHjAaABJQHj
|
|
||||||
AaABJQHjAaABJQHjAaABJQHmAacBMQHJAZkBZAwAAWIBrQG6AWkBzwHeAUsByQHaAUQBxgHXAVcBrgG7
|
|
||||||
AUkBvgHOAVYBzgHeAVcBrgG7AUQBxgHXAUgByAHYAVUByAHXAWIBrQG6BgAB8AHqAeUB5gHaAc0B6wHh
|
|
||||||
AdcB6gHgAdYB6gHgAdYB0QGSAXoB2AGPAXYB6QHEAbIB6QHEAbIB2AGPAXYB0QGSAXoB6gHgAdYB6gHg
|
|
||||||
AdYB6gHgAdUB5QHaAc0B8AHqAeUB2QGuAaEB1gGQAXcB6wHEAbMB6QHEAbEB6gHEAbIB4gG5AaQB5QG8
|
|
||||||
AacB6QHEAbIB6QHEAbIB5QG8AacB4gG5AaQB6gHEAbIB6QHEAbIB6QHEAbIB1wGQAXgB2QGuAaEMAAHt
|
|
||||||
AeMB2AHNAZ4BaQHqAbkBXAHbAZoBMQHbAZoBMQHbAZoBMQHmAbIBUgHbAZoBMQHgAaQBPwHNAZ4BaQwA
|
|
||||||
AekB8QHyAYQBvwHJAWYBuwHIAV0BvwHPAUQBwwHUAUQBwwHUAU8ByAHYAUQBwwHUAVgBvAHMAV8BuAHG
|
|
||||||
AYQBvwHJAekB8QHyBgAB6QHgAdcB7QHlAd0B7QHlAd0B7AHjAdoB6wHiAdkBtgFcAT0B5AG1AaIB6QHF
|
|
||||||
AbMB6QHFAbMB5AG1AaIBtgFcAT0B6wHhAdgB6gHhAdgB6gHhAdgB6wHiAdgB6QHgAdcBuwFqAVEB5gG1
|
|
||||||
AaMB7QHGAbUB7AHFAbQB6wHFAbMB4AG2AZ8B6gHEAbEB6QHFAbMB6QHFAbMB6gHEAbEB4AG2AZ8B6wHF
|
|
||||||
AbMB6QHFAbMB6QHFAbMB5AG2AaIBuwFqAVEJAAHuAeQB2QHTAaMBbQHuAcIBcQHUAZYBPQHTAZUBOwHT
|
|
||||||
AZUBOwHlAbYBYQHTAaMBbQHjAbIBXQHaAaIBSwHTAaMBbRIAAeUB7gHwAWUBtAHBAU4BvgHOAUgBxQHW
|
|
||||||
AUgBxQHWAU4BvgHOAWUBtAHBAeUB7gHwDAAB6AHdAdIB8QHqAeMB7wHnAd8B7wHnAd8B8AHoAeIBrAFK
|
|
||||||
ASkB6wHGAbYB6gHGAbYB6gHGAbYB6wHHAbUBrAFKASkB6wHiAdkB7AHjAdoB7AHjAdoB7AHjAdoB6AHd
|
ASkB6wHGAbYB6gHGAbYB6gHGAbYB6wHHAbUBrAFKASkB6wHiAdkB7AHjAdoB7AHjAdoB7AHjAdoB6AHd
|
||||||
AdIBrgFNASsB7gHFAbQB7gHIAbgB7gHIAbgB7wHIAbgB3wG3AaAB6wHGAbYB6gHGAbYB6gHGAbYB6wHH
|
AdIBrgFNASsB7gHFAbQB7gHIAbgB7gHIAbgB7wHIAbgB3wG3AaAB6wHGAbYB6gHGAbYB6gHGAbYB6wHH
|
||||||
AbUB3wG3AaAB6wHFAbUB6gHGAbYB6gHGAbYB6gHDAbEBrgFNASsGAAHvAeUC2QGpAXEB+QHQAYQB7gGy
|
AbUB3wG3AaAB6wHFAbUB6gHGAbYB6gHGAbYB6gHDAbEBrgFNAStgAAHsAeQB2wHvAegB4gHvAegB4QHv
|
||||||
AWYB6QGtAWEB3wGjAVUB6wHAAXIB2QGpAXEB5QHOAbIB2QGpAXEB5AG1AWgB2QGpAXEMAAHqAfIB8wGG
|
AegB4QHyAesB5AG9AWkBSgHnAbgBpgHsAccBtgHrAccBtgHlAbgBpgG8AWgBSQHsAeQB2wHsAeQB3AHs
|
||||||
AcQBzwFaAboByQFXAb8BzwFlAdIB4gFlAdIB4gFTAcsB3AFjAdEB4QFXAb8BzwFaAboByQGGAcQBzwHq
|
AeQB2wHtAeYB3gHsAeQB2wG/AXIBWAHoAbkBpwHvAckBuAHvAckBuAHwAckBuAHiAboBpAHuAccBuAHs
|
||||||
AfIB8wYAAewB5AHbAe8B6AHiAe8B6AHhAe8B6AHhAfIB6wHkAb0BaQFKAecBuAGmAewBxwG2AesBxwG2
|
AccBtgHrAccBtgHqAcUBtAHiAbkBpAHsAccBtwHqAccBtgHrAccBtgHmAbkBpgG/AXIBWGAAAfMB7wHr
|
||||||
AeUBuAGmAbwBaAFJAewB5AHbAewB5AHcAewB5AHbAe0B5gHeAewB5AHbAb8BcgFYAegBuQGnAe8ByQG4
|
AekB3wHVAfEB6wHlAfEB6gHkAfEB6wHlAdkBoQGMAd0BnQGEAfAByQG5AfAByQG5Ad0BnQGEAdkBoQGM
|
||||||
Ae8ByQG4AfAByQG4AeIBugGkAe4BxwG4AewBxwG2AesBxwG2AeoBxQG0AeIBuQGkAewBxwG3AeoBxwG2
|
AfEB6wHlAfEB6gHkAfEB6wHlAekB3wHVAfMB7wHrAdwBtgGpAdwBmgGCAfAByQG5Ae8BygG6AfABygG6
|
||||||
AesBxwG2AeYBuQGmAb8BcgFYBgAB3gGuAXUB+gHVAYkB8QG2AWoB8QG2AWoB8QG2AWoB+QHSAYYB3gGu
|
AecBvwGsAekBwQGuAfAByQG5AfAByQG5AekBwQGuAecBvwGsAfABygG6Ae8BygG6AfAByQG5AdwBmgGC
|
||||||
AXUB7wHmAdoDAAHvAeYB2gHeAa4BdQHeAa4BdQwAAWgBugHHAWABzgHgAWEB1AHlAXMB2gHqAWsBwAHO
|
AdwBtgGpYAAD/AHsAeMB2wHvAekB4wHyAewB5gHxAesB5QHvAd0B1QHeAYcBaAHtAbsBqAHtAbsBqAHe
|
||||||
AYMB4QHvAWEBzQHdAWoBwAHNAXAB2QHpAWEB1AHlAWABzgHgAWgBugHHBgAB8wHvAesB6QHfAdUB8QHr
|
AYcBaAHvAd0B1QHxAesB5QHyAewB5gHvAekB4wHsAeMB2wP8AfgB9gH1AdYBhgFqAeoBtwGkAfABygG6
|
||||||
AeUB8QHqAeQB8QHrAeUB2QGhAYwB3QGdAYQB8AHJAbkB8AHJAbkB3QGdAYQB2QGhAYwB8QHrAeUB8QHq
|
AfABygG6Ae8ByQG5AeYBvwGrAe8BxwG4Ae8BxwG4AeYBvwGrAe8ByQG5AfABygG6AfABygG6AeoBtwGk
|
||||||
AeQB8QHrAeUB6QHfAdUB8wHvAesB3AG2AakB3AGaAYIB8AHJAbkB7wHKAboB8AHKAboB5wG/AawB6QHB
|
AdYBhgFqAfgB9gH1YwAC+QH4AewB5AHcAesB4AHWAfIB7AHmAfUB8AHsAe0B0AHCAeoBkgFzAeoBkgFz
|
||||||
Aa4B8AHJAbkB8AHJAbkB6QHBAa4B5wG/AawB8AHKAboB7wHKAboB8AHJAbkB3AGaAYIB3AG2AakGAAHx
|
Ae0B0AHCAfUB8AHsAfIB7AHmAesB4AHWAewB5AHcAvkB+AYAAfIB6AHkAeMBkAF0AeoBqQGQAe8BwQGw
|
||||||
AecB2wHjAbMBeAH9AdsBjwH3AcQBeAH8AdoBjgHjAbMBeAHxAecB2wkAAfEB5wHbAegBzQGsDAABaQG+
|
AfIByQG6AewBvAGqAeQBpQGLAeQBpQGLAewBvAGqAfIByQG6Ae8BwQGwAeoBqQGQAeMBkAF0AfIB6AHk
|
||||||
AcsBkwHqAfcBjgHiAfABbwHFAdEBaQG+AcsBjwHoAfYBbAHYAeoBhAHIAdIBbgHEAdEBhwHgAe4BigHm
|
aQAD/AH0AfEB7gHvAekB4gHtAeQB3AHvAekB4gHxAeoB5AHxAeoB5AHvAekB4gHtAeQB3AHvAekB4gH0
|
||||||
AfQBaQG+AcsGAAP8AewB4wHbAe8B6QHjAfIB7AHmAfEB6wHlAe8B3QHVAd4BhwFoAe0BuwGoAe0BuwGo
|
AfEB7gP8DAAB+QH2AfUB7QHGAbkB6wGdAYMB6wGJAWkB6wGdAYMB7QHEAbcB7QHEAbcB6wGdAYMB6wGJ
|
||||||
Ad4BhwFoAe8B3QHVAfEB6wHlAfIB7AHmAe8B6QHjAewB4wHbA/wB+AH2AfUB1gGGAWoB6gG3AaQB8AHK
|
AWkB6wGdAYMB7QHGAbkB+QH2AfX/AP8A/wAMAAP/A/wD+hj4A/kD+gP8DAAD/QP6EvgD+QP9A/9pAAP+
|
||||||
AboB8AHKAboB7wHJAbkB5gG/AasB7wHHAbgB7wHHAbgB5gG/AasB7wHJAbkB8AHKAboB8AHKAboB6gG3
|
A/kD8QG6AaIBigG2AYYBVgG2AYYBVgG2AYYBVgG2AYYBVgG2AYYBVgG2AYYBVgG2AYYBVgG2AYYBVgG8
|
||||||
AaQB1gGGAWoB+AH2AfUJAAHxAegB3AHnAbcBewH/Ad8BkwHnAbcBewHxAegB3B4AAdEB5wHqAWsBwAHM
|
AaQBjQP3DAAD/AP2A/MBvAHKAc0BVQGVAaMBVQGVAaMB0AHXAdkD8wP1A/sD/wwAA/4D/Ab5A/oG/AP7
|
||||||
AYkBywHUAeIB7gHwAWsBwAHMAZkB7gH7AXsB5AH1AYkBywHUAeIB7gHwAYkBywHUAWsBwAHMAdEB5wHq
|
BvkD/AP+DAAD/gP8BvkD+gb8A/sG+QP8A/4SAAHoAd8B1AG5AYkBWQH8AbgBHAH8AbMBDgH8AbMBDQH8
|
||||||
CQAC+QH4AewB5AHcAesB4AHWAfIB7AHmAfUB8AHsAe0B0AHCAeoBkgFzAeoBkgFzAe0B0AHCAfUB8AHs
|
AbMBDAH8AbIBCwH8AbIBCwH8AbMBDgG5AYkBWQ8AAfgC+QYAAV4BmQGmAUcB1AHlAUgBzAHeAVkBlgGk
|
||||||
AfIB7AHmAesB4AHWAewB5AHcAvkB+AYAAfIB6AHkAeMBkAF0AeoBqQGQAe8BwQGwAfIByQG6AewBvAGq
|
BgAB+AL5DwAD/gP8A/kDswNcBvwDXAO0A/kD/AP+DAAD/gP8A/kDswNcBvwDXAO0A/kD/AP+FQAB6QHf
|
||||||
AeQBpQGLAeQBpQGLAewBvAGqAfIByQG6Ae8BwQGwAeoBqQGQAeMBkAF0AfIB6AHkDwAB8gHoAdwB6QG5
|
AdUBvgGOAV0B9wG2ASgB9QGrAQ4B9QGrAQ4B9QGrAQ4B9QGrAQ4B9gGuARQBvgGOAV0MAAHNAd4B4gFc
|
||||||
AX0B8gHoAdwkAAH5AfoB+wYAAWsBwgHPAZ4B7AH2AZkB7QH7AXABxAHQBgAB+QH6AfsPAAP8AfQB8QHu
|
AZ8BrQF+AbEBvAHgAeoB7AF+AbEBvAFEAc8B4AFMAdQB5QFcAZ8BrQHgAeoB7AF+AbEBvAFcAZ8BrQHN
|
||||||
Ae8B6QHiAe0B5AHcAe8B6QHiAfEB6gHkAfEB6gHkAe8B6QHiAe0B5AHcAe8B6QHiAfQB8QHuA/wMAAH5
|
Ad4B4hIAA8sDdQP4BgAD+AN1A8sYAAPLA3UD+AYAA/gDdQPLHgAB2gHCAaoBwwGTAWAB8QG0ATYB7AGm
|
||||||
AfYB9QHtAcYBuQHrAZ0BgwHrAYkBaQHrAZ0BgwHtAcQBtwHtAcQBtwHrAZ0BgwHrAYkBaQHrAZ0BgwHt
|
ARkB7AGmARkB7AGmARkB7gGqASMBwwGTAWAMAAFhAagBtQFEAcsB3AFGAcUB1AFVAaoBuQF9AbYBwAFH
|
||||||
AcYBuQH5AfYB9UgAAeUB8AHyAWwBxAHRAWwBxAHRAdIB6AHr/wAzAAP8A/kh+AP5A/wDAAP9A/kh+AP5
|
AcYB1gFRAc8B3wFhAagBtQFVAaoBuQFGAcUB1AFEAcsB3AFhAagBtQ8AA84DfwP5AYIBwgG0AVkBrgGd
|
||||||
A/05AAP/A/wD+RL4A/kD+wP+BgABlgGpAbwBXAGEAa4BXAGEAa4BXAGEAa4BXAGEAa4BXAGEAa4BXAGE
|
AVkBrgGdAakB0wHIA/kDfwPOEgADzgN/A/kBvwF9AUoBvwF9AUoBwAF+AU0B4gHOAb8D+QN/A84YAAHs
|
||||||
Aa4BXAGEAa4BXAGEAa4BXAGEAa4BXAGEAa4BXAGEAa4BXAGEAa4BXAGEAa4BlgGpAbwDAALPAcsCuQGw
|
AeIB1wHJAZkBZAHsAbYBSgHjAaABJQHjAaABJQHjAaABJQHjAaABJQHmAacBMQHJAZkBZAwAAWIBrQG6
|
||||||
ArkBsAK5AbACuQGwArkBsAK5AbACuQGwArkBsAK5AbACuQGwArkBsAK5AbACuQGwAs8ByzkAA/4D+AHo
|
AWkBzwHeAUsByQHaAUQBxgHXAVcBrgG7AUkBvgHOAVYBzgHeAVcBrgG7AUQBxgHXAUgByAHYAVUByAHX
|
||||||
AuUB2QG0AasB6gGOAXcB7gFwAVAB7gFwAVAB6gGOAXcB2QG0AasB6AHlAeQD9gP+BgABbAGTAboBVQGI
|
AWIBrQG6DAAD0AOGA/kJAAHSAegB4AFgAbUBpAMAA/kDhgPQDAAD0AOGA/kDAAHGAYIBUQHiAcsBuQkA
|
||||||
AbsBcAGjAdYBZwGaAc0BZwGaAc0BZwGaAc0BZwGaAc0BZwGaAc0BZwGaAc0BZwGaAc0BZwGaAc0BZwGa
|
A/kDhgPQEgAB7QHjAdgBzQGeAWkB6gG5AVwB2wGaATEB2wGaATEB2wGaATEB5gGyAVIB2wGaATEB4AGk
|
||||||
Ac0BcAGjAdYBVQGIAbsBbAGTAboDAALBAbkC+QHpAvMB4gLzAeIC8wHiAvMB4gLzAeIC8wHiAvMB4gLz
|
AT8BzQGeAWkMAAHpAfEB8gGEAb8ByQFmAbsByAFdAb8BzwFEAcMB1AFEAcMB1AFPAcgB2AFEAcMB1AFY
|
||||||
AeIC8wHiAvMB4gLzAeIC+QHpAsEBuTwAAeoB3AHYAe4BggFnAfUBogGPAfoB0QHKAfwB5wHlAfwB5gHl
|
AbwBzAFfAbgBxgGEAb8ByQHpAfEB8gkAA+8DbAPvBgABsgHcAdIBaAG9AawBaAG9AawBrgHZAc0GAAPv
|
||||||
AfkB0QHJAfQBoQGOAe4BgQFmAeoB3AHYCQABfgGiAccBcQGkAdcBVQGIAbsBcQGkAdcBcQGkAdcBcQGk
|
A2wD7wYAA+8DbAPvBgABzgGKAVkB5AHNAboMAAPvA2wD7wwAAe4B5AHZAdMBowFtAe4BwgFxAdQBlgE9
|
||||||
AdcBcQGkAdcBcQGkAdcBcQGkAdcBcQGkAdcBcQGkAdcBcQGkAdcBVQGIAbsBcQGkAdcBfgGiAccDAALL
|
AdMBlQE7AdMBlQE7AeUBtgFhAdMBowFtAeMBsgFdAdoBogFLAdMBowFtEgAB5QHuAfABZQG0AcEBTgG+
|
||||||
AcMC9AHkAXoBpwGbAYcBtwGnAYcBtQGjAYkBswGiAWgBoAGGAVcBlwF4AVgBkwF5AWgBkAF+AZIBpAGT
|
Ac4BSAHFAdYBSAHFAdYBTgG+Ac4BZQG0AcEB5QHuAfASAAPUA5ED+QMAAXABxQG0AdUB6wHiCQAD+QOR
|
||||||
AYYBlwGAAqgBjgL0AeQCywHDCQAD/gP8BvkD+gb8A/sG+QP8A/4MAAHzAd8B2gHuAXsBYAH3AdQBzgH3
|
A9QMAAPUA5ED+QMAAdYBkgFhAecBzwG8CQAD+QORA9QMAAHvAeUC2QGpAXEB+QHQAYQB7gGyAWYB6QGt
|
||||||
AukB9wLoAfwC9AH8AvQB9wLoAfcC6QH2AdEBygHuAXsBXwHzAd8B2gYAAYYBqgHNAXMBpgHZAWoBnQHQ
|
AWEB3wGjAVUB6wHAAXIB2QGpAXEB5QHOAbIB2QGpAXEB5AG1AWgB2QGpAXEMAAHqAfIB8wGGAcQBzwFa
|
||||||
AUgBewGuAV8BkgHFAUwBfwGyAV8BkgHFAUwBfwGyAV8BkgHFAUwBfwGyAV8BkgHFAUgBewGuAWoBnQHQ
|
AboByQFXAb8BzwFlAdIB4gFlAdIB4gFTAcsB3AFjAdEB4QFXAb8BzwFaAboByQGGAcQBzwHqAfIB8w8A
|
||||||
AXMBpgHZAYYBqgHNAwACzwHHAvUB5gGEAbUBqwGYAdcBxwGQAdEBvgFzAbABmQGXAcsBtgGnAc4BvQGX
|
A9UDlgP5AbcB4QHVAXYBywG6AXYBywG6AZUB1QHGA/kDlgPVEgAD1QOWA/kB3QGhAXUB6QHRAb4GAAP5
|
||||||
Ab0BrAGUAboBqAGpAb8BrwGOAa0BoQG3Aa0BiwL1AeYCzwHHCQAD/gP8A/kDswNcBvwDXAO0A/kD/AP+
|
A5YD1Q8AAd4BrgF1AfoB1QGJAfEBtgFqAfEBtgFqAfEBtgFqAfkB0gGGAd4BrgF1Ae8B5gHaAwAB7wHm
|
||||||
CQAB+gH4AfcB5wF+AWIB8wHTAc0B8ALlAe8C5AHvAuQB5QFhAT8B5QFhAT8B7wLkAe8C5AHvAuQB7wHN
|
AdoB3gGuAXUB3gGuAXUMAAFoAboBxwFgAc4B4AFhAdQB5QFzAdoB6gFrAcABzgGDAeEB7wFhAc0B3QFq
|
||||||
AccB5wF+AWIB+gH4AfcDAAGLAa0BzwF1AagB2wFsAZ8B0gFKAX0BsAFsAZ8B0gFSAYUBuAFsAZ8B0gFS
|
AcABzQFwAdkB6QFhAdQB5QFgAc4B4AFoAboBxxIAA9cDmQP6BgAD+gOZA9cYAAPXA5kD+gYAA/oDmQPX
|
||||||
AYUBuAFsAZ8B0gFSAYUBuAFsAZ8B0gFKAX0BsAFsAZ8B0gF1AagB2wGLAa0BzwMAAtEByQL2AekBkAG8
|
EgAB8QHnAdsB4wGzAXgB/QHbAY8B9wHEAXgB/AHaAY4B4wGzAXgB8QHnAdsJAAHxAecB2wHoAc0BrAwA
|
||||||
AbUBuQHlAdsBpgHdAdABiAHAAbIBhwHJAbUBfgG+AaQBiAG5AaMBrgHQAb8BqQHHAbUBlAG6AagBtgG1
|
AWkBvgHLAZMB6gH3AY4B4gHwAW8BxQHRAWkBvgHLAY8B6AH2AWwB2AHqAYQByAHSAW4BxAHRAYcB4AHu
|
||||||
AZEC9gHpAtEByQ8AA8sDdQP4BgAD+AN1A8sPAAHoAcUBvAHlAZ0BigHqAuIB5wLfAecC3wHnAt8B1gFZ
|
AYoB5gH0AWkBvgHLFQAD2AOdBgADnQPYHgAD2AOdBgADnQPYGAAB8QHoAdwB5wG3AXsB/wHfAZMB5wG3
|
||||||
ATcB1gFZATcB5wLfAecC3wHnAt8B6ALgAeEBlwGEAegBxQG8AwABjwGxAdIBdwGqAd0BbgGhAdQBRwF6
|
AXsB8QHoAdweAAHRAecB6gFrAcABzAGJAcsB1AHiAe4B8AFrAcABzAGZAe4B+wF7AeQB9QGJAcsB1AHi
|
||||||
Aa0BbgGhAdQBTwGCAbUBbgGhAdQBTwGCAbUBbgGhAdQBTwGCAbUBbgGhAdQBRwF6Aa0BbgGhAdQBdwGq
|
Ae4B8AGJAcsB1AFrAcABzAHRAecB6nIAAfIB6AHcAekBuQF9AfIB6AHcJAAB+QH6AfsGAAFrAcIBzwGe
|
||||||
Ad0BjwGxAdIDAALTAcwC9wHrAcUBuAGHAf8B3gGMAfgB5wGtAdUB0QGwAcoB6wHiAb0B5QHZAaABygG7
|
AewB9gGZAe0B+wFwAcQB0AYAAfkB+gH7qwAB5QHwAfIBbAHEAdEBbAHEAdEB0gHoAevSAAP8A/kh+AP5
|
||||||
AaoBzgGvAYIBwQGkAX4BtgKYAawBhAL3AesC0wHMDAADzgN/A/kB3QGzAbkBwAFJAVoBwAFJAVoB3QGz
|
A/wDAAP9A/kh+AP5A/05AAP/A/wD+RL4A/kD+wP+BgABlgGpAbwBXAGEAa4BXAGEAa4BXAGEAa4BXAGE
|
||||||
AbkD+QN/A84MAAHSAYQBbgHqAdAByAHhAtoB4ALZAeAC2QHgAtkB8QLtAfEC7QHgAtkB4ALZAeAC2QHg
|
Aa4BXAGEAa4BXAGEAa4BXAGEAa4BXAGEAa4BXAGEAa4BXAGEAa4BXAGEAa4BXAGEAa4BXAGEAa4BlgGp
|
||||||
AtkB4QHEAb0B0gGEAW4DAAGTAbQB1AF4AasB3gFvAaIB1QFEAXcBqgFvAaIB1QFMAX8BsgFvAaIB1QFM
|
AbwDAALPAcsCuQGwArkBsAK5AbACuQGwArkBsAK5AbACuQGwArkBsAK5AbACuQGwArkBsAK5AbACuQGw
|
||||||
AX8BsgFvAaIB1QFMAX8BsgFvAaIB1QFEAXcBqgFvAaIB1QF4AasB3gGTAbQB1AMAAtUBzQL4Ae4B0QGu
|
As8ByzkAA/4D+AHoAuUB2QG0AasB6gGOAXcB7gFwAVAB7gFwAVAB6gGOAXcB2QG0AasB6AHlAeQD9gP+
|
||||||
AWkB2wG6AXEB3gG+AXQB6QHJAXwBvwHNAagBlQHMAcIBoQHPAb4BkQHEAa8BfwG9AaYBdwG3AZ0BqAGq
|
BgABbAGTAboBVQGIAbsBcAGjAdYBZwGaAc0BZwGaAc0BZwGaAc0BZwGaAc0BZwGaAc0BZwGaAc0BZwGa
|
||||||
AXcC+AHuAtUBzQkAA9ADhgP5BgAB4AG2AbwB0QF7AYcGAAP5A4YD0AkAAbsBVAE1AfQB7gHtAecC5QHa
|
Ac0BZwGaAc0BZwGaAc0BcAGjAdYBVQGIAbsBbAGTAboDAALBAbkC+QHpAvMB4gLzAeIC8wHiAvMB4gLz
|
||||||
AtYB2ALUAdgC1AG3AUgBJgG3AUgBJgHjAt8B2ALUAdgC1AHYAtQB4QHYAdYBuwFUATUDAAGYAbgB1wF6
|
AeIC8wHiAvMB4gLzAeIC8wHiAvMB4gLzAeIC+QHpAsEBuTwAAeoB3AHYAe4BggFnAfUBogGPAfoB0QHK
|
||||||
Aa0B4AFxAaQB1wFBAXQBpwFxAaQB1wFJAXwBrwFxAaQB1wFJAXwBrwFxAaQB1wFJAXwBrwFxAaQB1wFB
|
AfwB5wHlAfwB5gHlAfkB0QHJAfQBoQGOAe4BgQFmAeoB3AHYCQABfgGiAccBcQGkAdcBVQGIAbsBcQGk
|
||||||
AXQBpwFxAaQB1wF6Aa0B4AGYAbgB1wMAAtcBzwL5AfEB0wGsAWYB/wHTAX4B/wHWAYIB4AG+AXQB9gHh
|
AdcBcQGkAdcBcQGkAdcBcQGkAdcBcQGkAdcBcQGkAdcBcQGkAdcBcQGkAdcBcQGkAdcBVQGIAbsBcQGk
|
||||||
AZkBsAHtAeQBrwHRAb8BogHgAdMBmAHYAcYBjgHQAboBuAGyAYAC+QHxAtcBzwYAA+8DbAPvCQAB4wG4
|
AdcBfgGiAccDAALLAcMC9AHkAXoBpwGbAYcBtwGnAYcBtQGjAYkBswGiAWgBoAGGAVcBlwF4AVgBkwF5
|
||||||
Ab8B1wGBAY0JAAPvA2wD7wYAAbEBUAExAfQB7wHtA+4D6gHcAtsB0wLRAccBpgGcAa4BRwElAcEBcwFa
|
AWgBkAF+AZIBpAGTAYYBlwGAAqgBjgL0AeQCywHDCQAD/gP8BvkD+gb8A/sG+QP8A/4MAAHzAd8B2gHu
|
||||||
Ad4C3AHSAtAB0gLQAd8B2AHXAbEBUAExAwABmwG6AdkBfAGvAeIBcwGmAdkBPwFyAaUBcwGmAdkBRwF6
|
AXsBYAH3AdQBzgH3AukB9wLoAfwC9AH8AvQB9wLoAfcC6QH2AdEBygHuAXsBXwHzAd8B2gYAAYYBqgHN
|
||||||
Aa0BcwGmAdkBRwF6Aa0BcwGmAdkBRwF6Aa0BcwGmAdkBPwFyAaUBcwGmAdkBfAGvAeIBmwG6AdkDAALZ
|
AXMBpgHZAWoBnQHQAUgBewGuAV8BkgHFAUwBfwGyAV8BkgHFAUwBfwGyAV8BkgHFAUwBfwGyAV8BkgHF
|
||||||
AdEC+wH0AdUBqQFiAf8BzgF5Af8B0gF9Ad8BugFvAf8B2AGDAeYB6gG9AaYB2AHNAbMB7AHiAbkB5AHQ
|
AUgBewGuAWoBnQHQAXMBpgHZAYYBqgHNAwACzwHHAvUB5gGEAbUBqwGYAdcBxwGQAdEBvgFzAbABmQGX
|
||||||
AbYB3AHEAasBvgGXAvsB9ALZAdEJAAPUA5ED+QYAAeYBuwHBAd0BhwGTBgAD+QORA9QJAAHAAX0BZgHq
|
AcsBtgGnAc4BvQGXAb0BrAGUAboBqAGpAb8BrwGOAa0BoQG3Aa0BiwL1AeYCzwHHCQAD/gP8A/kDswNc
|
||||||
AdUBzQnwA+sD4AHIAZwBjQGrAUYBJAG9AYoBeQPOAdIC0QHcAccCwAF9AWYDAAGdAb0B2wF+AbEB5AF1
|
BvwDXAO0A/kD/AP+CQAB+gH4AfcB5wF+AWIB8wHTAc0B8ALlAe8C5AHvAuQB5QFhAT8B5QFhAT8B7wLk
|
||||||
AagB2wE4AWsBngFRAYQBtwE4AWsBngFRAYQBtwE4AWsBngFRAYQBtwE4AWsBngFRAYQBtwE4AWsBngF1
|
Ae8C5AHvAuQB7wHNAccB5wF+AWIB+gH4AfcDAAGLAa0BzwF1AagB2wFsAZ8B0gFKAX0BsAFsAZ8B0gFS
|
||||||
AagB2wF+AbEB5AGdAb0B2wMAAtoB0wL8AfcB1wGnAV8B2gGsAWQB3AGwAWcB5wG8AXAB4AG6AW8B4wG+
|
AYUBuAFsAZ8B0gFSAYUBuAFsAZ8B0gFSAYUBuAFsAZ8B0gFKAX0BsAFsAZ8B0gF1AagB2wGLAa0BzwMA
|
||||||
AXMB3wHRAZgB2wHPAZYB1QHRAZwBxAHNAaQBnQHRAcMC/AH3AtoB0wwAA9UDlgP5AegBvQHDAd0BZgF3
|
AtEByQL2AekBkAG8AbUBuQHlAdsBpgHdAdABiAHAAbIBhwHJAbUBfgG+AaQBiAG5AaMBrgHQAb8BqQHH
|
||||||
Ad0BZgF3AegBvQHDA/kDlgPVDAAB3wHDAbkB1AGdAYoD9QbzAdoBqQGYAdoBqQGYAc8BjgF4AbMBTwEt
|
AbUBlAG6AagBtgG1AZEC9gHpAtEByQ8AA8sDdQP4BgAD+AN1A8sPAAHoAcUBvAHlAZ0BigHqAuIB5wLf
|
||||||
AdMBoQGQA/MD9QHUAZwBiQHfAcMBuQMAAaABvgHcAX8BsgHlAWYBmQHMAXYBqQHcAXYBqQHcAXYBqQHc
|
AecC3wHnAt8B1gFZATcB1gFZATcB5wLfAecC3wHnAt8B6ALgAeEBlwGEAegBxQG8AwABjwGxAdIBdwGq
|
||||||
AXYBqQHcAXYBqQHcAXYBqQHcAXYBqQHcAXYBqQHcAXYBqQHcAWYBmQHMAX8BsgHlAaABvgHcAwAC2wHU
|
Ad0BbgGhAdQBRwF6Aa0BbgGhAdQBTwGCAbUBbgGhAdQBTwGCAbUBbgGhAdQBTwGCAbUBbgGhAdQBRwF6
|
||||||
Av0B+QHZAaQBXAH/AcQBbwH/AcgBcwHeAbABZwH/Ac4BeQH/AdIBfQHkAb4BcgH/AdgBgwHtAeQBqAHi
|
Aa0BbgGhAdQBdwGqAd0BjwGxAdIDAALTAcwC9wHrAcUBuAGHAf8B3gGMAfgB5wGtAdUB0QGwAcoB6wHi
|
||||||
AeYBtgHQAdcBrQL9AfkC2wHUDwAD1wOZA/oGAAP6A5kD1w8AAfkB+AH3AcsBewFgAfIB3wHZA/gD9wHB
|
Ab0B5QHZAaABygG7AaoBzgGvAYIBwQGkAX4BtgKYAawBhAL3AesC0wHMDAADzgN/A/kB3QGzAbkBwAFJ
|
||||||
AV0BOwHBAV0BOwHBAV0BOwHBAV0BOwHpAdAByAP4AfIB3wHZAcsBewFgAfkB+AH3AwABowHAAd4BawGe
|
AVoBwAFJAVoB3QGzAbkD+QN/A84MAAHSAYQBbgHqAdAByAHhAtoB4ALZAeAC2QHgAtkB8QLtAfEC7QHg
|
||||||
AdEBdwGqAd0BdwGqAd0BdwGqAd0BdwGqAd0BdwGqAd0BdwGqAd0BdwGqAd0BdwGqAd0BdwGqAd0BdwGq
|
AtkB4ALZAeAC2QHgAtkB4QHEAb0B0gGEAW4DAAGTAbQB1AF4AasB3gFvAaIB1QFEAXcBqgFvAaIB1QFM
|
||||||
Ad0BdwGqAd0BawGeAdEBowHAAd4DAALdAdUC/gH8AdoBowFaAf8BvwFrAf8BwgFuAd4BrAFiAf8ByQF0
|
AX8BsgFvAaIB1QFMAX8BsgFvAaIB1QFMAX8BsgFvAaIB1QFEAXcBqgFvAaIB1QF4AasB3gGTAbQB1AMA
|
||||||
Af8BzQF4AeMBuQFuAf8B0wF+Af8B1wGDAfwB3gGVAewBygF8Av4B/ALdAdUSAAPYA50GAAOdA9gVAAHu
|
AtUBzQL4Ae4B0QGuAWkB2wG6AXEB3gG+AXQB6QHJAXwBvwHNAagBlQHMAcIBoQHPAb4BkQHEAa8BfwG9
|
||||||
AeAB2wHYAYQBaAH2AeMB3AP8DPsD/AH2AeMB3AHYAYQBaAHuAeAB2wYAAaYBwwHgAaAB0wH6AZgBywH1
|
AaYBdwG3AZ0BqAGqAXcC+AHuAtUBzQkAA9ADhgP5BgAB4AG2AbwB0QF7AYcGAAP5A4YD0AkAAbsBVAE1
|
||||||
AZMBxgHzAZMBxgHzAZMBxgHzAZMBxgHzAZMBxgHzAZMBxgHzAZMBxgHzAZMBxgHzAZMBxgHzAZgBywH1
|
AfQB7gHtAecC5QHaAtYB2ALUAdgC1AG3AUgBJgG3AUgBJgHjAt8B2ALUAdgC1AHYAtQB4QHYAdYBuwFU
|
||||||
AaAB0wH6AaYBwwHgAwAC3gHXAv8B/gHbAaEBWAHbAaIBWQHbAaQBWwHbAaUBXQHbAakBYAHbAawBYwHb
|
ATUDAAGYAbgB1wF6Aa0B4AFxAaQB1wFBAXQBpwFxAaQB1wFJAXwBrwFxAaQB1wFJAXwBrwFxAaQB1wFJ
|
||||||
Aa8BZgHbAbEBaAHbAbQBawHbAbcBbgHbAbkBcQL/Af4C3gHXPAAB8AHiAd0B5AGUAXgB7wG3AaQB+gHk
|
AXwBrwFxAaQB1wFBAXQBpwFxAaQB1wF6Aa0B4AGYAbgB1wMAAtcBzwL5AfEB0wGsAWYB/wHTAX4B/wHW
|
||||||
Ad0B/gH5AfcB/gH5AfcB+gHkAd0B7wG3AaQB5AGUAXgB8AHiAd0JAAHoAe0B8wGoAcQB4QGXAcoB9QGS
|
AYIB4AG+AXQB9gHhAZkBsAHtAeQBrwHRAb8BogHgAdMBmAHYAcYBjgHQAboBuAGyAYAC+QHxAtcBzwYA
|
||||||
AcUB8wGSAcUB8wGSAcUB8wGSAcUB8wGSAcUB8wGSAcUB8wGSAcUB8wGSAcUB8wGSAcUB8wGXAcoB9QGo
|
A+8DbAPvCQAB4wG4Ab8B1wGBAY0JAAPvA2wD7wYAAbEBUAExAfQB7wHtA+4D6gHcAtsB0wLRAccBpgGc
|
||||||
AcQB4QHoAe0B8wMAAt8B2Sf/At8B2T8AAfoC+AHvAdIByAHsAagBkgHsAY4BbgHsAY4BbgHsAagBkgHv
|
Aa4BRwElAcEBcwFaAd4C3AHSAtAB0gLQAd8B2AHXAbEBUAExAwABmwG6AdkBfAGvAeIBcwGmAdkBPwFy
|
||||||
AdIByAH6AvgPAAHoAe0B8wGpAcUB4gGpAcUB4gGpAcUB4gGpAcUB4gGpAcUB4gGpAcUB4gGpAcUB4gGp
|
AaUBcwGmAdkBRwF6Aa0BcwGmAdkBRwF6Aa0BcwGmAdkBRwF6Aa0BcwGmAdkBPwFyAaUBcwGmAdkBfAGv
|
||||||
AcUB4gGpAcUB4gGpAcUB4gGpAcUB4gHoAe0B8wYAAuoB5gLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLg
|
AeIBmwG6AdkDAALZAdEC+wH0AdUBqQFiAf8BzgF5Af8B0gF9Ad8BugFvAf8B2AGDAeYB6gG9AaYB2AHN
|
||||||
AdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC6gHmwwAD+wPxAZUBrwG8AWgBmwG2AWgBmwG2AWgBmwG2
|
AbMB7AHiAbkB5AHQAbYB3AHEAasBvgGXAvsB9ALZAdEJAAPUA5ED+QYAAeYBuwHBAd0BhwGTBgAD+QOR
|
||||||
AWgBmwG2AWgBmwG2AWgBmwG2AWgBmwG2AWgBmwG2AWgBmwG2AWgBmwG2AZUBrwG8A/ED+xUAEvgD+QP9
|
A9QJAAHAAX0BZgHqAdUBzQnwA+sD4AHIAZwBjQGrAUYBJAG9AYoBeQPOAdIC0QHcAccCwAF9AWYDAAGd
|
||||||
MwAD/AP5JPgD+QP8A/0D+gF3AagBwQGGAc8B8AGBAcsB7QGBAcsB7QGBAcsB7QGBAcsB7QGBAcsB7QGB
|
Ab0B2wF+AbEB5AF1AagB2wE4AWsBngFRAYQBtwE4AWsBngFRAYQBtwE4AWsBngFRAYQBtwE4AWsBngFR
|
||||||
AcsB7QGGAc8B8AFLAY8BsQGGAc8B8AF3AagBwQHcAeIB5Qb9A/kM+APzAYkBpQGPAVUBiwFfAVUBiwFf
|
AYQBtwE4AWsBngF1AagB2wF+AbEB5AGdAb0B2wMAAtoB0wL8AfcB1wGnAV8B2gGsAWQB3AGwAWcB5wG8
|
||||||
AVUBiwFfAVUBiwFfAVUBiwFfAVUBiwFfAZQBrQGZBgADwAMsA8ADAAP7G/gD+wP3AZMBpgG6AWABiAGv
|
AXAB4AG6AW8B4wG+AXMB3wHRAZgB2wHPAZYB1QHRAZwBxAHNAaQBnQHRAcMC/AH3AtoB0wwAA9UDlgP5
|
||||||
AWABiAGvAWABiAGvAWABiAGvAWABiAGvAWABiAGvAWABiAGvAWABiAGvAWABiAGvAWABiAGvAWABiAGv
|
AegBvQHDAd0BZgF3Ad0BZgF3AegBvQHDA/kDlgPVDAAB3wHDAbkB1AGdAYoD9QbzAdoBqQGYAdoBqQGY
|
||||||
AWABiAGvAZMBpgG6A/cGAAGGAbUBzQGEAc4B7gF8AccB6AF8AccB6AF8AccB6AF8AccB6AF8AccB6AF8
|
Ac8BjgF4AbMBTwEtAdMBoQGQA/MD9QHUAZwBiQHfAcMBuQMAAaABvgHcAX8BsgHlAWYBmQHMAXYBqQHc
|
||||||
AccB6AGEAc4B7gFXAZsBvQGEAc4B7gH0AbYBLgGGAbUBzQMAApQBuAJVAaMCVQGjAlUBowJVAaMCVQGj
|
AXYBqQHcAXYBqQHcAXYBqQHcAXYBqQHcAXYBqQHcAXYBqQHcAXYBqQHcAXYBqQHcAWYBmQHMAX8BsgHl
|
||||||
AlUBowFVAXoBiQE1Ab0BeQFDAcsBhwE+AcYBggE+AcYBggE+AcYBggFDAcsBhwFVAaABcAYAA0ABZwJW
|
AaABvgHcAwAC2wHUAv0B+QHZAaQBXAH/AcQBbwH/AcgBcwHeAbABZwH/Ac4BeQH/AdIBfQHkAb4BcgH/
|
||||||
A0ADAAP7A2EDXgNcA1kDVANJAzwDLwNsA/sDAAFyAZgBvwF7Aa4B4AF6Aa0B3wF6Aa0B3wF6Aa0B3wF6
|
AdgBgwHtAeQBqAHiAeYBtgHQAdcBrQL9AfkC2wHUDwAD1wOZA/oGAAP6A5kD1w8AAfkB+AH3AcsBewFg
|
||||||
Aa0B3wF6Aa0B3wF6Aa0B3wF6Aa0B3wF6Aa0B3wF6Aa0B3wF6Aa0B3wF7Aa4B4AFyAZgBvwkAAZEBvgHU
|
AfIB3wHZA/gD9wHBAV0BOwHBAV0BOwHBAV0BOwHBAV0BOwHpAdAByAP4AfIB3wHZAcsBewFgAfkB+AH3
|
||||||
AYcB0AHvAX8BygHpAX8BygHpAX8BygHpAX8BygHpAX8BygHpAX8BygHpAYcB0AHvAV8BowHFAYcB0AHv
|
AwABowHAAd4BawGeAdEBdwGqAd0BdwGqAd0BdwGqAd0BdwGqAd0BdwGqAd0BdwGqAd0BdwGqAd0BdwGq
|
||||||
Af4ByQFBAZEBvgHUAwACVQG0AS8BHgHcASUBEwHYASUBEwHYASUBEwHYASUBEwHYASUBEwHYAVUBfgGV
|
Ad0BdwGqAd0BdwGqAd0BdwGqAd0BawGeAdEBowHAAd4DAALdAdUC/gH8AdoBowFaAf8BvwFrAf8BwgFu
|
||||||
ATcBvwF7AUIBygGGATcBvwF7ATcBvwF7ATcBvwF7AUIBygGGAVUBpwF2BgADywNVA8snAAGEAacBywGB
|
Ad4BrAFiAf8ByQF0Af8BzQF4AeMBuQFuAf8B0wF+Af8B1wGDAfwB3gGVAewBygF8Av4B/ALdAdUSAAPY
|
||||||
AbQB5AF9AbAB4QF9AbAB4QF9AbAB4QF9AbAB4QF9AbAB4QF9AbAB4QF9AbAB4QF9AbAB4QF9AbAB4QF9
|
A50GAAOdA9gVAAHuAeAB2wHYAYQBaAH2AeMB3AP8DPsD/AH2AeMB3AHYAYQBaAHuAeAB2wYAAaYBwwHg
|
||||||
AbAB4QGBAbQB5AGEAacBywkAAZQBwAHWAYoB0wHwAYIBzQHrAYIBzQHrAYIBzQHrAYIBzQHrAYIBzQHr
|
AaAB0wH6AZgBywH1AZMBxgHzAZMBxgHzAZMBxgHzAZMBxgHzAZMBxgHzAZMBxgHzAZMBxgHzAZMBxgHz
|
||||||
AYIBzQHrAYoB0wHwAWIBpgHIAYoB0wHwAukB2wGUAcAB1gMAAlUBuQEtARwB3gEVAQAB1QEVAQAB1QEV
|
AZMBxgHzAZgBywH1AaAB0wH6AaYBwwHgAwAC3gHXAv8B/gHbAaEBWAHbAaIBWQHbAaQBWwHbAaUBXQHb
|
||||||
AQAB1QEVAQAB1QEVAQAB1QFVAYEBmgE7AcMBfwFIAc8BjAE7AcMBfwE7AcMBfwE7AcMBfwFIAc8BjAFV
|
AakBYAHbAawBYwHbAa8BZgHbAbEBaAHbAbQBawHbAbcBbgHbAbkBcQL/Af4C3gHXPAAB8AHiAd0B5AGU
|
||||||
Aa0BezYAAYoBrQHPAYgBuwHqAYIBtQHlAYIBtQHlAYIBtQHlAYIBtQHlAYIBtQHlAYIBtQHlAYIBtQHl
|
AXgB7wG3AaQB+gHkAd0B/gH5AfcB/gH5AfcB+gHkAd0B7wG3AaQB5AGUAXgB8AHiAd0JAAHoAe0B8wGo
|
||||||
AYIBtQHlAYIBtQHlAYIBtQHlAYgBuwHqAYoBrQHPCQABmAHDAdgBjgHWAfIBhwHQAe0BhwHQAe0BhwHQ
|
AcQB4QGXAcoB9QGSAcUB8wGSAcUB8wGSAcUB8wGSAcUB8wGSAcUB8wGSAcUB8wGSAcUB8wGSAcUB8wGS
|
||||||
Ae0BhwHQAe0BhwHQAe0BhwHQAe0BjgHWAfIBZgGqAcwBjgHWAfIC8AHmAZgBwwHYAwACVQG/ATYBJQHk
|
AcUB8wGXAcoB9QGoAcQB4QHoAe0B8wMAAt8B2Sf/At8B2T8AAfoC+AHvAdIByAHsAagBkgHsAY4BbgHs
|
||||||
ARkBAAHbARkBAAHbARkBAAHbARkBAAHbARkBAAHbAVUBhAGgAT4BxgGCAU0B1QGRAT4BxgGCAT4BxgGC
|
AY4BbgHsAagBkgHvAdIByAH6AvgPAAHoAe0B8wGpAcUB4gGpAcUB4gGpAcUB4gGpAcUB4gGpAcUB4gGp
|
||||||
AT4BxgGCAU0B1QGRAVUBswGANgABjgGwAdEBjwHCAe4BhwG6AekBhwG6AekBhwG6AekBhwG6AekBhwG6
|
AcUB4gGpAcUB4gGpAcUB4gGpAcUB4gGpAcUB4gGpAcUB4gHoAe0B8wYAAuoB5gLgAdkC4AHZAuAB2QLg
|
||||||
AekBhwG6AekBhwG6AekBhwG6AekBhwG6AekBhwG6AekBjwHCAe4BjgGwAdEJAAGbAcYB2gGSAdoB9AGL
|
AdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC6gHmwwAD+wPxAZUBrwG8AWgBmwG2
|
||||||
AdQB8AGLAdQB8AGLAdQB8AGLAdQB8AGLAdQB8AGLAdQB8AGSAdoB9AFpAa0BzwGSAdoB9AL4AfMBmwHG
|
AWgBmwG2AWgBmwG2AWgBmwG2AWgBmwG2AWgBmwG2AWgBmwG2AWgBmwG2AWgBmwG2AWgBmwG2AZUBrwG8
|
||||||
AdoDAAJVAcQBPgEtAewBHAEAAeMBHAEAAeMBHAEAAeMBHAEAAeMBHAEAAeMBVQGGAaQBQgHKAYYBUQHZ
|
A/ED+xUAEvgD+QP9MwAD/AP5JPgD+QP8A/0D+gF3AagBwQGGAc8B8AGBAcsB7QGBAcsB7QGBAcsB7QGB
|
||||||
AZUBQgHKAYYBQgHKAYYBQgHKAYYBUQHZAZUBVQG5AYQGAAPQA2cD0CcAAZMBtAHUAZYByQHyAYwBvwHs
|
AcsB7QGBAcsB7QGBAcsB7QGGAc8B8AFLAY8BsQGGAc8B8AF3AagBwQHcAeIB5Qb9A/kM+APzAYkBpQGP
|
||||||
AYwBvwHsAYwBvwHsAUQBdwGqAYwBvwHsAUQBdwGqAYwBvwHsAYwBvwHsAYwBvwHsAYwBvwHsAZYByQHy
|
AVUBiwFfAVUBiwFfAVUBiwFfAVUBiwFfAVUBiwFfAVUBiwFfAZQBrQGZBgADwAMsA8ADAAP7G/gD+wP3
|
||||||
AZMBtAHUCQABnwHIAd0BlwHeAfYBkAHYAfIBkAHYAfIBkAHYAfIBkAHYAfIBkAHYAfIBkAHYAfIBlwHe
|
AZMBpgG6AWABiAGvAWABiAGvAWABiAGvAWABiAGvAWABiAGvAWABiAGvAWABiAGvAWABiAGvAWABiAGv
|
||||||
AfYBeQG9AdwBeAG9AdwC/gH9AZ8ByAHdAwACVQHIAUYBNQHyASABAAHpASABAAHpASABAAHpASABAAHp
|
AWABiAGvAWABiAGvAWABiAGvAZMBpgG6A/cGAAGGAbUBzQGEAc4B7gF8AccB6AF8AccB6AF8AccB6AF8
|
||||||
ASABAAHpAVUBiQGoAUQBzAGIAWUB7QGpAWUB7QGpAWUB7QGpAWUB7QGpAVgB1gGWAX8BywGkBgADbAFv
|
AccB6AF8AccB6AF8AccB6AGEAc4B7gFXAZsBvQGEAc4B7gH0AbYBLgGGAbUBzQMAApQBuAJVAaMCVQGj
|
||||||
AmkDbAYAA3UDdANxA24DbANoA2UDYwNgBgABmAG4AdcBmwHOAfYBkQHEAfABkQHEAfABkQHEAfABVQGI
|
AlUBowJVAaMCVQGjAlUBowFVAXoBiQE1Ab0BeQFDAcsBhwE+AcYBggE+AcYBggE+AcYBggFDAcsBhwFV
|
||||||
AbsBRAF3AaoBVQGIAbsBQAFzAaYBkQHEAfABkQHEAfABkQHEAfABmwHOAfYBmAG4AdcJAAGiAcoB3gGb
|
AaABcAYAA0ABZwJWA0ADAAP7A2EDXgNcA1kDVANJAzwDLwNsA/sDAAFyAZgBvwF7Aa4B4AF6Aa0B3wF6
|
||||||
AeEB9wGUAdsB9AGUAdsB9AGUAdsB9AGUAdsB9AGUAdsB9AGUAdsB9AGUAdsB9AGeAeQB+QF8AcAB3gGi
|
Aa0B3wF6Aa0B3wF6Aa0B3wF6Aa0B3wF6Aa0B3wF6Aa0B3wF6Aa0B3wF6Aa0B3wF6Aa0B3wF7Aa4B4AFy
|
||||||
AcoB3gHuAfMB9QMAAn8B1QFiAWEB5wF2AXUB/gF2AXUB/gF5AWIBowF7AVABVQF7AVABVQFqAVkBPwFq
|
AZgBvwkAAZEBvgHUAYcB0AHvAX8BygHpAX8BygHpAX8BygHpAX8BygHpAX8BygHpAX8BygHpAYcB0AHv
|
||||||
AW4BMgFqAW4BMgFhAYsBUQFVAcEBigFVAcEBigFVAcEBigHiAe8B6AYAA9MDcQPTJwABmwG6AdkBnwHS
|
AV8BowHFAYcB0AHvAf4ByQFBAZEBvgHUAwACVQG0AS8BHgHcASUBEwHYASUBEwHYASUBEwHYASUBEwHY
|
||||||
AfkBlQHIAfMBlQHIAfMBlQHIAfMBVQGIAbsBVQGIAbsBVQGIAbsBTQGAAbMBlQHIAfMBlQHIAfMBlQHI
|
ASUBEwHYAVUBfgGVATcBvwF7AUIBygGGATcBvwF7ATcBvwF7ATcBvwF7AUIBygGGAVUBpwF2BgADywNV
|
||||||
AfMBnwHSAfkBmwG6AdkJAAGlAc0B4AGeAeUB+QGYAd8B9gGYAd8B9gGYAd8B9gGYAd8B9gGYAd8B9gGY
|
A8snAAGEAacBywGBAbQB5AF9AbAB4QF9AbAB4QF9AbAB4QF9AbAB4QF9AbAB4QF9AbAB4QF9AbAB4QF9
|
||||||
Ad8B9gGYAd8B9gGYAd8B9gGhAegB+gGlAc0B4AYAAuIB8QJVAc4CVQHOAlUBzgFtAVMBdQHcAakBMgHX
|
AbAB4QF9AbAB4QF9AbAB4QGBAbQB5AGEAacBywkAAZQBwAHWAYoB0wHwAYIBzQHrAYIBzQHrAYIBzQHr
|
||||||
AaQBLQHXAaQBLQHXAaQBLQHcAakBMgGwAYYBSEIAAZ8BvQHbAakB2wH+AaoB3QH/AaoB3QH/AaoB3QH/
|
AYIBzQHrAYIBzQHrAYIBzQHrAYoB0wHwAWIBpgHIAYoB0wHwAukB2wGUAcAB1gMAAlUBuQEtARwB3gEV
|
||||||
AXcBqgHdAXcBqgHdAXcBqgHdAWYBmQHMAaoB3QH/AaoB3QH/AaoB3QH/AakB2wH+AZ8BvQHbCQABqAHO
|
AQAB1QEVAQAB1QEVAQAB1QEVAQAB1QEVAQAB1QFVAYEBmgE7AcMBfwFIAc8BjAE7AcMBfwE7AcMBfwE7
|
||||||
AeIBowHoAfsBnQHjAfkBnQHjAfkBnQHjAfkBnQHjAfkBnQHjAfkBnQHjAfkBnQHjAfkBnQHjAfkBowHo
|
AcMBfwFIAc8BjAFVAa0BezYAAYoBrQHPAYgBuwHqAYIBtQHlAYIBtQHlAYIBtQHlAYIBtQHlAYIBtQHl
|
||||||
AfsBqAHOAeISAAG2AYsBRQHcAakBMgHRAZ4BJwHRAZ4BJwHRAZ4BJwHcAakBMgG2AYsBRUIAAccB1wHn
|
AYIBtQHlAYIBtQHlAYIBtQHlAYIBtQHlAYIBtQHlAYgBuwHqAYoBrQHPCQABmAHDAdgBjgHWAfIBhwHQ
|
||||||
AYgBtgHiAYABswHmAYABswHmAYABswHmAU4BgQG0AU4BgQG0AU4BgQG0AUgBewGuAYABswHmAYABswHm
|
Ae0BhwHQAe0BhwHQAe0BhwHQAe0BhwHQAe0BhwHQAe0BjgHWAfIBZgGqAcwBjgHWAfIC8AHmAZgBwwHY
|
||||||
AYABswHmAYgBtgHiAccB1wHnCQABqwHQAeMBpgHrAfwBoQHmAfsBoQHmAfsBoQHmAfsBoQHmAfsBoQHm
|
AwACVQG/ATYBJQHkARkBAAHbARkBAAHbARkBAAHbARkBAAHbARkBAAHbAVUBhAGgAT4BxgGCAU0B1QGR
|
||||||
AfsBoQHmAfsBoQHmAfsBoQHmAfsBpgHrAfwBqwHQAeMSAAG7AZABQQHhAa4BOAHWAaMBLAHWAaMBLAHW
|
AT4BxgGCAT4BxgGCAT4BxgGCAU0B1QGRAVUBswGANgABjgGwAdEBjwHCAe4BhwG6AekBhwG6AekBhwG6
|
||||||
AaMBLAHhAa4BOAG7AZABQRIAA9cDfQPXJwAB4wHqAfEBjgG4AeEBiQG8Ae8BiAG7Ae4BiAG7Ae4BQQF0
|
AekBhwG6AekBhwG6AekBhwG6AekBhwG6AekBhwG6AekBhwG6AekBhwG6AekBjwHCAe4BjgGwAdEJAAGb
|
||||||
AacBQQF0AacBQQF0AacBPgFxAaQBiAG7Ae4BiAG7Ae4BiQG8Ae8BjgG4AeEB4wHqAfEJAAGuAdIB5AGp
|
AcYB2gGSAdoB9AGLAdQB8AGLAdQB8AGLAdQB8AGLAdQB8AGLAdQB8AGLAdQB8AGSAdoB9AFpAa0BzwGS
|
||||||
Ae4B/QGkAekB/AGkAekB/AGkAekB/AGkAekB/AGkAekB/AGkAekB/AGkAekB/AGkAekB/AGpAe4B/QGu
|
AdoB9AL4AfMBmwHGAdoDAAJVAcQBPgEtAewBHAEAAeMBHAEAAeMBHAEAAeMBHAEAAeMBHAEAAeMBVQGG
|
||||||
AdIB5BIAAcABlQE/AecBtAE9AdoBpwEwAdoBpwEwAdoBpwEwAecBtAE9AcABlQE/EgADfwN3A38GAAOC
|
AaQBQgHKAYYBUQHZAZUBQgHKAYYBQgHKAYYBQgHKAYYBUQHZAZUBVQG5AYQGAAPQA2cD0CcAAZMBtAHU
|
||||||
A4EDfwN+A3wDegN5A3YDqwYAAfUB9wH5AZsBvgHfAYkBvAHvAYgBuwHuAYgBuwHuATUBaAGbATUBaAGb
|
AZYByQHyAYwBvwHsAYwBvwHsAYwBvwHsAUQBdwGqAYwBvwHsAUQBdwGqAYwBvwHsAYwBvwHsAYwBvwHs
|
||||||
ATUBaAGbATUBaAGbAYgBuwHuAYgBuwHuAYkBvAHvAZsBvgHfAfUB9wH5CQABsAHUAeYBrAHxAf8BpwHs
|
AYwBvwHsAZYByQHyAZMBtAHUCQABnwHIAd0BlwHeAfYBkAHYAfIBkAHYAfIBkAHYAfIBkAHYAfIBkAHY
|
||||||
Af4BpwHsAf4BpwHsAf4BpwHsAf4BpwHsAf4BpwHsAf4BpwHsAf4BpwHsAf4BrAHxAf8BsAHUAeYSAAHG
|
AfIBkAHYAfIBlwHeAfYBeQG9AdwBeAG9AdwC/gH9AZ8ByAHdAwACVQHIAUYBNQHyASABAAHpASABAAHp
|
||||||
AZoBPQHrAbgBQQHdAaoBMwHdAaoBMwHdAaoBMwHrAbgBQQHGAZoBPRIAA9gDggPYJwAD/gHLAdoB6gGp
|
ASABAAHpASABAAHpASABAAHpAVUBiQGoAUQBzAGIAWUB7QGpAWUB7QGpAWUB7QGpAWUB7QGpAVgB1gGW
|
||||||
AcUB4gGpAcUB4gGpAcUB4gFVAX0BpgFVAX0BpgFVAX0BpgFVAX0BpgGpAcUB4gGpAcUB4gGpAcUB4gHL
|
AX8BywGkBgADbAFvAmkDbAYAA3UDdANxA24DbANoA2UDYwNgBgABmAG4AdcBmwHOAfYBkQHEAfABkQHE
|
||||||
AdoB6gP+CQABsgHVAeYBsQH1Af8BrgHyAf8BrgHyAf8BrgHyAf8BrgHyAf8BrgHyAf8BrgHyAf8BrgHy
|
AfABkQHEAfABVQGIAbsBRAF3AaoBVQGIAbsBQAFzAaYBkQHEAfABkQHEAfABkQHEAfABmwHOAfYBmAG4
|
||||||
Af8BrgHyAf8BsQH1Af8BsgHVAeYSAAHUAbMBbAHnAbgBRgH+AcsBVAH+AcsBVAH+AcsBVAHnAbgBRgHU
|
AdcJAAGiAcoB3gGbAeEB9wGUAdsB9AGUAdsB9AGUAdsB9AGUAdsB9AGUAdsB9AGUAdsB9AGUAdsB9AGe
|
||||||
AbMBbHUAAdAB5AHuAbMB1gHnAbMB1gHnAbMB1gHnAbMB1gHnAbMB1gHnAbMB1gHnAbMB1gHnAbMB1gHn
|
AeQB+QF8AcAB3gGiAcoB3gHuAfMB9QMAAn8B1QFiAWEB5wF2AXUB/gF2AXUB/gF5AWIBowF7AVABVQF7
|
||||||
AbMB1gHnAbMB1gHnAdAB5AHuEgAB8AHrAd4BzQGgATkBzQGgATkBzQGgATkBzQGgATkBzQGgATkB8AHr
|
AVABVQFqAVkBPwFqAW4BMgFqAW4BMgFhAYsBUQFVAcEBigFVAcEBigFVAcEBigHiAe8B6AYAA9MDcQPT
|
||||||
Ad4PAAP7A/ECyAHDArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsALIAcMD8Qb7
|
JwABmwG6AdkBnwHSAfkBlQHIAfMBlQHIAfMBlQHIAfMBVQGIAbsBVQGIAbsBVQGIAbsBTQGAAbMBlQHI
|
||||||
A/ECyAHDArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsALIAcMD8QP7YAAD/QP6
|
AfMBlQHIAfMBlQHIAfMBnwHSAfkBmwG6AdkJAAGlAc0B4AGeAeUB+QGYAd8B9gGYAd8B9gGYAd8B9gGY
|
||||||
AsABuAv/A/4B/QL+AfwC/QH7Av0B+gL8AfgC/gH5AsABuAP6Bv0D+gLAAbgL/wP+Af0C/gH8Av0B+wL9
|
Ad8B9gGYAd8B9gGYAd8B9gGYAd8B9gGYAd8B9gGhAegB+gGlAc0B4AYAAuIB8QJVAc4CVQHOAlUBzgFt
|
||||||
AfoC/AH4Av4B+QLAAbgD+gP9ZgACyQHBBv8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL7AfYCyQHB
|
AVMBdQHcAakBMgHXAaQBLQHXAaQBLQHXAaQBLQHcAakBMgGwAYYBSEIAAZ8BvQHbAakB2wH+AaoB3QH/
|
||||||
DAACyQHBBv8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL7AfYCyQHBbAACzwHHA/8D/gL9AfwC/QH7
|
AaoB3QH/AaoB3QH/AXcBqgHdAXcBqgHdAXcBqgHdAWYBmQHMAaoB3QH/AaoB3QH/AaoB3QH/AakB2wH+
|
||||||
AvwB+QL7AfgC+gH2AvgB9AL3AfIC+wH1As8BxwwAAs8BxwP/A/4C/QH8Av0B+wL8AfkC+wH4AvoB9gL4
|
AZ8BvQHbCQABqAHOAeIBowHoAfsBnQHjAfkBnQHjAfkBnQHjAfkBnQHjAfkBnQHjAfkBnQHjAfkBnQHj
|
||||||
AfQC9wHyAvsB9QLPAccMAAP+A/wG+QP6BvwD+wb5A/wD/gYAA/0D/AP6HvgD+gP8A/0GAALQAcgC/wH+
|
AfkBnQHjAfkBowHoAfsBqAHOAeISAAG2AYsBRQHcAakBMgHRAZ4BJwHRAZ4BJwHRAZ4BJwHcAakBMgG2
|
||||||
Av0B/AL9AfsBvwFIAa4B7AHOAeUC+gH2AvgB9AL3AfIC9gHwAvoB8wLQAcgMAALQAcgC/wH+Av0B/AHp
|
AYsBRUIAAccB1wHnAYgBtgHiAYABswHmAYABswHmAYABswHmAU4BgQG0AU4BgQG0AU4BgQG0AUgBewGu
|
||||||
Ac8B6wGuAUgBvwGuAUgBvwGuAUgBvwHTAaEB2gL3AfIC9gHwAvoB8wLQAcgMAAP+A/wD+QOzA1wG/ANc
|
AYABswHmAYABswHmAYABswHmAYgBtgHiAccB1wHnCQABqwHQAeMBpgHrAfwBoQHmAfsBoQHmAfsBoQHm
|
||||||
A7QD+QP8A/4GAAP9A4QDNAOEA/gD4gY0A4QD4gN1A6QD+AOEAzQD6QYAAtIBywL+A/0B+wL8AfkBxgFP
|
AfsBoQHmAfsBoQHmAfsBoQHmAfsBoQHmAfsBoQHmAfsBpgHrAfwBqwHQAeMSAAG7AZABQQHhAa4BOAHW
|
||||||
AbUB7AHPAeUC+AH0AvcB8gL2AfAC9QHuAvoB8gLSAcsMAALSAcsC/gP9AfsB6gHRAe0BtQFPAcYC+gH2
|
AaMBLAHWAaMBLAHWAaMBLAHhAa4BOAG7AZABQRIAA9cDfQPXJwAB4wHqAfEBjgG4AeEBiQG8Ae8BiAG7
|
||||||
AecBzgHoAbUBTwHGAe4B4QHrAvUB7gL6AfIC0gHLEgADywN1A/gGAAP4A3UDyxIAA3kD9QYAA6oDeQYA
|
Ae4BiAG7Ae4BQQF0AacBQQF0AacBQQF0AacBPgFxAaQBiAG7Ae4BiAG7Ae4BiQG8Ae8BjgG4AeEB4wHq
|
||||||
A8sDvgPuA6oDwgkAAtUBzQL+A/wB+QL7AfgBzgFXAb0BzgFXAb0BzgFXAb0B4gGmAdYC9QHuAvQB7AL5
|
AfEJAAGuAdIB5AGpAe4B/QGkAekB/AGkAekB/AGkAekB/AGkAekB/AGkAekB/AGkAekB/AGkAekB/AGk
|
||||||
Ae8C1QHNDAAC1QHNAv4D/AH5AesB0gHtAb0BVwHOAvgB9AL3AfIBvQFXAc4B5wHNAeUC9AHsAvkB7wLV
|
AekB/AGpAe4B/QGuAdIB5BIAAcABlQE/AecBtAE9AdoBpwEwAdoBpwEwAdoBpwEwAecBtAE9AcABlQE/
|
||||||
Ac0PAAPOA38D+QwAA/kDfwPODwADxgxgA8YGAAP1CWAD6QkAAtYBzgL9A/sB+AL6AfYB1gFfAcUB7wHR
|
EgADfwN3A38GAAOCA4EDfwN+A3wDegN5A3YDqwYAAfUB9wH5AZsBvgHfAYkBvAHvAYgBuwHuAYgBuwHu
|
||||||
AeYC9gHwAvUB7gL0AewC8QHnAvcB6gLWAc4MAALWAc4C/QP7AfgB7AHTAe4BxQFfAdYC9wHyAeoB0QHq
|
ATUBaAGbATUBaAGbATUBaAGbATUBaAGbAYgBuwHuAYgBuwHuAYkBvAHvAZsBvgHfAfUB9wH5CQABsAHU
|
||||||
AcUBXwHWAe0B4QHpAvEB5wL3AeoC1gHODAAD0AOGA/kSAAP5A4YD0AwAA/UDlAPvA9EDaAP1CQADkwPv
|
AeYBrAHxAf8BpwHsAf4BpwHsAf4BpwHsAf4BpwHsAf4BpwHsAf4BpwHsAf4BpwHsAf4BpwHsAf4BrAHx
|
||||||
A2gMAALYAdAC/QP6AfYC+AH0AdwBZQHLAdwBZQHLAdwBZQHLAeIBiQHTAvEB5wLsAd8C9AHlAtgB0AwA
|
Af8BsAHUAeYSAAHGAZoBPQHrAbgBQQHdAaoBMwHdAaoBMwHdAaoBMwHrAbgBQQHGAZoBPRIAA9gDggPY
|
||||||
AtgB0AL9A/oB9gHtAdMB7gHLAWUB3AHLAWUB3AHLAWUB3AHfAawB4wLxAecC7AHfAvQB5QLYAdAJAAPv
|
JwAD/gHLAdoB6gGpAcUB4gGpAcUB4gGpAcUB4gFVAX0BpgFVAX0BpgFVAX0BpgFVAX0BpgGpAcUB4gGp
|
||||||
A2wD7xgAA+8DbAPvDAADjwP2A7cDjwwAA8wDfQPMDAAC2gHSAvwD+AH0AvcB8gL2AfAC9QHuAvQB7ALx
|
AcUB4gGpAcUB4gHLAdoB6gP+CQABsgHVAeYBsQH1Af8BrgHyAf8BrgHyAf8BrgHyAf8BrgHyAf8BrgHy
|
||||||
AecC7AHfAugB2QLzAeIC2gHSDAAC2gHSAvwD+AH0AvcB8gL2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLz
|
Af8BrgHyAf8BrgHyAf8BrgHyAf8BsQH1Af8BsgHVAeYSAAHUAbMBbAHnAbgBRgH+AcsBVAH+AcsBVAH+
|
||||||
AeIC2gHSDAAD1AORA/kSAAP5A5ED1A8AA84D1QN3A84MAAPsA3cD7AwAAtsB0wL8A/cB8gL2AfAC9QHu
|
AcsBVAHnAbgBRgHUAbMBbHUAAdAB5AHuAbMB1gHnAbMB1gHnAbMB1gHnAbMB1gHnAbMB1gHnAbMB1gHn
|
||||||
AvQB7ALxAecC7AHfAugB2QLmAdUC8gHhAtsB0wwAAtsB0wL8A/cB8gL2AfAC9QHuAvQB7ALxAecC7AHf
|
AbMB1gHnAbMB1gHnAbMB1gHnAbMB1gHnAdAB5AHuEgAB8AHrAd4BzQGgATkBzQGgATkBzQGgATkBzQGg
|
||||||
AugB2QLmAdUC8gHhAtsB0w8AA9UDlgP5DAAD+QOWA9USAAP2A6IDfgP2IQAC3AHVAvsD9gHwAvUB7gL0
|
ATkBzQGgATkB8AHrAd4PAAP7A/ECyAHDArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGw
|
||||||
AewC8QHnAuwB3wLoAdkC5gHVAuUB1ALyAeEC3AHVDAAC3AHVAvsD9gHwAvUB7gL0AewC8QHnAuwB3wLo
|
ArgBsALIAcMD8Qb7A/ECyAHDArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsALI
|
||||||
AdkC5gHVAuUB1ALyAeEC3AHVEgAD1wOZA/oGAAP6A5kD1xgABpwkAALdAdYC+gH0AvUB7gL0AewC8QHn
|
AcMD8QP7YAAD/QP6AsABuAv/A/4B/QL+AfwC/QH7Av0B+gL8AfgC/gH5AsABuAP6Bv0D+gLAAbgL/wP+
|
||||||
AuwB3wLoAdkC5gHVAqQBkwKkAZMCpAGTAskBwAwAAt0B1gL6AfQC9QHuAvQB7ALxAecC7AHfAugB2QLm
|
Af0C/gH8Av0B+wL9AfoC/AH4Av4B+QLAAbgD+gP9ZgACyQHBBv8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2
|
||||||
AdUCpAGTAqQBkwKkAZMCyQHAFQAD2AOdBgADnQPYRQAC3gHXAvoB8wL0AewC8QHnAuwB3wLoAdkC5gHV
|
AvgB9AL7AfYCyQHBDAACyQHBBv8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL7AfYCyQHBbAACzwHH
|
||||||
AuUB1AK2AaUD/wLeAdcC9wH2DAAC3gHXAvoB8wL0AewC8QHnAuwB3wLoAdkC5gHVAuUB1AK2AaUD/wLe
|
A/8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL3AfIC+wH1As8BxwwAAs8BxwP/A/4C/QH8Av0B+wL8
|
||||||
AdcC9wH2bAAC3wHZAvwB9QL5Ae8C9gHqAvQB5QLzAeIC8gHhAvIB4QLCAbEC3wHZAvcB9g8AAt8B2QL8
|
AfkC+wH4AvoB9gL4AfQC9wHyAvsB9QLPAccMAAP+A/wG+QP6BvwD+wb5A/wD/gYAA/0D/AP6HvgD+gP8
|
||||||
AfUC+QHvAvYB6gL0AeUC8wHiAvIB4QLyAeECwgGxAt8B2QL3AfZvAALqAeYC4AHZAuAB2QLgAdkC4AHZ
|
A/0GAALQAcgC/wH+Av0B/AL9AfsBvwFIAa4B7AHOAeUC+gH2AvgB9AL3AfIC9gHwAvoB8wLQAcgMAALQ
|
||||||
AuAB2QLgAdkC4AHZAuAB2QL3AfYSAALqAeYC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QL3
|
AcgC/wH+Av0B/AHpAc8B6wGuAUgBvwGuAUgBvwGuAUgBvwHTAaEB2gL3AfIC9gHwAvoB8wLQAcgMAAP+
|
||||||
AfZsAAP7A/ECyAHDArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsALIAcMD8Qb7
|
A/wD+QOzA1wG/ANcA7QD+QP8A/4GAAP9A4QDNAOEA/gD4gY0A4QD4gN1A6QD+AOEAzQD6QYAAtIBywL+
|
||||||
A/ECyAHDArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsALIAcMD8Qb7A/ECyAHD
|
A/0B+wL8AfkBxgFPAbUB7AHPAeUC+AH0AvcB8gL2AfAC9QHuAvoB8gLSAcsMAALSAcsC/gP9AfsB6gHR
|
||||||
ArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsALIAcMD8Qb7A/ECyAHDArgBsAK4
|
Ae0BtQFPAcYC+gH2AecBzgHoAbUBTwHGAe4B4QHrAvUB7gL6AfIC0gHLEgADywN1A/gGAAP4A3UDyxIA
|
||||||
AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsALIAcMD8QP7A/0D+gLAAbgL/wP+Af0C/gH8
|
A3kD9QYAA6oDeQYAA8sDvgPuA6oDwgkAAtUBzQL+A/wB+QL7AfgBzgFXAb0BzgFXAb0BzgFXAb0B4gGm
|
||||||
Av0B+wL9AfoC/AH4Av4B+QLAAbgD+gb9A/oCwAG4C/8D/gH9Av4B/AL9AfsC/QH6AvwB+AL+AfkCwAG4
|
AdYC9QHuAvQB7AL5Ae8C1QHNDAAC1QHNAv4D/AH5AesB0gHtAb0BVwHOAvgB9AL3AfIBvQFXAc4B5wHN
|
||||||
A/oG/QP6AsABuAv/A/4B/QL+AfwC/QH7Av0B+gL8AfgC/gH5AsABuAP6Bv0D+gLAAbgL/wP+Af0C/gH8
|
AeUC9AHsAvkB7wLVAc0PAAPOA38D+QwAA/kDfwPODwADxgxgA8YGAAP1CWAD6QkAAtYBzgL9A/sB+AL6
|
||||||
Av0B+wL9AfoC/AH4Av4B+QLAAbgD+gP9BgACyQHBBv8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL7
|
AfYB1gFfAcUB7wHRAeYC9gHwAvUB7gL0AewC8QHnAvcB6gLWAc4MAALWAc4C/QP7AfgB7AHTAe4BxQFf
|
||||||
AfYCyQHBDAACyQHBBv8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL7AfYCyQHBDAACyQHBBv8D/gL9
|
AdYC9wHyAeoB0QHqAcUBXwHWAe0B4QHpAvEB5wL3AeoC1gHODAAD0AOGA/kSAAP5A4YD0AwAA/UDlAPv
|
||||||
AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL7AfYCyQHBDAACyQHBBv8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2
|
A9EDaAP1CQADkwPvA2gMAALYAdAC/QP6AfYC+AH0AdwBZQHLAdwBZQHLAdwBZQHLAeIBiQHTAvEB5wLs
|
||||||
AvgB9AL7AfYCyQHBDAACzwHHA/8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL3AfIC+wH1As8BxwwA
|
Ad8C9AHlAtgB0AwAAtgB0AL9A/oB9gHtAdMB7gHLAWUB3AHLAWUB3AHLAWUB3AHfAawB4wLxAecC7AHf
|
||||||
As8BxwP/A/4C/QH8Av0B+wL8AfkC+wH4AvoB9gL4AfQC9wHyAvsB9QLPAccMAALPAccD/wP+Av0B/AL9
|
AvQB5QLYAdAJAAPvA2wD7xgAA+8DbAPvDAADjwP2A7cDjwwAA8wDfQPMDAAC2gHSAvwD+AH0AvcB8gL2
|
||||||
AfsC/AH5AvsB+AL6AfYC+AH0AvcB8gL7AfUCzwHHDAACzwHHA/8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2
|
AfAC9QHuAvQB7ALxAecC7AHfAugB2QLzAeIC2gHSDAAC2gHSAvwD+AH0AvcB8gL2AfAC9QHuAvQB7ALx
|
||||||
AvgB9AL3AfIC+wH1As8BxwwAAtAByAL/Af4C/QH8AdwBzwHrAXsBSAG/AXsBSAG/AXsBSAG/AYsBXgHG
|
AecC7AHfAugB2QLzAeIC2gHSDAAD1AORA/kSAAP5A5ED1A8AA84D1QN3A84MAAPsA3cD7AwAAtsB0wL8
|
||||||
AegB4QHrAvYB8AL6AfMC0AHIDAAC0AHIAv8B/gL9AfwC/QH7AYIBwgG0AVkBrgGdAVkBrgGdAakB0wHI
|
A/cB8gL2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUC8gHhAtsB0wwAAtsB0wL8A/cB8gL2AfAC9QHu
|
||||||
AvcB8gL2AfAC+gHzAtAByAwAAtAByAL/Af4C/QH8Av0B+wHeAaIBqQG/AUgBWQG/AUgBWQHcAaABpgL3
|
AvQB7ALxAecC7AHfAugB2QLmAdUC8gHhAtsB0w8AA9UDlgP5DAAD+QOWA9USAAP2A6IDfgP2IQAC3AHV
|
||||||
AfIC9gHwAvoB8wLQAcgMAALQAcgC/wH+Av0B/AL9AfsBvwF7AUgBvwF7AUgBvwF7AUgB3AG6AZ4C9wHy
|
AvsD9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC5gHVAuUB1ALyAeEC3AHVDAAC3AHVAvsD9gHwAvUB7gL0
|
||||||
AvYB8AL6AfMC0AHIDAAC0gHLAv4D/QH7Ad0B0QHtAYIBTwHGAvoB9gL4AfQBggFPAcYB2QHMAeUC9QHu
|
AewC8QHnAuwB3wLoAdkC5gHVAuUB1ALyAeEC3AHVEgAD1wOZA/oGAAP6A5kD1xgABpwkAALdAdYC+gH0
|
||||||
AvoB8gLSAcsMAALSAcsC/gP9AfsC/AH5AvsB+AL6AfYB0gHoAeABYAG1AaQC9gHwAvUB7gL6AfIC0gHL
|
AvUB7gL0AewC8QHnAuwB3wLoAdkC5gHVAqQBkwKkAZMCpAGTAskBwAwAAt0B1gL6AfQC9QHuAvQB7ALx
|
||||||
DAAC0gHLAv4D/QH7AvwB+QL7AfgB4AGlAasB0wF6AYUC9wHyAvYB8AL1Ae4C+gHyAtIBywwAAtIBywL+
|
AecC7AHfAugB2QLmAdUCpAGTAqQBkwKkAZMCyQHAFQAD2AOdBgADnQPYRQAC3gHXAvoB8wL0AewC8QHn
|
||||||
A/0B+wL8AfkBxgGCAU8B7AHbAcwC+AH0AvcB8gL2AfAC9QHuAvoB8gLSAcsMAALVAc0C/gP8AfkB3wHS
|
AuwB3wLoAdkC5gHVAuUB1AK2AaUD/wLeAdcC9wH2DAAC3gHXAvoB8wL0AewC8QHnAuwB3wLoAdkC5gHV
|
||||||
Ae0BigFXAc4BmAFsAdMBigFXAc4BpQF/AdcB5wHhAekC9AHsAvkB7wLVAc0MAALVAc0C/gP8AfkC+wH4
|
AuUB1AK2AaUD/wLeAdcC9wH2bAAC3wHZAvwB9QL5Ae8C9gHqAvQB5QLzAeIC8gHhAvIB4QLCAbEC3wHZ
|
||||||
AbIB3AHSAWgBvQGsAWgBvQGsAa4B2QHNAvUB7gL0AewC+QHvAtUBzQwAAtUBzQL+A/wB+QL7AfgC+gH2
|
AvcB9g8AAt8B2QL8AfUC+QHvAvYB6gL0AeUC8wHiAvIB4QLyAeECwgGxAt8B2QL3AfZvAALqAeYC4AHZ
|
||||||
AeMBqAGuAdkBfwGLAvYB8AL1Ae4C9AHsAvkB7wLVAc0MAALVAc0C/gP8AfkC+wH4Ac4BigFXAe4B3QHM
|
AuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QL3AfYSAALqAeYC4AHZAuAB2QLgAdkC4AHZAuAB2QLg
|
||||||
AvcB8gL2AfAC9QHuAvQB7AL5Ae8C1QHNDAAC1gHOAv0D+wH4AeAB0wHuAZIBXwHWAvcB8gHdAdAB6QGS
|
AdkC4AHZAuAB2QL3AfZsAAP7A/ECyAHDArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGw
|
||||||
AV8B1gL0AewC8QHnAvcB6gLWAc4MAALWAc4C/QP7AfgC+gH2AXABxQG0AdUB6wHiAvYB8AL1Ae4C9AHs
|
ArgBsALIAcMD8Qb7A/ECyAHDArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsALI
|
||||||
AvEB5wL3AeoC1gHODAAC1gHOAv0D+wH4AvoB9gL4AfQB5wGrAbEB3gGFAZAC9QHuAvQB7ALxAecC9wHq
|
AcMD8Qb7A/ECyAHDArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsALIAcMD8Qb7
|
||||||
AtYBzgwAAtYBzgL9A/sB+AL6AfYB1gGSAV8B7wHeAc0C9gHwAvUB7gL0AewC8QHnAvcB6gLWAc4MAALY
|
A/ECyAHDArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsALIAcMD8QP7A/0D+gLA
|
||||||
AdAC/QP6AfYB4AHTAe4BmAFlAdwBmAFlAdwBmAFlAdwBxQGsAeMC8QHnAuwB3wL0AeUC2AHQDAAC2AHQ
|
AbgL/wP+Af0C/gH8Av0B+wL9AfoC/AH4Av4B+QLAAbgD+gb9A/oCwAG4C/8D/gH9Av4B/AL9AfsC/QH6
|
||||||
Av0D+gH2AvgB9AG3AeEB1QF2AcsBugF2AcsBugGVAdUBxgLxAecC7AHfAvQB5QLYAdAMAALYAdAC/QP6
|
AvwB+AL+AfkCwAG4A/oG/QP6AsABuAv/A/4B/QL+AfwC/QH7Av0B+gL8AfgC/gH5AsABuAP6Bv0D+gLA
|
||||||
AfYC+AH0AeoBrwG0AdwBZQF2AdwBZQF2AegBrAGxAvEB5wLsAd8C9AHlAtgB0AwAAtgB0AL9A/oB9gL4
|
AbgL/wP+Af0C/gH8Av0B+wL9AfoC/AH4Av4B+QLAAbgD+gP9BgACyQHBBv8D/gL9AfwC/QH7AvwB+QL7
|
||||||
AfQB3AGYAWUB7wHeAc0C9QHuAvQB7ALxAecC7AHfAvQB5QLYAdAMAALaAdIC/AP4AfQC9wHyAvYB8AL1
|
AfgC+gH2AvgB9AL7AfYCyQHBDAACyQHBBv8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL7AfYCyQHB
|
||||||
|
DAACyQHBBv8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL7AfYCyQHBDAACyQHBBv8D/gL9AfwC/QH7
|
||||||
|
AvwB+QL7AfgC+gH2AvgB9AL7AfYCyQHBDAACzwHHA/8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL3
|
||||||
|
AfIC+wH1As8BxwwAAs8BxwP/A/4C/QH8Av0B+wL8AfkC+wH4AvoB9gL4AfQC9wHyAvsB9QLPAccMAALP
|
||||||
|
AccD/wP+Av0B/AL9AfsC/AH5AvsB+AL6AfYC+AH0AvcB8gL7AfUCzwHHDAACzwHHA/8D/gL9AfwC/QH7
|
||||||
|
AvwB+QL7AfgC+gH2AvgB9AL3AfIC+wH1As8BxwwAAtAByAL/Af4C/QH8AdwBzwHrAXsBSAG/AXsBSAG/
|
||||||
|
AXsBSAG/AYsBXgHGAegB4QHrAvYB8AL6AfMC0AHIDAAC0AHIAv8B/gL9AfwC/QH7AYIBwgG0AVkBrgGd
|
||||||
|
AVkBrgGdAakB0wHIAvcB8gL2AfAC+gHzAtAByAwAAtAByAL/Af4C/QH8Av0B+wHeAaIBqQG/AUgBWQG/
|
||||||
|
AUgBWQHcAaABpgL3AfIC9gHwAvoB8wLQAcgMAALQAcgC/wH+Av0B/AL9AfsBvwF7AUgBvwF7AUgBvwF7
|
||||||
|
AUgB3AG6AZ4C9wHyAvYB8AL6AfMC0AHIDAAC0gHLAv4D/QH7Ad0B0QHtAYIBTwHGAvoB9gL4AfQBggFP
|
||||||
|
AcYB2QHMAeUC9QHuAvoB8gLSAcsMAALSAcsC/gP9AfsC/AH5AvsB+AL6AfYB0gHoAeABYAG1AaQC9gHw
|
||||||
|
AvUB7gL6AfIC0gHLDAAC0gHLAv4D/QH7AvwB+QL7AfgB4AGlAasB0wF6AYUC9wHyAvYB8AL1Ae4C+gHy
|
||||||
|
AtIBywwAAtIBywL+A/0B+wL8AfkBxgGCAU8B7AHbAcwC+AH0AvcB8gL2AfAC9QHuAvoB8gLSAcsMAALV
|
||||||
|
Ac0C/gP8AfkB3wHSAe0BigFXAc4BmAFsAdMBigFXAc4BpQF/AdcB5wHhAekC9AHsAvkB7wLVAc0MAALV
|
||||||
|
Ac0C/gP8AfkC+wH4AbIB3AHSAWgBvQGsAWgBvQGsAa4B2QHNAvUB7gL0AewC+QHvAtUBzQwAAtUBzQL+
|
||||||
|
A/wB+QL7AfgC+gH2AeMBqAGuAdkBfwGLAvYB8AL1Ae4C9AHsAvkB7wLVAc0MAALVAc0C/gP8AfkC+wH4
|
||||||
|
Ac4BigFXAe4B3QHMAvcB8gL2AfAC9QHuAvQB7AL5Ae8C1QHNDAAC1gHOAv0D+wH4AeAB0wHuAZIBXwHW
|
||||||
|
AvcB8gHdAdAB6QGSAV8B1gL0AewC8QHnAvcB6gLWAc4MAALWAc4C/QP7AfgC+gH2AXABxQG0AdUB6wHi
|
||||||
|
AvYB8AL1Ae4C9AHsAvEB5wL3AeoC1gHODAAC1gHOAv0D+wH4AvoB9gL4AfQB5wGrAbEB3gGFAZAC9QHu
|
||||||
|
AvQB7ALxAecC9wHqAtYBzgwAAtYBzgL9A/sB+AL6AfYB1gGSAV8B7wHeAc0C9gHwAvUB7gL0AewC8QHn
|
||||||
|
AvcB6gLWAc4MAALYAdAC/QP6AfYB4AHTAe4BmAFlAdwBmAFlAdwBmAFlAdwBxQGsAeMC8QHnAuwB3wL0
|
||||||
|
AeUC2AHQDAAC2AHQAv0D+gH2AvgB9AG3AeEB1QF2AcsBugF2AcsBugGVAdUBxgLxAecC7AHfAvQB5QLY
|
||||||
|
AdAMAALYAdAC/QP6AfYC+AH0AeoBrwG0AdwBZQF2AdwBZQF2AegBrAGxAvEB5wLsAd8C9AHlAtgB0AwA
|
||||||
|
AtgB0AL9A/oB9gL4AfQB3AGYAWUB7wHeAc0C9QHuAvQB7ALxAecC7AHfAvQB5QLYAdAMAALaAdIC/AP4
|
||||||
|
AfQC9wHyAvYB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZAvMB4gLaAdIMAALaAdIC/AP4AfQC9wHyAvYB8AL1
|
||||||
Ae4C9AHsAvEB5wLsAd8C6AHZAvMB4gLaAdIMAALaAdIC/AP4AfQC9wHyAvYB8AL1Ae4C9AHsAvEB5wLs
|
Ae4C9AHsAvEB5wLsAd8C6AHZAvMB4gLaAdIMAALaAdIC/AP4AfQC9wHyAvYB8AL1Ae4C9AHsAvEB5wLs
|
||||||
Ad8C6AHZAvMB4gLaAdIMAALaAdIC/AP4AfQC9wHyAvYB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZAvMB4gLa
|
Ad8C6AHZAvMB4gLaAdIMAALaAdIC/AP4AfQC9wHyAvYB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZAvMB4gLa
|
||||||
AdIMAALaAdIC/AP4AfQC9wHyAvYB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZAvMB4gLaAdIMAALbAdMC/AP3
|
AdIMAALbAdMC/AP3AfIC9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC5gHVAvIB4QLbAdMMAALbAdMC/AP3
|
||||||
AfIC9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC5gHVAvIB4QLbAdMMAALbAdMC/AP3AfIC9gHwAvUB7gL0
|
AfIC9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC5gHVAvIB4QLbAdMMAALbAdMC/AP3AfIC9gHwAvUB7gL0
|
||||||
AewC8QHnAuwB3wLoAdkC5gHVAvIB4QLbAdMMAALbAdMC/AP3AfIC9gHwAvUB7gL0AewC8QHnAuwB3wLo
|
AewC8QHnAuwB3wLoAdkC5gHVAvIB4QLbAdMMAALbAdMC/AP3AfIC9gHwAvUB7gL0AewC8QHnAuwB3wLo
|
||||||
AdkC5gHVAvIB4QLbAdMMAALbAdMC/AP3AfIC9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC5gHVAvIB4QLb
|
AdkC5gHVAvIB4QLbAdMMAALcAdUC+wP2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUC5QHUAvIB4QLc
|
||||||
AdMMAALcAdUC+wP2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUC5QHUAvIB4QLcAdUMAALcAdUC+wP2
|
AdUMAALcAdUC+wP2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUC5QHUAvIB4QLcAdUMAALcAdUC+wP2
|
||||||
AfAC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUC5QHUAvIB4QLcAdUMAALcAdUC+wP2AfAC9QHuAvQB7ALx
|
AfAC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUC5QHUAvIB4QLcAdUMAALcAdUC+wP2AfAC9QHuAvQB7ALx
|
||||||
AecC7AHfAugB2QLmAdUC5QHUAvIB4QLcAdUMAALcAdUC+wP2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLm
|
AecC7AHfAugB2QLmAdUC5QHUAvIB4QLcAdUMAALdAdYC+gH0AvUB7gL0AewC8QHnAuwB3wLoAdkC5gHV
|
||||||
AdUC5QHUAvIB4QLcAdUMAALdAdYC+gH0AvUB7gL0AewC8QHnAuwB3wLoAdkC5gHVAqQBkwKkAZMCpAGT
|
AqQBkwKkAZMCpAGTAskBwAwAAt0B1gL6AfQC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUCpAGTAqQBkwKk
|
||||||
AskBwAwAAt0B1gL6AfQC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUCpAGTAqQBkwKkAZMCyQHADAAC3QHW
|
AZMCyQHADAAC3QHWAvoB9AL1Ae4C9AHsAvEB5wLsAd8C6AHZAuYB1QKkAZMCpAGTAqQBkwLJAcAMAALd
|
||||||
AvoB9AL1Ae4C9AHsAvEB5wLsAd8C6AHZAuYB1QKkAZMCpAGTAqQBkwLJAcAMAALdAdYC+gH0AvUB7gL0
|
AdYC+gH0AvUB7gL0AewC8QHnAuwB3wLoAdkC5gHVAqQBkwKkAZMCpAGTAskBwAwAAt4B1wL6AfMC9AHs
|
||||||
AewC8QHnAuwB3wLoAdkC5gHVAqQBkwKkAZMCpAGTAskBwAwAAt4B1wL6AfMC9AHsAvEB5wLsAd8C6AHZ
|
AvEB5wLsAd8C6AHZAuYB1QLlAdQCtgGlA/8C3gHXAvcB9gwAAt4B1wL6AfMC9AHsAvEB5wLsAd8C6AHZ
|
||||||
AuYB1QLlAdQCtgGlA/8C3gHXAvcB9gwAAt4B1wL6AfMC9AHsAvEB5wLsAd8C6AHZAuYB1QLlAdQCtgGl
|
AuYB1QLlAdQCtgGlA/8C3gHXAvcB9gwAAt4B1wL6AfMC9AHsAvEB5wLsAd8C6AHZAuYB1QLlAdQCtgGl
|
||||||
A/8C3gHXAvcB9gwAAt4B1wL6AfMC9AHsAvEB5wLsAd8C6AHZAuYB1QLlAdQCtgGlA/8C3gHXAvcB9gwA
|
A/8C3gHXAvcB9gwAAt4B1wL6AfMC9AHsAvEB5wLsAd8C6AHZAuYB1QLlAdQCtgGlA/8C3gHXAvcB9gwA
|
||||||
At4B1wL6AfMC9AHsAvEB5wLsAd8C6AHZAuYB1QLlAdQCtgGlA/8C3gHXAvcB9gwAAt8B2QL8AfUC+QHv
|
At8B2QL8AfUC+QHvAvYB6gL0AeUC8wHiAvIB4QLyAeECwgGxAt8B2QL3AfYPAALfAdkC/AH1AvkB7wL2
|
||||||
AvYB6gL0AeUC8wHiAvIB4QLyAeECwgGxAt8B2QL3AfYPAALfAdkC/AH1AvkB7wL2AeoC9AHlAvMB4gLy
|
AeoC9AHlAvMB4gLyAeEC8gHhAsIBsQLfAdkC9wH2DwAC3wHZAvwB9QL5Ae8C9gHqAvQB5QLzAeIC8gHh
|
||||||
AeEC8gHhAsIBsQLfAdkC9wH2DwAC3wHZAvwB9QL5Ae8C9gHqAvQB5QLzAeIC8gHhAvIB4QLCAbEC3wHZ
|
AvIB4QLCAbEC3wHZAvcB9g8AAt8B2QL8AfUC+QHvAvYB6gL0AeUC8wHiAvIB4QLyAeECwgGxAt8B2QL3
|
||||||
AvcB9g8AAt8B2QL8AfUC+QHvAvYB6gL0AeUC8wHiAvIB4QLyAeECwgGxAt8B2QL3AfYPAALqAeYC4AHZ
|
AfYPAALqAeYC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QL3AfYSAALqAeYC4AHZAuAB2QLg
|
||||||
AuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QL3AfYSAALqAeYC4AHZAuAB2QLgAdkC4AHZAuAB2QLg
|
AdkC4AHZAuAB2QLgAdkC4AHZAuAB2QL3AfYSAALqAeYC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZ
|
||||||
AdkC4AHZAuAB2QL3AfYSAALqAeYC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QL3AfYSAALq
|
AuAB2QL3AfYSAALqAeYC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QL3AfYMAAFCAU0BPgcA
|
||||||
AeYC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QL3AfYMAAFCAU0BPgcAAT4DAAEoAwABQAMA
|
AT4DAAEoAwABQAMAAWADAAEBAQABAQYAAQMWAAP/AQAE/wQABP8UAAGAAQEBgAEBPAABgAEBAYABAQQA
|
||||||
AWADAAEBAQABAQYAAQMWAAP/gQAI/wGAAQEB4AEDBP8BgAEBAeABAwQAAfABAwHsATcEAAH4AQMBwAED
|
AcABAwHAAQMEAAT/BAAE/wQADP8BgAEBAeABAwT/AYABAQHgAQMBwAEDAcABAwHwAQMB7AE3AcABAwHA
|
||||||
AYABAQGAAQEB/AEDAcABAwQAAfgBAwHAAQMEAAHwAQMBwAEDBAAB4AEDAfABDwQAAcABAwHAAQMEAAHA
|
AQMB+AEDAcABAwHxAY8B8QGPAfwBAwHAAQMB4AEHAeABBwH4AQMBwAEDAccBIwHEAeMB8AEDAcABAwGM
|
||||||
ASMBwAEDBAABwAFzAcABAwQAAeAB/wHAAQMBgAEBAYABAQHxAf8B7AE3AcABAwHAAQMC/wH8AT8M/wEA
|
ATEBjAHxAeABAwHwAQ8BxAHjAcQB4wHAAQMBwAEDAeABBwHgAccBwAEjAcABAwHxAY8B8QGPAcABcwHA
|
||||||
AQEBAAEBAv8BwAEDAQABAQEAAQEC/wHAAQMBAAEBAQABAQL/AeABBwEAAQEBAAEBAcABAwHAAQMBAAEB
|
AQMB+QGfAfkBnwHgAf8BwAEDBP8B8QH/AewBNwb/AfwBPwj/AQABAQEAAQEC/wHAAQMBAAEBAQABAQL/
|
||||||
AQABAQHAAQMBgAEBAQABAQEAAQEB8QGPAYABAQEAAQEBAAEBAeABBwGAAQEBAAEBAQABAQHGAWMBgAEB
|
AcABAwEAAQEBAAEBAv8B4AEHAQABAQEAAQEBwAEDAcABAwEAAQEBAAEBAcABAwGAAQEBAAEBAQABAQHx
|
||||||
AQABAQEAAQEBjgFxAYABAQEAAQEBAAEBAcYBYwGAAQEBAAEBAQABAQHgAQcBgAEBAQABAQEAAQEB8QGP
|
AY8BgAEBAQABAQEAAQEB4AEHAYABAQEAAQEBAAEBAcYBYwGAAQEBAAEBAQABAQGOAXEBgAEBAQABAQEA
|
||||||
AYABAQEAAQEBAAEBAfkBnwHAAQMBAAEBAQABAQL/AeABBwEAAQEBAAEBAv8B8AEPAYABAwEAAQEI/wIA
|
AQEBxgFjAYABAQEAAQEBAAEBAeABBwGAAQEBAAEBAQABAQHxAY8BgAEBAQABAQEAAQEB+QGfAcABAwEA
|
||||||
Af4BAQL/BQABAQGIAwABwAEBAQABAQGIAQABgAEBAcABAQEAAQEBjwH/AYABAQHAAQEBAAEBAv8BgAEB
|
AQEBAAEBAv8B4AEHAQABAQEAAQEC/wHwAQ8BgAEDAQABAQj/AgAB/gEBAv8FAAEBAYgDAAHAAQEBAAEB
|
||||||
AcABAQEAAQEC/wGAAQEBwAEBAQABAQGPAf8BgAEBAcABAQEAAQEBjAEBAYABAQHAAQEBAAEBAY8B/wGA
|
AYgBAAGAAQEBwAEBAQABAQGPAf8BgAEBAcABAQEAAQEC/wGAAQEBwAEBAQABAQL/AYABAQHAAQEBAAEB
|
||||||
AQEBwAEDAQABHwL/AYABAQHAAQMB8AEfAv8BgAEBAcABAwHwAR8BjwH/AYABAQHAAQMB8AEfAYwBAQGA
|
AY8B/wGAAQEBwAEBAQABAQGMAQEBgAEBAcABAQEAAQEBjwH/AYABAQHAAQMBAAEfAv8BgAEBAcABAwHw
|
||||||
AQEBwAEDAfABHwGPAf8BgAEBAcABAwHwAR8E/wHAAQMB8AEfBAAE/wQABP8BwAEDAcABAwT/AcABAwHA
|
AR8C/wGAAQEBwAEDAfABHwGPAf8BgAEBAcABAwHwAR8BjAEBAYABAQHAAQMB8AEfAY8B/wGAAQEBwAED
|
||||||
AQMBwAEDAgABwAEDAcABAwHAAQMCAAHAAQMBwAEDAfEBjwHMAcEBwAEDAcABAwHjAccBwAHBAcABAwHA
|
AfABHwT/AcABAwHwAR8EAAT/BAAE/wHAAQMBwAEDBP8BwAEDAcABAwHAAQMCAAHAAQMBwAEDAcABAwIA
|
||||||
AQMBxwHjAcAB4wHAAQMBwAEDAY8B8QHhAeMBwAEDAcABAwHHAeMB4QHjAcABAwHAAQMB4wHHAeEB/wHA
|
AcABAwHAAQMB8QGPAcwBwQHAAQMBwAEDAeMBxwHAAcEBwAEDAcABAwHHAeMBwAHjAcABAwHAAQMBjwHx
|
||||||
AQMBwAEDAfEBjwHzAf8BwAEDAcABAwH5AZ8C/wHAAQMBwAEDBP8BwAEHAcABBwT/AcABDwHAAQ8E/xAA
|
AeEB4wHAAQMBwAEDAccB4wHhAeMBwAEDAcABAwHjAccB4QH/AcABAwHAAQMB8QGPAfMB/wHAAQMBwAED
|
||||||
AcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAED
|
AfkBnwL/AcABAwHAAQME/wHAAQcBwAEHBP8BwAEPAcABDwT/EAABwAEDAcABAwHAAQMBwAEDAcABAwHA
|
||||||
AcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAED
|
AQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHA
|
||||||
AcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAED
|
AQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHA
|
||||||
AcABAwHAAQMBwAEDAcABBwHAAQcBwAEHAcABBwHAAQ8BwAEPAcABDwHAAQ8L
|
AQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEHAcABBwHA
|
||||||
|
AQcBwAEHAcABDwHAAQ8BwAEPAcABDws=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
@ -446,48 +453,48 @@
|
||||||
<data name="_tbFindGroupAnd.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="_tbFindGroupAnd.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJOSURBVDhPzZHdT1JxHMbPqqsuwpdq5kVrqzbW9CZl66ab
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJPSURBVDhPzZHdT1JxHMbPqqsuwpdq5kVrqzbW9KKMrZtu
|
||||||
WnrRlmu9jLbUrTVrsVW4wF4ssOYs0F6Ul8awqWkJwiCgcAfDWGhIRlmRogcBDyCCmmDUTRedh05b/0H9
|
aulFW671MtpSt9asxVbpAnuxwJqzQHtBXhrDpqYlCIOAwh0MY6EhGWVFih4EPIAIaoJRN110Hjpt/Qf1
|
||||||
ts/Od8/zfDY2iP/nlTU4OLvF5B7mW1V2mTyBb6Vk4hD4O2M3HFb7/Zhga+Wt4er+EVoVTn0fTKV/+PqG
|
2z473z3P89nYIP6fV9bg4OwSkXuYb2XZZfIEvhXi8UPg74zdcFjt92OCzRW3hqr6hmlVOPV9IJX+4esd
|
||||||
lt2nW+g0wI0MHTbYwvkjcw5InbX+SNoQWcw6Q8ksOfJx2cNvpDIK40IE4EaGDhts4eR+SelF697HrlkV
|
XHKfbqHTADcydNhgC+ePzDkgcdb4I2lDZCHrDCWz5PDHJQ+/kcoojPMRgBsZOmywhZP7JaUXrXsfu2ZU
|
||||||
Uzqo+Yx9NpkdEsg/hS7IphK9jq9fAG5k6LDBFg5cgnvezJ+MZmyfWYIL2eHSw/b0nZ745H1jyt38JOm4
|
TOmg5jL2mWR2UCD7FLognUz0OL5+AbiRocMGWzhwCe55M38imrF9ZgnOZ4dKD9vTd7rjE/eNKXfzk6Tj
|
||||||
rgm95fEtKzZfvKP3dbjZ6KFbRwOLPXAJrsBURyW+uT6EV0xgis6QO8oHfrbpU65rnXELkOtTr5BZx2MP
|
uib0lse3LNt88fae1+Fmo4duHQksdMMluAJTLZX45voQXjaBSTpDbtvZ/7NNn3Jd64hbgEyfeoXMOhZ7
|
||||||
lSR1QzVISV68m9fAJbaf0deMB5fMYzNLBvv7hNbkjam5B41pUXvI26CNWQFuZPpRWnHveUAKDB5aCZfY
|
qCSpG6oBSvzi3ZwGLrH1jL56LLhoHp1eNNjfJ7Qmb0zNPWhMC+Uhb4M2ZgW4kelHaMW95wEJMHhoJVxi
|
||||||
duppxQObX2P20lq5JXBTTQZlVUL39BGxb+5qZ9QOcCNDJ3sWaFLYZ25L+n134RLF1d2FJQJdfbeT6miz
|
y6mn5Q9sfo3ZS2tllsBNNRmUVta5p46IfLNXO6J2gBsZOumzQJPCPn1b3Oe7C5coruoqLBHo6rucVHub
|
||||||
BlqaBvzSVgOl450cWxW1RycAbmTosMF21zmdEG7uryysuMLdWdcnEnd52h85g2rDm7kukWL6Ja82tApw
|
NdDS1O+XtBooHe/k6IpQHh0HuJGhwwbbHed0dXBzf2Vh+RXu9tpeoajTI3/kDKoNb2Y7hYqpl7ya0ArA
|
||||||
I0OHDbZwcjLz1jJsXFdUUp63/1JN/lFlfcFxTWPBMbWwaJ/kLMCNDB022MJhXWINw3o2KGbYwrCJIY9h
|
jQwdNtjCycnMW82wfk1Rye68/Zeq848q6wuOaxoLjqnrivaJzwLcyNBhgy0c1iVWMaxlg2KGTQwbGPIY
|
||||||
A0s+w2YGdNhgCwfuP30E8QtHOZOg6MLdcgAAAABJRU5ErkJggg==
|
1rHkM2xkQIcNtnDg/tNHEL8AOkOTmpr+SJIAAAAASUVORK5CYII=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="_tbFindGroupOr.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="_tbFindGroupOr.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAI+SURBVDhPzZHvaxJxHMePetaDKGjBehgRwoLoUbCI6AcS
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAI9SURBVDhPzZHda1JxHMYPdddFFLRgXUaEsCC6ChYRvSDR
|
||||||
jVhp0Vq/GO1B4CBi6UgZK6dWzo0e1BimzsxdqISkbtecbXNpsViclnO2svPEu3OeQ9tDH3VvM6K/oL7w
|
WAMtWuuN0S4CBxFLR8qonFo5N7qoMUydmTuhEpK62Zxtc2mxWBxdztnK9IjnZR7HsV161XnMiP6C+sGH
|
||||||
4t68P+/XoyP+n3fNKMq6DaLj+qDInB3gavh2G8ou8HcnOrBtaL/ehTuMolPLClprSXgaKH/zvfmRv+8S
|
8/B8n8/VIf6fd80oyHoMguP6oJA/e5ep4dtjqLjA353gwLah/XoX7uQVXVqa01rL3LNA5Zvv7Y/iA5dA
|
||||||
6Uv6XBIgo8MNG2zh1GV5z5Ls9E1aMJOlLBneyLgjlbRzurLcZc767aFqCiCjww0bbOHAJVo75x0qQ0Zw
|
XdIXUgAZHW7YYAunLst7l2TtNynOTJZzZGQz646KGee0uNJtzvntoWoaIKPDDRts4cAlWrvmHSpDlnPP
|
||||||
z1TSz8PVFBmprPRZ2VmDm4+jA8jocMMGHRy4REtbgBkm+VXn6+on4I5sfOkwrARtr8r0o5dizEiWZiye
|
iJkXkWqajIqr/VZ61uBmE+gAMjrcsEEHBy7R0hbID5PsmvNNdRm4o5tfOg2rQdvrCvX4lRA3kuUZi4df
|
||||||
4sI5/XJgyLM2q3cVp0zuUnhwnE3AJZrlvtp4aP2rbbJMAxdVSZ/SJvzDXjGqs/MBMOQV59FZPH+6B6QQ
|
OKdfCQx51mf1Ln7K5C5HBsfpJFyiWe6rjYc2vtomKxRwhcXMGW3SP+wVYjo7GwBDXmEencXzp3tIcnG4
|
||||||
g0vsPu5jTE42M+pf/2jxirGHpBhV3v08aSSL0T4bFwTI9W5ibe531/uYWYRL7D055bisS/LmF6W3aisX
|
xN6TvrzJSWdH/RufLF4h/ogUYsp7nyeNJB/rtzFBgFzvJtbnfnd9T/KLcIn9p6ccl3Up1vyy/E5tZUID
|
||||||
6ncI0zdGViO3nmTntPYCBZDR4aYZ44LozqsTObjEPkVcdkC5WOyxsLTGWqB6x/JBvZNfaO9PUvecfBwg
|
Dm76xsha9NbT3JzWXgoDZHS4acaYILrz6mQBLnFAkZAdUi7yvRaa0lhL4b6xYlDvZBc6BlLh+042AZDR
|
||||||
o8NNYytQ2O5vjwlw67+y5cQzxaErmeJFHcveHi18ME1w71Uj35eOqVIZgIxOLd2wwRZOXZbeZokdTXuU
|
4aaxlcLYHuyIc3Drv7Ll1HPFkStZ/qKOpm+Plj6aJpgPqpHvSydU6SxARqeWbthgC6cuS2+rxK6mfUr5
|
||||||
8oPKd74jXSx79AxXO3w1n2vtoL0AGR1u2GALp+ESmyS2NIpdEs0STRLbJLY22C6xUwI3bLCFA/efPoL4
|
YeV737Fumj7eztSOXi0WWjspL0BGhxs22MJpuMQWiW2NYo9Es0STxA6J7Q12SuyWwA0bbOHA/aePIH4C
|
||||||
CcCwqZ4FAx1nAAAAAElFTkSuQmCC
|
pr6pkmHLOpUAAAAASUVORK5CYII=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="_tbFindAny.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="_tbFindAny.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIGSURBVDhPY6AZ2LWY2XnXYsa9ILxzMVM8VBg/2DKfQQLK
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIFSURBVDhPY6AZ2LWY2XnXYsa9ILxzMVM8VBg/2DKfQQLK
|
||||||
ZNg2j3Hf+9f931/ebv2zbQHjLqgwihoUsHEOU8KmuYz7Ns1lXr5xNrMHiP373cz/jy6m/UWIMS8HiYPU
|
ZNg2j3Hf+9f935/daPqzbQHjLqgwihoUsHEOU8KmuYz7Ns1lXr5xNrMHiP373cz/988l/0WIMS8HiYPU
|
||||||
QrUhwIaZjPu/v5r8//3D9u8HN+ieB/G/vej///JE9I91MxlXH1yjc/7t+YbvX551/QfJQbUhwOrJTAfu
|
QrUhwIaZjPu/v5r8//3D9u8HN+ieB/G/vej///JE9I91MxlXH1yjc/7t+YbvX551/QfJQbUhwOrJTAfu
|
||||||
nwj/8fRK4v9Xt4r/71+lceH9w+b/t08GftoHZL+8WfAfJAdSA1IL1YYAyycyWC3vZ1y5Z4XyzZPbLF48
|
nwj/8fRK4v9Xt4r/71+lceH9w+b/t08GftoHZL+8WfAfJAdSA1IL1YYAyycyWC3vZ1y5Z4XyzZPbLF48
|
||||||
upT6H4TvnA7+//Bi8n+QGEgOpAakFqoNEyzsYnZZ0M106PAmqw/Xjnr8B2EQGyQGkoMqwwSzWxms57Qx
|
upT6H4TvnA7+//Bi8n+QGEgOpAakFqoNEyzsYnZZ0M106PAmqw/Xjnr8B2EQGyQGkoMqwwSzWxms57Qx
|
||||||
rt6x0ujmyc32L68cdvkPwjdO+IPpY5utX+5YonUTpAakFqoNAabWMx25CwywWye9/18/5vJ/6SThyye3
|
rt6x0ujmyc32L68cdvkPwjdO+IPpY5utX+5YonUTpAakFqoNAabWMx25CwywWye9/18/5vJ/6SThyye3
|
||||||
mH6+dy4MzAaJ3Tjh8f/EUZ8fILVQbQjQV8F09M5pl/8nDpn9WNQtdKW/knHDicNmP+6fD/wPkgOJgeRA
|
mH6+dy4MzAaJ3Tjh8f/EUZ8fILVQbQjQV8F09M5pl/8nDpn9WNQtdKW/knHDicNmP+6fD/wPkgOJgeRA
|
||||||
akB8qDYEaC9gSGnJYTzRksu4Hsj2BtFn99v/fXrF5z9IHCYGZadAtaECK0MGKSiToTKZ8dilg/Z/7+63
|
akB8qDYEaC9gSGnJYTzRksu4Hsj2BtGn9tv/fXrF5z9IHCYGZadAtaECK0MGKSiToTKZ8dh5oAF399v/
|
||||||
/1mZxHgKKoyiBhvgBWJFIFb3s2eoqMvkuADC9iYMiSAxIFYGYgEgZgRirIADiMWAGGQLNiwOxFxAjNMA
|
rExiPAUVRlGDDfACsSIQq/vZM1TUZXJcAGF7E4ZEkBgQKwOxABAzAjFWwAHEYkAMsgUbFgdiLiDGaQCJ
|
||||||
EgEDAwA7NBxCd851BwAAAABJRU5ErkJggg==
|
gIEBAPfdHChaYCrPAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="_tbFindByte.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="_tbFindByte.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
@ -716,6 +723,16 @@
|
||||||
1OygebHD1uVKsedMdz6DUVQRmKFmxRrTr51sLzid1RIeYaYq9kkBixWrWKHrHW2ncggfIJFZEmAxR3XF
|
1OygebHD1uVKsedMdz6DUVQRmKFmxRrTr51sLzid1RIeYaYq9kkBixWrWKHrHW2ncggfIJFZEmAxR3XF
|
||||||
GlMv7WxQ2oYPuJoJxL7SQGCB6nrFtfWLmyvFnjPdNRj8RBvBJWpe7J28ztpio4lBcYifOIb2UAJKaj+C
|
GlMv7WxQ2oYPuJoJxL7SQGCB6nrFtfWLmyvFnjPdNRj8RBvBJWpe7J28ztpio4lBcYifOIb2UAJKaj+C
|
||||||
cuqZfSF8gP+Qhh4HUjr7eOAnMeYGV3014C2A0QAAAAAASUVORK5CYII=
|
cuqZfSF8gP+Qhh4HUjr7eOAnMeYGV3014C2A0QAAAAAASUVORK5CYII=
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="_tbReplaceLongArray.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADxSURBVDhPYxi+IIyRkXEalM0AZYdBeIRBBFDDTCAtBuGC
|
||||||
|
gRhULALCxQ2igArnAGnx1Om33s/c+XQ/RBgMxKFyURAuJogBKlgApMVBnPgJV/5N3fEQ2QAQABkCUhMD
|
||||||
|
4SKAAVBiD4iGcBkYwjvO/Ju06e4+KBcZYKiFgUSgxEogLQni+Dcc+de7/uZeEBsJSELVJEK4mCAZqGAd
|
||||||
|
kJb0qN77D4wr9/4umnluHkgMKpcMUogPpAMVbgPS0hAuGEhDxdIhXOyABYh5gRgUiI1AfByI+YCYH8pu
|
||||||
|
AGIJKB+kFgMgGwAKBxEghhkgDBXDa8CQBAwMAFHnNaGM/318AAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="_tbReplaceString.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="_tbReplaceString.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
@ -739,13 +756,13 @@
|
||||||
<data name="_tbReplaceCompound.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="_tbReplaceCompound.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFzSURBVDhPrdE/SAJhHMbx33FCY2PQ0NLUHK1SIFRE0VAR
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFySURBVDhPrdE/SAJhHMbx33FCY2PQ0NLUHK1SIFRE0VAR
|
||||||
Ev2DQoiGKBCSUBvKKIhAoxByyE5QEkEF0cIIAwtpaGsQDSroDxYFQUO8+ch7L3fbSR18OXjf53PL0b88
|
Ev2DQoiGKBCSUBvKKIhAoxByyE5QEkEF0cIIhQppaGsQDSoqwqIgaIg3H3nv5W47qYMvB+/7fG45+pcn
|
||||||
WSeZstMm29mUvKnmNFNBm/YOWxjOiU7HG1qvHG1HbycbrJLx1PLbOnSp59hgC8M5UXpS7r719uW0Hwgt
|
6yRTdtpkO5uSN9WcZipo095hC8M50el4Q+uVo+3o7WSDVTKeWn5bhy71HBtsYTgnSk/K3bfevpz2A6Gl
|
||||||
dYmCC2bdB7CF4ZwoNWGaLylz5ce4i6kl3AOiqKNHnCNsYTgnSo7Jvpd86IcVw0ytGLaLCvuz4hxhC8M5
|
LlFwwaz7ALYwnBOlJkzzJWWu/Bh3MbWEe0AUdfSIc4QtDOdEyTHZ95QP/bBimKkVw3ZRYX9WnCNsYTgn
|
||||||
Udwq733fBNhn3ifKeIZFcVe/7g5bGM6JYlbZ/3XtZ++5HRFg2G6pvZXFTt0dtjCcE0VG5cDH5S57zW6J
|
ilvlve+bAPu88IkynmFR3NWvu8MWhnOimFX2f1372XtuRwQYtltqb2WxU3eHLQznRJFROfBxuctes1si
|
||||||
gLVvbdjCcE4UGpEPK+fb7Cm9bihsYTgnCg5JynP1Fz0kVw2FLQznRIFBKXKfcLO72IqhsIXhnMjbK6XK
|
YO1bG7YwnBOFRuTDyvk2e06vGwpbGM6JgkOS8lL9RQ/JVUNhC8M5UWBQitwn3OwutmIobGE4J/L2Sqly
|
||||||
UQcrHS8bClsYzqllpl06WLNIF/UEA4sPNFZrqtZcZzCwf3mIfgHu4t1w+i+rTAAAAABJRU5ErkJggg==
|
1MFKx8uGwhaGc2qZaZcO1ixSvp5gYPGBxmpN1ZrrDAb2Lw/RL87Y3WT+gOBKAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="_explorerStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="_explorerStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
using NBTModel.Interop;
|
||||||
|
|
||||||
namespace NBTExplorer.Windows
|
namespace NBTExplorer.Windows
|
||||||
{
|
{
|
||||||
|
|
503
NBTExplorer/Windows/MainForm.Designer.cs
generated
503
NBTExplorer/Windows/MainForm.Designer.cs
generated
|
@ -31,42 +31,54 @@
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
||||||
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
|
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
|
||||||
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this._menuItemOpen = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this._menuItemOpenFolder = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this._menuItemOpenMinecraftSaveFolder = new System.Windows.Forms.ToolStripMenuItem();
|
this._menuItemOpenMinecraftSaveFolder = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator12 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this._menuItemOpenInExplorer = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this._menuItemSave = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this._menuItemRefresh = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this._menuItemRecentFiles = new System.Windows.Forms.ToolStripMenuItem();
|
this._menuItemRecentFiles = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this._menuItemRecentFolders = new System.Windows.Forms.ToolStripMenuItem();
|
this._menuItemRecentFolders = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this._menuItemExit = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this._menuItemCut = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this._menuItemCopy = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this._menuItemPaste = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this._menuItemRename = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this._menuItemEditValue = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this._menuItemDelete = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this._menuItemMoveUp = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this._menuItemMoveDown = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.searchToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.searchToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this._menuItemFind = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this._menuItemFindNext = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.replaceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.replaceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.findBlockToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this._menuItemAbout = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
|
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
|
||||||
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
|
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
|
||||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
|
||||||
this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
|
|
||||||
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
|
||||||
this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
|
|
||||||
this.BottomToolStripPanel = new System.Windows.Forms.ToolStripPanel();
|
|
||||||
this.TopToolStripPanel = new System.Windows.Forms.ToolStripPanel();
|
|
||||||
this.RightToolStripPanel = new System.Windows.Forms.ToolStripPanel();
|
|
||||||
this.LeftToolStripPanel = new System.Windows.Forms.ToolStripPanel();
|
|
||||||
this.ContentPanel = new System.Windows.Forms.ToolStripContentPanel();
|
|
||||||
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
|
|
||||||
this.testToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this._buttonOpen = new System.Windows.Forms.ToolStripButton();
|
this._buttonOpen = new System.Windows.Forms.ToolStripButton();
|
||||||
this._buttonOpenFolder = new System.Windows.Forms.ToolStripButton();
|
this._buttonOpenFolder = new System.Windows.Forms.ToolStripButton();
|
||||||
this._buttonSave = new System.Windows.Forms.ToolStripButton();
|
this._buttonSave = new System.Windows.Forms.ToolStripButton();
|
||||||
this._buttonRefresh = new System.Windows.Forms.ToolStripButton();
|
this._buttonRefresh = new System.Windows.Forms.ToolStripButton();
|
||||||
|
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this._buttonCut = new System.Windows.Forms.ToolStripButton();
|
this._buttonCut = new System.Windows.Forms.ToolStripButton();
|
||||||
this._buttonCopy = new System.Windows.Forms.ToolStripButton();
|
this._buttonCopy = new System.Windows.Forms.ToolStripButton();
|
||||||
this._buttonPaste = new System.Windows.Forms.ToolStripButton();
|
this._buttonPaste = new System.Windows.Forms.ToolStripButton();
|
||||||
|
this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this._buttonRename = new System.Windows.Forms.ToolStripButton();
|
this._buttonRename = new System.Windows.Forms.ToolStripButton();
|
||||||
this._buttonEdit = new System.Windows.Forms.ToolStripButton();
|
this._buttonEdit = new System.Windows.Forms.ToolStripButton();
|
||||||
this._buttonDelete = new System.Windows.Forms.ToolStripButton();
|
this._buttonDelete = new System.Windows.Forms.ToolStripButton();
|
||||||
|
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this._buttonAddTagByte = new System.Windows.Forms.ToolStripButton();
|
this._buttonAddTagByte = new System.Windows.Forms.ToolStripButton();
|
||||||
this._buttonAddTagShort = new System.Windows.Forms.ToolStripButton();
|
this._buttonAddTagShort = new System.Windows.Forms.ToolStripButton();
|
||||||
this._buttonAddTagInt = new System.Windows.Forms.ToolStripButton();
|
this._buttonAddTagInt = new System.Windows.Forms.ToolStripButton();
|
||||||
|
@ -78,26 +90,17 @@
|
||||||
this._buttonAddTagString = new System.Windows.Forms.ToolStripButton();
|
this._buttonAddTagString = new System.Windows.Forms.ToolStripButton();
|
||||||
this._buttonAddTagList = new System.Windows.Forms.ToolStripButton();
|
this._buttonAddTagList = new System.Windows.Forms.ToolStripButton();
|
||||||
this._buttonAddTagCompound = new System.Windows.Forms.ToolStripButton();
|
this._buttonAddTagCompound = new System.Windows.Forms.ToolStripButton();
|
||||||
|
this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this._buttonFindNext = new System.Windows.Forms.ToolStripButton();
|
this._buttonFindNext = new System.Windows.Forms.ToolStripButton();
|
||||||
this._menuItemOpen = new System.Windows.Forms.ToolStripMenuItem();
|
this.BottomToolStripPanel = new System.Windows.Forms.ToolStripPanel();
|
||||||
this._menuItemOpenFolder = new System.Windows.Forms.ToolStripMenuItem();
|
this.TopToolStripPanel = new System.Windows.Forms.ToolStripPanel();
|
||||||
this._menuItemSave = new System.Windows.Forms.ToolStripMenuItem();
|
this.RightToolStripPanel = new System.Windows.Forms.ToolStripPanel();
|
||||||
this._menuItemRefresh = new System.Windows.Forms.ToolStripMenuItem();
|
this.LeftToolStripPanel = new System.Windows.Forms.ToolStripPanel();
|
||||||
this._menuItemExit = new System.Windows.Forms.ToolStripMenuItem();
|
this.ContentPanel = new System.Windows.Forms.ToolStripContentPanel();
|
||||||
this._menuItemCut = new System.Windows.Forms.ToolStripMenuItem();
|
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||||
this._menuItemCopy = new System.Windows.Forms.ToolStripMenuItem();
|
this.testToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this._menuItemPaste = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this._menuItemRename = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this._menuItemEditValue = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this._menuItemDelete = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this._menuItemMoveUp = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this._menuItemMoveDown = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this._menuItemFind = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this._menuItemFindNext = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this._menuItemAbout = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator();
|
|
||||||
this.findBlockToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this._nodeTree = new NBTExplorer.Vendor.MultiSelectTreeView.MultiSelectTreeView();
|
this._nodeTree = new NBTExplorer.Vendor.MultiSelectTreeView.MultiSelectTreeView();
|
||||||
|
this._buttonAddTagLongArray = new System.Windows.Forms.ToolStripButton();
|
||||||
this.menuStrip1.SuspendLayout();
|
this.menuStrip1.SuspendLayout();
|
||||||
this.toolStrip1.SuspendLayout();
|
this.toolStrip1.SuspendLayout();
|
||||||
this.contextMenuStrip1.SuspendLayout();
|
this.contextMenuStrip1.SuspendLayout();
|
||||||
|
@ -122,6 +125,8 @@
|
||||||
this._menuItemOpen,
|
this._menuItemOpen,
|
||||||
this._menuItemOpenFolder,
|
this._menuItemOpenFolder,
|
||||||
this._menuItemOpenMinecraftSaveFolder,
|
this._menuItemOpenMinecraftSaveFolder,
|
||||||
|
this.toolStripSeparator12,
|
||||||
|
this._menuItemOpenInExplorer,
|
||||||
this.toolStripSeparator3,
|
this.toolStripSeparator3,
|
||||||
this._menuItemSave,
|
this._menuItemSave,
|
||||||
this._menuItemRefresh,
|
this._menuItemRefresh,
|
||||||
|
@ -134,38 +139,94 @@
|
||||||
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
|
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
|
||||||
this.fileToolStripMenuItem.Text = "&File";
|
this.fileToolStripMenuItem.Text = "&File";
|
||||||
//
|
//
|
||||||
|
// _menuItemOpen
|
||||||
|
//
|
||||||
|
this._menuItemOpen.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemOpen.Image")));
|
||||||
|
this._menuItemOpen.Name = "_menuItemOpen";
|
||||||
|
this._menuItemOpen.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O)));
|
||||||
|
this._menuItemOpen.Size = new System.Drawing.Size(233, 22);
|
||||||
|
this._menuItemOpen.Text = "&Open...";
|
||||||
|
//
|
||||||
|
// _menuItemOpenFolder
|
||||||
|
//
|
||||||
|
this._menuItemOpenFolder.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemOpenFolder.Image")));
|
||||||
|
this._menuItemOpenFolder.Name = "_menuItemOpenFolder";
|
||||||
|
this._menuItemOpenFolder.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
|
||||||
|
| System.Windows.Forms.Keys.O)));
|
||||||
|
this._menuItemOpenFolder.Size = new System.Drawing.Size(233, 22);
|
||||||
|
this._menuItemOpenFolder.Text = "Open &Folder...";
|
||||||
|
//
|
||||||
// _menuItemOpenMinecraftSaveFolder
|
// _menuItemOpenMinecraftSaveFolder
|
||||||
//
|
//
|
||||||
this._menuItemOpenMinecraftSaveFolder.Name = "_menuItemOpenMinecraftSaveFolder";
|
this._menuItemOpenMinecraftSaveFolder.Name = "_menuItemOpenMinecraftSaveFolder";
|
||||||
this._menuItemOpenMinecraftSaveFolder.Size = new System.Drawing.Size(223, 22);
|
this._menuItemOpenMinecraftSaveFolder.Size = new System.Drawing.Size(233, 22);
|
||||||
this._menuItemOpenMinecraftSaveFolder.Text = "Open &Minecraft Save Folder";
|
this._menuItemOpenMinecraftSaveFolder.Text = "Open &Minecraft Save Folder";
|
||||||
//
|
//
|
||||||
|
// toolStripSeparator12
|
||||||
|
//
|
||||||
|
this.toolStripSeparator12.Name = "toolStripSeparator12";
|
||||||
|
this.toolStripSeparator12.Size = new System.Drawing.Size(230, 6);
|
||||||
|
//
|
||||||
|
// _menuItemOpenInExplorer
|
||||||
|
//
|
||||||
|
this._menuItemOpenInExplorer.Enabled = false;
|
||||||
|
this._menuItemOpenInExplorer.Name = "_menuItemOpenInExplorer";
|
||||||
|
this._menuItemOpenInExplorer.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
|
||||||
|
| System.Windows.Forms.Keys.E)));
|
||||||
|
this._menuItemOpenInExplorer.Size = new System.Drawing.Size(233, 22);
|
||||||
|
this._menuItemOpenInExplorer.Text = "Open in &Explorer";
|
||||||
|
//
|
||||||
// toolStripSeparator3
|
// toolStripSeparator3
|
||||||
//
|
//
|
||||||
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
||||||
this.toolStripSeparator3.Size = new System.Drawing.Size(220, 6);
|
this.toolStripSeparator3.Size = new System.Drawing.Size(230, 6);
|
||||||
|
//
|
||||||
|
// _menuItemSave
|
||||||
|
//
|
||||||
|
this._menuItemSave.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemSave.Image")));
|
||||||
|
this._menuItemSave.Name = "_menuItemSave";
|
||||||
|
this._menuItemSave.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));
|
||||||
|
this._menuItemSave.Size = new System.Drawing.Size(233, 22);
|
||||||
|
this._menuItemSave.Text = "&Save";
|
||||||
|
//
|
||||||
|
// _menuItemRefresh
|
||||||
|
//
|
||||||
|
this._menuItemRefresh.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemRefresh.Image")));
|
||||||
|
this._menuItemRefresh.Name = "_menuItemRefresh";
|
||||||
|
this._menuItemRefresh.ShortcutKeys = System.Windows.Forms.Keys.F5;
|
||||||
|
this._menuItemRefresh.Size = new System.Drawing.Size(233, 22);
|
||||||
|
this._menuItemRefresh.Text = "Refresh";
|
||||||
|
this._menuItemRefresh.Click += new System.EventHandler(this.refreshToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator4
|
// toolStripSeparator4
|
||||||
//
|
//
|
||||||
this.toolStripSeparator4.Name = "toolStripSeparator4";
|
this.toolStripSeparator4.Name = "toolStripSeparator4";
|
||||||
this.toolStripSeparator4.Size = new System.Drawing.Size(220, 6);
|
this.toolStripSeparator4.Size = new System.Drawing.Size(230, 6);
|
||||||
//
|
//
|
||||||
// _menuItemRecentFiles
|
// _menuItemRecentFiles
|
||||||
//
|
//
|
||||||
this._menuItemRecentFiles.Name = "_menuItemRecentFiles";
|
this._menuItemRecentFiles.Name = "_menuItemRecentFiles";
|
||||||
this._menuItemRecentFiles.Size = new System.Drawing.Size(223, 22);
|
this._menuItemRecentFiles.Size = new System.Drawing.Size(233, 22);
|
||||||
this._menuItemRecentFiles.Text = "Recent Files";
|
this._menuItemRecentFiles.Text = "Recent Files";
|
||||||
//
|
//
|
||||||
// _menuItemRecentFolders
|
// _menuItemRecentFolders
|
||||||
//
|
//
|
||||||
this._menuItemRecentFolders.Name = "_menuItemRecentFolders";
|
this._menuItemRecentFolders.Name = "_menuItemRecentFolders";
|
||||||
this._menuItemRecentFolders.Size = new System.Drawing.Size(223, 22);
|
this._menuItemRecentFolders.Size = new System.Drawing.Size(233, 22);
|
||||||
this._menuItemRecentFolders.Text = "Recent Folders";
|
this._menuItemRecentFolders.Text = "Recent Folders";
|
||||||
//
|
//
|
||||||
// toolStripSeparator8
|
// toolStripSeparator8
|
||||||
//
|
//
|
||||||
this.toolStripSeparator8.Name = "toolStripSeparator8";
|
this.toolStripSeparator8.Name = "toolStripSeparator8";
|
||||||
this.toolStripSeparator8.Size = new System.Drawing.Size(220, 6);
|
this.toolStripSeparator8.Size = new System.Drawing.Size(230, 6);
|
||||||
|
//
|
||||||
|
// _menuItemExit
|
||||||
|
//
|
||||||
|
this._menuItemExit.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemExit.Image")));
|
||||||
|
this._menuItemExit.Name = "_menuItemExit";
|
||||||
|
this._menuItemExit.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.F4)));
|
||||||
|
this._menuItemExit.Size = new System.Drawing.Size(233, 22);
|
||||||
|
this._menuItemExit.Text = "E&xit";
|
||||||
//
|
//
|
||||||
// editToolStripMenuItem
|
// editToolStripMenuItem
|
||||||
//
|
//
|
||||||
|
@ -185,16 +246,82 @@
|
||||||
this.editToolStripMenuItem.Size = new System.Drawing.Size(39, 20);
|
this.editToolStripMenuItem.Size = new System.Drawing.Size(39, 20);
|
||||||
this.editToolStripMenuItem.Text = "&Edit";
|
this.editToolStripMenuItem.Text = "&Edit";
|
||||||
//
|
//
|
||||||
|
// _menuItemCut
|
||||||
|
//
|
||||||
|
this._menuItemCut.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemCut.Image")));
|
||||||
|
this._menuItemCut.Name = "_menuItemCut";
|
||||||
|
this._menuItemCut.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.X)));
|
||||||
|
this._menuItemCut.Size = new System.Drawing.Size(203, 22);
|
||||||
|
this._menuItemCut.Text = "Cu&t";
|
||||||
|
//
|
||||||
|
// _menuItemCopy
|
||||||
|
//
|
||||||
|
this._menuItemCopy.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemCopy.Image")));
|
||||||
|
this._menuItemCopy.Name = "_menuItemCopy";
|
||||||
|
this._menuItemCopy.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C)));
|
||||||
|
this._menuItemCopy.Size = new System.Drawing.Size(203, 22);
|
||||||
|
this._menuItemCopy.Text = "&Copy";
|
||||||
|
//
|
||||||
|
// _menuItemPaste
|
||||||
|
//
|
||||||
|
this._menuItemPaste.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemPaste.Image")));
|
||||||
|
this._menuItemPaste.Name = "_menuItemPaste";
|
||||||
|
this._menuItemPaste.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.V)));
|
||||||
|
this._menuItemPaste.Size = new System.Drawing.Size(203, 22);
|
||||||
|
this._menuItemPaste.Text = "&Paste";
|
||||||
|
//
|
||||||
// toolStripSeparator7
|
// toolStripSeparator7
|
||||||
//
|
//
|
||||||
this.toolStripSeparator7.Name = "toolStripSeparator7";
|
this.toolStripSeparator7.Name = "toolStripSeparator7";
|
||||||
this.toolStripSeparator7.Size = new System.Drawing.Size(200, 6);
|
this.toolStripSeparator7.Size = new System.Drawing.Size(200, 6);
|
||||||
//
|
//
|
||||||
|
// _menuItemRename
|
||||||
|
//
|
||||||
|
this._menuItemRename.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemRename.Image")));
|
||||||
|
this._menuItemRename.Name = "_menuItemRename";
|
||||||
|
this._menuItemRename.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.R)));
|
||||||
|
this._menuItemRename.Size = new System.Drawing.Size(203, 22);
|
||||||
|
this._menuItemRename.Text = "&Rename";
|
||||||
|
//
|
||||||
|
// _menuItemEditValue
|
||||||
|
//
|
||||||
|
this._menuItemEditValue.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemEditValue.Image")));
|
||||||
|
this._menuItemEditValue.Name = "_menuItemEditValue";
|
||||||
|
this._menuItemEditValue.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.E)));
|
||||||
|
this._menuItemEditValue.Size = new System.Drawing.Size(203, 22);
|
||||||
|
this._menuItemEditValue.Text = "&Edit Value";
|
||||||
|
//
|
||||||
|
// _menuItemDelete
|
||||||
|
//
|
||||||
|
this._menuItemDelete.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemDelete.Image")));
|
||||||
|
this._menuItemDelete.Name = "_menuItemDelete";
|
||||||
|
this._menuItemDelete.ShortcutKeys = System.Windows.Forms.Keys.Delete;
|
||||||
|
this._menuItemDelete.Size = new System.Drawing.Size(203, 22);
|
||||||
|
this._menuItemDelete.Text = "&Delete";
|
||||||
|
//
|
||||||
// toolStripSeparator10
|
// toolStripSeparator10
|
||||||
//
|
//
|
||||||
this.toolStripSeparator10.Name = "toolStripSeparator10";
|
this.toolStripSeparator10.Name = "toolStripSeparator10";
|
||||||
this.toolStripSeparator10.Size = new System.Drawing.Size(200, 6);
|
this.toolStripSeparator10.Size = new System.Drawing.Size(200, 6);
|
||||||
//
|
//
|
||||||
|
// _menuItemMoveUp
|
||||||
|
//
|
||||||
|
this._menuItemMoveUp.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemMoveUp.Image")));
|
||||||
|
this._menuItemMoveUp.Name = "_menuItemMoveUp";
|
||||||
|
this._menuItemMoveUp.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Up)));
|
||||||
|
this._menuItemMoveUp.Size = new System.Drawing.Size(203, 22);
|
||||||
|
this._menuItemMoveUp.Text = "Move &Up";
|
||||||
|
this._menuItemMoveUp.Click += new System.EventHandler(this._menuItemMoveUp_Click);
|
||||||
|
//
|
||||||
|
// _menuItemMoveDown
|
||||||
|
//
|
||||||
|
this._menuItemMoveDown.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemMoveDown.Image")));
|
||||||
|
this._menuItemMoveDown.Name = "_menuItemMoveDown";
|
||||||
|
this._menuItemMoveDown.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Down)));
|
||||||
|
this._menuItemMoveDown.Size = new System.Drawing.Size(203, 22);
|
||||||
|
this._menuItemMoveDown.Text = "Move Do&wn";
|
||||||
|
this._menuItemMoveDown.Click += new System.EventHandler(this._menuItemMoveDown_Click);
|
||||||
|
//
|
||||||
// searchToolStripMenuItem
|
// searchToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.searchToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.searchToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
@ -208,6 +335,22 @@
|
||||||
this.searchToolStripMenuItem.Size = new System.Drawing.Size(54, 20);
|
this.searchToolStripMenuItem.Size = new System.Drawing.Size(54, 20);
|
||||||
this.searchToolStripMenuItem.Text = "&Search";
|
this.searchToolStripMenuItem.Text = "&Search";
|
||||||
//
|
//
|
||||||
|
// _menuItemFind
|
||||||
|
//
|
||||||
|
this._menuItemFind.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemFind.Image")));
|
||||||
|
this._menuItemFind.Name = "_menuItemFind";
|
||||||
|
this._menuItemFind.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F)));
|
||||||
|
this._menuItemFind.Size = new System.Drawing.Size(167, 22);
|
||||||
|
this._menuItemFind.Text = "&Find...";
|
||||||
|
//
|
||||||
|
// _menuItemFindNext
|
||||||
|
//
|
||||||
|
this._menuItemFindNext.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemFindNext.Image")));
|
||||||
|
this._menuItemFindNext.Name = "_menuItemFindNext";
|
||||||
|
this._menuItemFindNext.ShortcutKeys = System.Windows.Forms.Keys.F3;
|
||||||
|
this._menuItemFindNext.Size = new System.Drawing.Size(167, 22);
|
||||||
|
this._menuItemFindNext.Text = "Find &Next";
|
||||||
|
//
|
||||||
// toolStripSeparator9
|
// toolStripSeparator9
|
||||||
//
|
//
|
||||||
this.toolStripSeparator9.Name = "toolStripSeparator9";
|
this.toolStripSeparator9.Name = "toolStripSeparator9";
|
||||||
|
@ -221,6 +364,18 @@
|
||||||
this.replaceToolStripMenuItem.Text = "&Replace...";
|
this.replaceToolStripMenuItem.Text = "&Replace...";
|
||||||
this.replaceToolStripMenuItem.Click += new System.EventHandler(this.replaceToolStripMenuItem_Click);
|
this.replaceToolStripMenuItem.Click += new System.EventHandler(this.replaceToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
|
// toolStripSeparator11
|
||||||
|
//
|
||||||
|
this.toolStripSeparator11.Name = "toolStripSeparator11";
|
||||||
|
this.toolStripSeparator11.Size = new System.Drawing.Size(164, 6);
|
||||||
|
//
|
||||||
|
// findBlockToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.findBlockToolStripMenuItem.Name = "findBlockToolStripMenuItem";
|
||||||
|
this.findBlockToolStripMenuItem.Size = new System.Drawing.Size(167, 22);
|
||||||
|
this.findBlockToolStripMenuItem.Text = "&Chunk Finder...";
|
||||||
|
this.findBlockToolStripMenuItem.Click += new System.EventHandler(this.findBlockToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
// helpToolStripMenuItem
|
// helpToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
@ -229,6 +384,14 @@
|
||||||
this.helpToolStripMenuItem.Size = new System.Drawing.Size(44, 20);
|
this.helpToolStripMenuItem.Size = new System.Drawing.Size(44, 20);
|
||||||
this.helpToolStripMenuItem.Text = "&Help";
|
this.helpToolStripMenuItem.Text = "&Help";
|
||||||
//
|
//
|
||||||
|
// _menuItemAbout
|
||||||
|
//
|
||||||
|
this._menuItemAbout.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemAbout.Image")));
|
||||||
|
this._menuItemAbout.Name = "_menuItemAbout";
|
||||||
|
this._menuItemAbout.ShortcutKeys = System.Windows.Forms.Keys.F1;
|
||||||
|
this._menuItemAbout.Size = new System.Drawing.Size(126, 22);
|
||||||
|
this._menuItemAbout.Text = "&About";
|
||||||
|
//
|
||||||
// imageList1
|
// imageList1
|
||||||
//
|
//
|
||||||
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
|
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
|
||||||
|
@ -249,6 +412,8 @@
|
||||||
this.imageList1.Images.SetKeyName(13, "map.png");
|
this.imageList1.Images.SetKeyName(13, "map.png");
|
||||||
this.imageList1.Images.SetKeyName(14, "edit-code-i.png");
|
this.imageList1.Images.SetKeyName(14, "edit-code-i.png");
|
||||||
this.imageList1.Images.SetKeyName(15, "question-white.png");
|
this.imageList1.Images.SetKeyName(15, "question-white.png");
|
||||||
|
this.imageList1.Images.SetKeyName(16, "edit-code-s.png");
|
||||||
|
this.imageList1.Images.SetKeyName(17, "edit-code-l.png");
|
||||||
//
|
//
|
||||||
// toolStrip1
|
// toolStrip1
|
||||||
//
|
//
|
||||||
|
@ -274,6 +439,7 @@
|
||||||
this._buttonAddTagDouble,
|
this._buttonAddTagDouble,
|
||||||
this._buttonAddTagByteArray,
|
this._buttonAddTagByteArray,
|
||||||
this._buttonAddTagIntArray,
|
this._buttonAddTagIntArray,
|
||||||
|
this._buttonAddTagLongArray,
|
||||||
this._buttonAddTagString,
|
this._buttonAddTagString,
|
||||||
this._buttonAddTagList,
|
this._buttonAddTagList,
|
||||||
this._buttonAddTagCompound,
|
this._buttonAddTagCompound,
|
||||||
|
@ -285,75 +451,6 @@
|
||||||
this.toolStrip1.Stretch = true;
|
this.toolStrip1.Stretch = true;
|
||||||
this.toolStrip1.TabIndex = 0;
|
this.toolStrip1.TabIndex = 0;
|
||||||
//
|
//
|
||||||
// toolStripSeparator1
|
|
||||||
//
|
|
||||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
|
||||||
this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25);
|
|
||||||
//
|
|
||||||
// toolStripSeparator6
|
|
||||||
//
|
|
||||||
this.toolStripSeparator6.Name = "toolStripSeparator6";
|
|
||||||
this.toolStripSeparator6.Size = new System.Drawing.Size(6, 25);
|
|
||||||
//
|
|
||||||
// toolStripSeparator2
|
|
||||||
//
|
|
||||||
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
|
||||||
this.toolStripSeparator2.Size = new System.Drawing.Size(6, 25);
|
|
||||||
//
|
|
||||||
// toolStripSeparator5
|
|
||||||
//
|
|
||||||
this.toolStripSeparator5.Name = "toolStripSeparator5";
|
|
||||||
this.toolStripSeparator5.Size = new System.Drawing.Size(6, 25);
|
|
||||||
//
|
|
||||||
// BottomToolStripPanel
|
|
||||||
//
|
|
||||||
this.BottomToolStripPanel.Location = new System.Drawing.Point(0, 0);
|
|
||||||
this.BottomToolStripPanel.Name = "BottomToolStripPanel";
|
|
||||||
this.BottomToolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
|
||||||
this.BottomToolStripPanel.RowMargin = new System.Windows.Forms.Padding(3, 0, 0, 0);
|
|
||||||
this.BottomToolStripPanel.Size = new System.Drawing.Size(0, 0);
|
|
||||||
//
|
|
||||||
// TopToolStripPanel
|
|
||||||
//
|
|
||||||
this.TopToolStripPanel.Location = new System.Drawing.Point(0, 0);
|
|
||||||
this.TopToolStripPanel.Name = "TopToolStripPanel";
|
|
||||||
this.TopToolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
|
||||||
this.TopToolStripPanel.RowMargin = new System.Windows.Forms.Padding(3, 0, 0, 0);
|
|
||||||
this.TopToolStripPanel.Size = new System.Drawing.Size(0, 0);
|
|
||||||
//
|
|
||||||
// RightToolStripPanel
|
|
||||||
//
|
|
||||||
this.RightToolStripPanel.Location = new System.Drawing.Point(0, 0);
|
|
||||||
this.RightToolStripPanel.Name = "RightToolStripPanel";
|
|
||||||
this.RightToolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
|
||||||
this.RightToolStripPanel.RowMargin = new System.Windows.Forms.Padding(3, 0, 0, 0);
|
|
||||||
this.RightToolStripPanel.Size = new System.Drawing.Size(0, 0);
|
|
||||||
//
|
|
||||||
// LeftToolStripPanel
|
|
||||||
//
|
|
||||||
this.LeftToolStripPanel.Location = new System.Drawing.Point(0, 0);
|
|
||||||
this.LeftToolStripPanel.Name = "LeftToolStripPanel";
|
|
||||||
this.LeftToolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
|
||||||
this.LeftToolStripPanel.RowMargin = new System.Windows.Forms.Padding(3, 0, 0, 0);
|
|
||||||
this.LeftToolStripPanel.Size = new System.Drawing.Size(0, 0);
|
|
||||||
//
|
|
||||||
// ContentPanel
|
|
||||||
//
|
|
||||||
this.ContentPanel.Size = new System.Drawing.Size(562, 376);
|
|
||||||
//
|
|
||||||
// contextMenuStrip1
|
|
||||||
//
|
|
||||||
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
|
||||||
this.testToolStripMenuItem});
|
|
||||||
this.contextMenuStrip1.Name = "contextMenuStrip1";
|
|
||||||
this.contextMenuStrip1.Size = new System.Drawing.Size(97, 26);
|
|
||||||
//
|
|
||||||
// testToolStripMenuItem
|
|
||||||
//
|
|
||||||
this.testToolStripMenuItem.Name = "testToolStripMenuItem";
|
|
||||||
this.testToolStripMenuItem.Size = new System.Drawing.Size(96, 22);
|
|
||||||
this.testToolStripMenuItem.Text = "Test";
|
|
||||||
//
|
|
||||||
// _buttonOpen
|
// _buttonOpen
|
||||||
//
|
//
|
||||||
this._buttonOpen.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
this._buttonOpen.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
@ -391,6 +488,11 @@
|
||||||
this._buttonRefresh.Text = "Refresh Content From Disk";
|
this._buttonRefresh.Text = "Refresh Content From Disk";
|
||||||
this._buttonRefresh.Click += new System.EventHandler(this._buttonRefresh_Click);
|
this._buttonRefresh.Click += new System.EventHandler(this._buttonRefresh_Click);
|
||||||
//
|
//
|
||||||
|
// toolStripSeparator1
|
||||||
|
//
|
||||||
|
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||||
|
this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25);
|
||||||
|
//
|
||||||
// _buttonCut
|
// _buttonCut
|
||||||
//
|
//
|
||||||
this._buttonCut.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
this._buttonCut.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
@ -418,6 +520,11 @@
|
||||||
this._buttonPaste.Size = new System.Drawing.Size(23, 22);
|
this._buttonPaste.Size = new System.Drawing.Size(23, 22);
|
||||||
this._buttonPaste.Text = "Paste";
|
this._buttonPaste.Text = "Paste";
|
||||||
//
|
//
|
||||||
|
// toolStripSeparator6
|
||||||
|
//
|
||||||
|
this.toolStripSeparator6.Name = "toolStripSeparator6";
|
||||||
|
this.toolStripSeparator6.Size = new System.Drawing.Size(6, 25);
|
||||||
|
//
|
||||||
// _buttonRename
|
// _buttonRename
|
||||||
//
|
//
|
||||||
this._buttonRename.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
this._buttonRename.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
@ -445,6 +552,11 @@
|
||||||
this._buttonDelete.Size = new System.Drawing.Size(23, 22);
|
this._buttonDelete.Size = new System.Drawing.Size(23, 22);
|
||||||
this._buttonDelete.Text = "Delete Tag";
|
this._buttonDelete.Text = "Delete Tag";
|
||||||
//
|
//
|
||||||
|
// toolStripSeparator2
|
||||||
|
//
|
||||||
|
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
||||||
|
this.toolStripSeparator2.Size = new System.Drawing.Size(6, 25);
|
||||||
|
//
|
||||||
// _buttonAddTagByte
|
// _buttonAddTagByte
|
||||||
//
|
//
|
||||||
this._buttonAddTagByte.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
this._buttonAddTagByte.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
@ -545,6 +657,11 @@
|
||||||
this._buttonAddTagCompound.Size = new System.Drawing.Size(23, 22);
|
this._buttonAddTagCompound.Size = new System.Drawing.Size(23, 22);
|
||||||
this._buttonAddTagCompound.Text = "Add Compound Tag";
|
this._buttonAddTagCompound.Text = "Add Compound Tag";
|
||||||
//
|
//
|
||||||
|
// toolStripSeparator5
|
||||||
|
//
|
||||||
|
this.toolStripSeparator5.Name = "toolStripSeparator5";
|
||||||
|
this.toolStripSeparator5.Size = new System.Drawing.Size(6, 25);
|
||||||
|
//
|
||||||
// _buttonFindNext
|
// _buttonFindNext
|
||||||
//
|
//
|
||||||
this._buttonFindNext.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
this._buttonFindNext.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
@ -554,149 +671,54 @@
|
||||||
this._buttonFindNext.Size = new System.Drawing.Size(23, 22);
|
this._buttonFindNext.Size = new System.Drawing.Size(23, 22);
|
||||||
this._buttonFindNext.Text = "Find / Find Next";
|
this._buttonFindNext.Text = "Find / Find Next";
|
||||||
//
|
//
|
||||||
// _menuItemOpen
|
// BottomToolStripPanel
|
||||||
//
|
//
|
||||||
this._menuItemOpen.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemOpen.Image")));
|
this.BottomToolStripPanel.Location = new System.Drawing.Point(0, 0);
|
||||||
this._menuItemOpen.Name = "_menuItemOpen";
|
this.BottomToolStripPanel.Name = "BottomToolStripPanel";
|
||||||
this._menuItemOpen.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O)));
|
this.BottomToolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||||
this._menuItemOpen.Size = new System.Drawing.Size(223, 22);
|
this.BottomToolStripPanel.RowMargin = new System.Windows.Forms.Padding(3, 0, 0, 0);
|
||||||
this._menuItemOpen.Text = "&Open...";
|
this.BottomToolStripPanel.Size = new System.Drawing.Size(0, 0);
|
||||||
//
|
//
|
||||||
// _menuItemOpenFolder
|
// TopToolStripPanel
|
||||||
//
|
//
|
||||||
this._menuItemOpenFolder.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemOpenFolder.Image")));
|
this.TopToolStripPanel.Location = new System.Drawing.Point(0, 0);
|
||||||
this._menuItemOpenFolder.Name = "_menuItemOpenFolder";
|
this.TopToolStripPanel.Name = "TopToolStripPanel";
|
||||||
this._menuItemOpenFolder.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
|
this.TopToolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||||
| System.Windows.Forms.Keys.O)));
|
this.TopToolStripPanel.RowMargin = new System.Windows.Forms.Padding(3, 0, 0, 0);
|
||||||
this._menuItemOpenFolder.Size = new System.Drawing.Size(223, 22);
|
this.TopToolStripPanel.Size = new System.Drawing.Size(0, 0);
|
||||||
this._menuItemOpenFolder.Text = "Open &Folder...";
|
|
||||||
//
|
//
|
||||||
// _menuItemSave
|
// RightToolStripPanel
|
||||||
//
|
//
|
||||||
this._menuItemSave.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemSave.Image")));
|
this.RightToolStripPanel.Location = new System.Drawing.Point(0, 0);
|
||||||
this._menuItemSave.Name = "_menuItemSave";
|
this.RightToolStripPanel.Name = "RightToolStripPanel";
|
||||||
this._menuItemSave.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));
|
this.RightToolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||||
this._menuItemSave.Size = new System.Drawing.Size(223, 22);
|
this.RightToolStripPanel.RowMargin = new System.Windows.Forms.Padding(3, 0, 0, 0);
|
||||||
this._menuItemSave.Text = "&Save";
|
this.RightToolStripPanel.Size = new System.Drawing.Size(0, 0);
|
||||||
//
|
//
|
||||||
// _menuItemRefresh
|
// LeftToolStripPanel
|
||||||
//
|
//
|
||||||
this._menuItemRefresh.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemRefresh.Image")));
|
this.LeftToolStripPanel.Location = new System.Drawing.Point(0, 0);
|
||||||
this._menuItemRefresh.Name = "_menuItemRefresh";
|
this.LeftToolStripPanel.Name = "LeftToolStripPanel";
|
||||||
this._menuItemRefresh.ShortcutKeys = System.Windows.Forms.Keys.F5;
|
this.LeftToolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||||
this._menuItemRefresh.Size = new System.Drawing.Size(223, 22);
|
this.LeftToolStripPanel.RowMargin = new System.Windows.Forms.Padding(3, 0, 0, 0);
|
||||||
this._menuItemRefresh.Text = "Refresh";
|
this.LeftToolStripPanel.Size = new System.Drawing.Size(0, 0);
|
||||||
this._menuItemRefresh.Click += new System.EventHandler(this.refreshToolStripMenuItem_Click);
|
|
||||||
//
|
//
|
||||||
// _menuItemExit
|
// ContentPanel
|
||||||
//
|
//
|
||||||
this._menuItemExit.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemExit.Image")));
|
this.ContentPanel.Size = new System.Drawing.Size(562, 376);
|
||||||
this._menuItemExit.Name = "_menuItemExit";
|
|
||||||
this._menuItemExit.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.F4)));
|
|
||||||
this._menuItemExit.Size = new System.Drawing.Size(223, 22);
|
|
||||||
this._menuItemExit.Text = "E&xit";
|
|
||||||
//
|
//
|
||||||
// _menuItemCut
|
// contextMenuStrip1
|
||||||
//
|
//
|
||||||
this._menuItemCut.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemCut.Image")));
|
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this._menuItemCut.Name = "_menuItemCut";
|
this.testToolStripMenuItem});
|
||||||
this._menuItemCut.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.X)));
|
this.contextMenuStrip1.Name = "contextMenuStrip1";
|
||||||
this._menuItemCut.Size = new System.Drawing.Size(203, 22);
|
this.contextMenuStrip1.Size = new System.Drawing.Size(96, 26);
|
||||||
this._menuItemCut.Text = "Cu&t";
|
|
||||||
//
|
//
|
||||||
// _menuItemCopy
|
// testToolStripMenuItem
|
||||||
//
|
//
|
||||||
this._menuItemCopy.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemCopy.Image")));
|
this.testToolStripMenuItem.Name = "testToolStripMenuItem";
|
||||||
this._menuItemCopy.Name = "_menuItemCopy";
|
this.testToolStripMenuItem.Size = new System.Drawing.Size(95, 22);
|
||||||
this._menuItemCopy.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C)));
|
this.testToolStripMenuItem.Text = "Test";
|
||||||
this._menuItemCopy.Size = new System.Drawing.Size(203, 22);
|
|
||||||
this._menuItemCopy.Text = "&Copy";
|
|
||||||
//
|
|
||||||
// _menuItemPaste
|
|
||||||
//
|
|
||||||
this._menuItemPaste.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemPaste.Image")));
|
|
||||||
this._menuItemPaste.Name = "_menuItemPaste";
|
|
||||||
this._menuItemPaste.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.V)));
|
|
||||||
this._menuItemPaste.Size = new System.Drawing.Size(203, 22);
|
|
||||||
this._menuItemPaste.Text = "&Paste";
|
|
||||||
//
|
|
||||||
// _menuItemRename
|
|
||||||
//
|
|
||||||
this._menuItemRename.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemRename.Image")));
|
|
||||||
this._menuItemRename.Name = "_menuItemRename";
|
|
||||||
this._menuItemRename.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.R)));
|
|
||||||
this._menuItemRename.Size = new System.Drawing.Size(203, 22);
|
|
||||||
this._menuItemRename.Text = "&Rename";
|
|
||||||
//
|
|
||||||
// _menuItemEditValue
|
|
||||||
//
|
|
||||||
this._menuItemEditValue.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemEditValue.Image")));
|
|
||||||
this._menuItemEditValue.Name = "_menuItemEditValue";
|
|
||||||
this._menuItemEditValue.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.E)));
|
|
||||||
this._menuItemEditValue.Size = new System.Drawing.Size(203, 22);
|
|
||||||
this._menuItemEditValue.Text = "&Edit Value";
|
|
||||||
//
|
|
||||||
// _menuItemDelete
|
|
||||||
//
|
|
||||||
this._menuItemDelete.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemDelete.Image")));
|
|
||||||
this._menuItemDelete.Name = "_menuItemDelete";
|
|
||||||
this._menuItemDelete.ShortcutKeys = System.Windows.Forms.Keys.Delete;
|
|
||||||
this._menuItemDelete.Size = new System.Drawing.Size(203, 22);
|
|
||||||
this._menuItemDelete.Text = "&Delete";
|
|
||||||
//
|
|
||||||
// _menuItemMoveUp
|
|
||||||
//
|
|
||||||
this._menuItemMoveUp.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemMoveUp.Image")));
|
|
||||||
this._menuItemMoveUp.Name = "_menuItemMoveUp";
|
|
||||||
this._menuItemMoveUp.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Up)));
|
|
||||||
this._menuItemMoveUp.Size = new System.Drawing.Size(203, 22);
|
|
||||||
this._menuItemMoveUp.Text = "Move &Up";
|
|
||||||
this._menuItemMoveUp.Click += new System.EventHandler(this._menuItemMoveUp_Click);
|
|
||||||
//
|
|
||||||
// _menuItemMoveDown
|
|
||||||
//
|
|
||||||
this._menuItemMoveDown.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemMoveDown.Image")));
|
|
||||||
this._menuItemMoveDown.Name = "_menuItemMoveDown";
|
|
||||||
this._menuItemMoveDown.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Down)));
|
|
||||||
this._menuItemMoveDown.Size = new System.Drawing.Size(203, 22);
|
|
||||||
this._menuItemMoveDown.Text = "Move Do&wn";
|
|
||||||
this._menuItemMoveDown.Click += new System.EventHandler(this._menuItemMoveDown_Click);
|
|
||||||
//
|
|
||||||
// _menuItemFind
|
|
||||||
//
|
|
||||||
this._menuItemFind.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemFind.Image")));
|
|
||||||
this._menuItemFind.Name = "_menuItemFind";
|
|
||||||
this._menuItemFind.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F)));
|
|
||||||
this._menuItemFind.Size = new System.Drawing.Size(167, 22);
|
|
||||||
this._menuItemFind.Text = "&Find...";
|
|
||||||
//
|
|
||||||
// _menuItemFindNext
|
|
||||||
//
|
|
||||||
this._menuItemFindNext.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemFindNext.Image")));
|
|
||||||
this._menuItemFindNext.Name = "_menuItemFindNext";
|
|
||||||
this._menuItemFindNext.ShortcutKeys = System.Windows.Forms.Keys.F3;
|
|
||||||
this._menuItemFindNext.Size = new System.Drawing.Size(167, 22);
|
|
||||||
this._menuItemFindNext.Text = "Find &Next";
|
|
||||||
//
|
|
||||||
// _menuItemAbout
|
|
||||||
//
|
|
||||||
this._menuItemAbout.Image = ((System.Drawing.Image)(resources.GetObject("_menuItemAbout.Image")));
|
|
||||||
this._menuItemAbout.Name = "_menuItemAbout";
|
|
||||||
this._menuItemAbout.ShortcutKeys = System.Windows.Forms.Keys.F1;
|
|
||||||
this._menuItemAbout.Size = new System.Drawing.Size(126, 22);
|
|
||||||
this._menuItemAbout.Text = "&About";
|
|
||||||
//
|
|
||||||
// toolStripSeparator11
|
|
||||||
//
|
|
||||||
this.toolStripSeparator11.Name = "toolStripSeparator11";
|
|
||||||
this.toolStripSeparator11.Size = new System.Drawing.Size(164, 6);
|
|
||||||
//
|
|
||||||
// findBlockToolStripMenuItem
|
|
||||||
//
|
|
||||||
this.findBlockToolStripMenuItem.Name = "findBlockToolStripMenuItem";
|
|
||||||
this.findBlockToolStripMenuItem.Size = new System.Drawing.Size(167, 22);
|
|
||||||
this.findBlockToolStripMenuItem.Text = "&Chunk Finder...";
|
|
||||||
this.findBlockToolStripMenuItem.Click += new System.EventHandler(this.findBlockToolStripMenuItem_Click);
|
|
||||||
//
|
//
|
||||||
// _nodeTree
|
// _nodeTree
|
||||||
//
|
//
|
||||||
|
@ -715,6 +737,16 @@
|
||||||
this._nodeTree.Size = new System.Drawing.Size(619, 374);
|
this._nodeTree.Size = new System.Drawing.Size(619, 374);
|
||||||
this._nodeTree.TabIndex = 0;
|
this._nodeTree.TabIndex = 0;
|
||||||
//
|
//
|
||||||
|
// _buttonAddTagLongArray
|
||||||
|
//
|
||||||
|
this._buttonAddTagLongArray.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
this._buttonAddTagLongArray.Image = ((System.Drawing.Image)(resources.GetObject("_buttonAddTagLongArray.Image")));
|
||||||
|
this._buttonAddTagLongArray.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
|
||||||
|
this._buttonAddTagLongArray.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this._buttonAddTagLongArray.Name = "_buttonAddTagLongArray";
|
||||||
|
this._buttonAddTagLongArray.Size = new System.Drawing.Size(23, 22);
|
||||||
|
this._buttonAddTagLongArray.Text = "Add Long Array Tag";
|
||||||
|
//
|
||||||
// MainForm
|
// MainForm
|
||||||
//
|
//
|
||||||
this.AllowDrop = true;
|
this.AllowDrop = true;
|
||||||
|
@ -809,6 +841,9 @@
|
||||||
private System.Windows.Forms.ToolStripMenuItem _menuItemMoveDown;
|
private System.Windows.Forms.ToolStripMenuItem _menuItemMoveDown;
|
||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator11;
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator11;
|
||||||
private System.Windows.Forms.ToolStripMenuItem findBlockToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem findBlockToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator12;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem _menuItemOpenInExplorer;
|
||||||
|
private System.Windows.Forms.ToolStripButton _buttonAddTagLongArray;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@ using NBTExplorer.Controllers;
|
||||||
namespace NBTExplorer.Windows
|
namespace NBTExplorer.Windows
|
||||||
{
|
{
|
||||||
using Predicates = NodeTreeController.Predicates;
|
using Predicates = NodeTreeController.Predicates;
|
||||||
|
using NBTModel.Interop;
|
||||||
|
|
||||||
public partial class MainForm : Form
|
public partial class MainForm : Form
|
||||||
{
|
{
|
||||||
|
@ -38,6 +39,8 @@ namespace NBTExplorer.Windows
|
||||||
_tagIconIndex[TagType.TAG_LIST] = 8;
|
_tagIconIndex[TagType.TAG_LIST] = 8;
|
||||||
_tagIconIndex[TagType.TAG_COMPOUND] = 9;
|
_tagIconIndex[TagType.TAG_COMPOUND] = 9;
|
||||||
_tagIconIndex[TagType.TAG_INT_ARRAY] = 14;
|
_tagIconIndex[TagType.TAG_INT_ARRAY] = 14;
|
||||||
|
_tagIconIndex[TagType.TAG_SHORT_ARRAY] = 16;
|
||||||
|
_tagIconIndex[TagType.TAG_LONG_ARRAY] = 17;
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
catch (Exception e) {
|
||||||
Program.StaticInitFailure(e);
|
Program.StaticInitFailure(e);
|
||||||
|
@ -83,6 +86,7 @@ namespace NBTExplorer.Windows
|
||||||
_buttonAddTagIntArray.Click += _buttonAddTagIntArray_Click;
|
_buttonAddTagIntArray.Click += _buttonAddTagIntArray_Click;
|
||||||
_buttonAddTagList.Click += _buttonAddTagList_Click;
|
_buttonAddTagList.Click += _buttonAddTagList_Click;
|
||||||
_buttonAddTagLong.Click += _buttonAddTagLong_Click;
|
_buttonAddTagLong.Click += _buttonAddTagLong_Click;
|
||||||
|
_buttonAddTagLongArray.Click += _buttonAddTagLongArray_Click;
|
||||||
_buttonAddTagShort.Click += _buttonAddTagShort_Click;
|
_buttonAddTagShort.Click += _buttonAddTagShort_Click;
|
||||||
_buttonAddTagString.Click += _buttonAddTagString_Click;
|
_buttonAddTagString.Click += _buttonAddTagString_Click;
|
||||||
_buttonFindNext.Click += _buttonFindNext_Click;
|
_buttonFindNext.Click += _buttonFindNext_Click;
|
||||||
|
@ -101,6 +105,7 @@ namespace NBTExplorer.Windows
|
||||||
_menuItemFind.Click += _menuItemFind_Click;
|
_menuItemFind.Click += _menuItemFind_Click;
|
||||||
_menuItemFindNext.Click += _menuItemFindNext_Click;
|
_menuItemFindNext.Click += _menuItemFindNext_Click;
|
||||||
_menuItemAbout.Click += _menuItemAbout_Click;
|
_menuItemAbout.Click += _menuItemAbout_Click;
|
||||||
|
_menuItemOpenInExplorer.Click += _menuItemOpenInExplorer_Click;
|
||||||
|
|
||||||
string[] args = Environment.GetCommandLineArgs();
|
string[] args = Environment.GetCommandLineArgs();
|
||||||
if (args.Length > 1) {
|
if (args.Length > 1) {
|
||||||
|
@ -115,6 +120,19 @@ namespace NBTExplorer.Windows
|
||||||
UpdateOpenMenu();
|
UpdateOpenMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _menuItemOpenInExplorer_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (_nodeTree.SelectedNode.Tag is DirectoryDataNode) {
|
||||||
|
DirectoryDataNode ddNode = _nodeTree.SelectedNode.Tag as DirectoryDataNode;
|
||||||
|
try {
|
||||||
|
string path = (!Interop.IsWindows ? "file://" : "") + ddNode.NodeDirPath;
|
||||||
|
System.Diagnostics.Process.Start(path);
|
||||||
|
} catch (Win32Exception ex) {
|
||||||
|
MessageBox.Show(ex.Message, "Can't open directory", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void InitializeIconRegistry ()
|
private void InitializeIconRegistry ()
|
||||||
{
|
{
|
||||||
_iconRegistry = new IconRegistry();
|
_iconRegistry = new IconRegistry();
|
||||||
|
@ -136,6 +154,7 @@ namespace NBTExplorer.Windows
|
||||||
_iconRegistry.Register(typeof(CubicRegionDataNode), 11);
|
_iconRegistry.Register(typeof(CubicRegionDataNode), 11);
|
||||||
_iconRegistry.Register(typeof(NbtFileDataNode), 12);
|
_iconRegistry.Register(typeof(NbtFileDataNode), 12);
|
||||||
_iconRegistry.Register(typeof(TagIntArrayDataNode), 14);
|
_iconRegistry.Register(typeof(TagIntArrayDataNode), 14);
|
||||||
|
_iconRegistry.Register(typeof(TagShortArrayDataNode), 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OpenFile ()
|
private void OpenFile ()
|
||||||
|
@ -162,6 +181,23 @@ namespace NBTExplorer.Windows
|
||||||
if (!ConfirmAction("Open new folder anyway?"))
|
if (!ConfirmAction("Open new folder anyway?"))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if ((ModifierKeys & Keys.Control) > 0 && (ModifierKeys & Keys.Shift) == 0) {
|
||||||
|
// If the user is holding Control, use a file open dialog and open whichever directory has the selected file.
|
||||||
|
// But not if the user is also holding Shift, as Ctrl+Shift+O is the keyboard shortcut for this menu item.
|
||||||
|
using (OpenFileDialog ofd = new OpenFileDialog()) {
|
||||||
|
ofd.Title = "Select any file in the directory to open";
|
||||||
|
ofd.Filter = "All files (*.*)|*.*";
|
||||||
|
|
||||||
|
if (_openFolderPath != null)
|
||||||
|
ofd.InitialDirectory = _openFolderPath;
|
||||||
|
|
||||||
|
if (ofd.ShowDialog() == DialogResult.OK) {
|
||||||
|
_openFolderPath = Path.GetDirectoryName(ofd.FileName);
|
||||||
|
OpenPaths(new string[] { _openFolderPath });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Otherwise, use the standard folder browser dialog.
|
||||||
using (FolderBrowserDialog ofd = new FolderBrowserDialog()) {
|
using (FolderBrowserDialog ofd = new FolderBrowserDialog()) {
|
||||||
if (_openFolderPath != null)
|
if (_openFolderPath != null)
|
||||||
ofd.SelectedPath = _openFolderPath;
|
ofd.SelectedPath = _openFolderPath;
|
||||||
|
@ -171,6 +207,7 @@ namespace NBTExplorer.Windows
|
||||||
OpenPaths(new string[] { ofd.SelectedPath });
|
OpenPaths(new string[] { ofd.SelectedPath });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
UpdateUI();
|
UpdateUI();
|
||||||
}
|
}
|
||||||
|
@ -394,7 +431,7 @@ namespace NBTExplorer.Windows
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
DisableButtons(_buttonAddTagByte, _buttonAddTagByteArray, _buttonAddTagCompound, _buttonAddTagDouble, _buttonAddTagFloat,
|
DisableButtons(_buttonAddTagByte, _buttonAddTagByteArray, _buttonAddTagCompound, _buttonAddTagDouble, _buttonAddTagFloat,
|
||||||
_buttonAddTagInt, _buttonAddTagIntArray, _buttonAddTagList, _buttonAddTagLong, _buttonAddTagShort,
|
_buttonAddTagInt, _buttonAddTagIntArray, _buttonAddTagList, _buttonAddTagLong, _buttonAddTagLongArray, _buttonAddTagShort,
|
||||||
_buttonAddTagString, _buttonCopy, _buttonCut, _buttonDelete, _buttonEdit, _buttonPaste, _buttonRefresh,
|
_buttonAddTagString, _buttonCopy, _buttonCut, _buttonDelete, _buttonEdit, _buttonPaste, _buttonRefresh,
|
||||||
_buttonRename);
|
_buttonRename);
|
||||||
|
|
||||||
|
@ -436,6 +473,7 @@ namespace NBTExplorer.Windows
|
||||||
_buttonAddTagIntArray.Enabled = node.CanCreateTag(TagType.TAG_INT_ARRAY);
|
_buttonAddTagIntArray.Enabled = node.CanCreateTag(TagType.TAG_INT_ARRAY);
|
||||||
_buttonAddTagList.Enabled = node.CanCreateTag(TagType.TAG_LIST);
|
_buttonAddTagList.Enabled = node.CanCreateTag(TagType.TAG_LIST);
|
||||||
_buttonAddTagLong.Enabled = node.CanCreateTag(TagType.TAG_LONG);
|
_buttonAddTagLong.Enabled = node.CanCreateTag(TagType.TAG_LONG);
|
||||||
|
_buttonAddTagLongArray.Enabled = node.CanCreateTag(TagType.TAG_LONG_ARRAY);
|
||||||
_buttonAddTagShort.Enabled = node.CanCreateTag(TagType.TAG_SHORT);
|
_buttonAddTagShort.Enabled = node.CanCreateTag(TagType.TAG_SHORT);
|
||||||
_buttonAddTagString.Enabled = node.CanCreateTag(TagType.TAG_STRING);
|
_buttonAddTagString.Enabled = node.CanCreateTag(TagType.TAG_STRING);
|
||||||
|
|
||||||
|
@ -462,6 +500,7 @@ namespace NBTExplorer.Windows
|
||||||
_menuItemFindNext.Enabled = _searchState != null;
|
_menuItemFindNext.Enabled = _searchState != null;
|
||||||
_menuItemMoveUp.Enabled = node.CanMoveNodeUp;
|
_menuItemMoveUp.Enabled = node.CanMoveNodeUp;
|
||||||
_menuItemMoveDown.Enabled = node.CanMoveNodeDown;
|
_menuItemMoveDown.Enabled = node.CanMoveNodeDown;
|
||||||
|
_menuItemOpenInExplorer.Enabled = node is DirectoryDataNode;
|
||||||
|
|
||||||
UpdateUI(_nodeTree.SelectedNodes);
|
UpdateUI(_nodeTree.SelectedNodes);
|
||||||
}
|
}
|
||||||
|
@ -480,6 +519,7 @@ namespace NBTExplorer.Windows
|
||||||
_buttonAddTagDouble.Enabled = _controller.CanOperateOnSelection(Predicates.CreateDoubleNodePred);
|
_buttonAddTagDouble.Enabled = _controller.CanOperateOnSelection(Predicates.CreateDoubleNodePred);
|
||||||
_buttonAddTagByteArray.Enabled = _controller.CanOperateOnSelection(Predicates.CreateByteArrayNodePred);
|
_buttonAddTagByteArray.Enabled = _controller.CanOperateOnSelection(Predicates.CreateByteArrayNodePred);
|
||||||
_buttonAddTagIntArray.Enabled = _controller.CanOperateOnSelection(Predicates.CreateIntArrayNodePred);
|
_buttonAddTagIntArray.Enabled = _controller.CanOperateOnSelection(Predicates.CreateIntArrayNodePred);
|
||||||
|
_buttonAddTagLongArray.Enabled = _controller.CanOperateOnSelection(Predicates.CreateLongArrayNodePred);
|
||||||
_buttonAddTagString.Enabled = _controller.CanOperateOnSelection(Predicates.CreateStringNodePred);
|
_buttonAddTagString.Enabled = _controller.CanOperateOnSelection(Predicates.CreateStringNodePred);
|
||||||
_buttonAddTagList.Enabled = _controller.CanOperateOnSelection(Predicates.CreateListNodePred);
|
_buttonAddTagList.Enabled = _controller.CanOperateOnSelection(Predicates.CreateListNodePred);
|
||||||
_buttonAddTagCompound.Enabled = _controller.CanOperateOnSelection(Predicates.CreateCompoundNodePred);
|
_buttonAddTagCompound.Enabled = _controller.CanOperateOnSelection(Predicates.CreateCompoundNodePred);
|
||||||
|
@ -718,6 +758,11 @@ namespace NBTExplorer.Windows
|
||||||
_controller.CreateNode(TagType.TAG_LONG);
|
_controller.CreateNode(TagType.TAG_LONG);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void _buttonAddTagLongArray_Click (object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
_controller.CreateNode(TagType.TAG_LONG_ARRAY);
|
||||||
|
}
|
||||||
|
|
||||||
private void _buttonAddTagShort_Click (object sender, EventArgs e)
|
private void _buttonAddTagShort_Click (object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
_controller.CreateNode(TagType.TAG_SHORT);
|
_controller.CreateNode(TagType.TAG_SHORT);
|
||||||
|
|
|
@ -369,229 +369,239 @@
|
||||||
<value>
|
<value>
|
||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
|
||||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADQ
|
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAA6
|
||||||
MwAAAk1TRnQBSQFMAgEBEAEAATgBAgE4AQIBEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA
|
NgAAAk1TRnQBSQFMAgEBEgEAAVABAgFQAQIBEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA
|
||||||
AwABUAMAAQEBAAEYBgABPP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AB4AA/wD+SH4A/kD/AMAA/0D+SH4
|
AwABUAMAAQEBAAEYBgABPP8A/wBaAAP+A/wG+QP6BvwD+wb5A/wD/gwAA/4D/Ab5A/oG/AP7BvkD/AP+
|
||||||
A/kD/TkAA/8D/AP5EvgD+QP7A/4GAAGWAakBvAFcAYQBrgFcAYQBrgFcAYQBrgFcAYQBrgFcAYQBrgFc
|
bAAD/gP8A/kDswNcBvwDXAO0A/kD/AP+DAAD/gP8A/kDswNcBvwDXAO0A/kD/AP+cgADywN1A/gGAAP4
|
||||||
AYQBrgFcAYQBrgFcAYQBrgFcAYQBrgFcAYQBrgFcAYQBrgFcAYQBrgFcAYQBrgGWAakBvAMAAs8BywK5
|
A3UDyxgAA8sDdQP4BgAD+AN1A8t1AAPOA38D+QGCAcIBtAFZAa4BnQFZAa4BnQGpAdMByAP5A38DzhIA
|
||||||
AbACuQGwArkBsAK5AbACuQGwArkBsAK5AbACuQGwArkBsAK5AbACuQGwArkBsAK5AbACzwHLOQAD/gP4
|
A84DfwP5Ab8BfQFKAb8BfQFKAcABfgFNAeIBzgG/A/kDfwPObwAD0AOGA/kJAAHSAegB4AFgAbUBpAMA
|
||||||
AegC5QHZAbQBqwHqAY4BdwHuAXABUAHuAXABUAHqAY4BdwHZAbQBqwHoAeUB5AP2A/4GAAFsAZMBugFV
|
A/kDhgPQDAAD0AOGA/kDAAHGAYIBUQHiAcsBuQkAA/kDhgPQaQAD7wNsA+8GAAGyAdwB0gFoAb0BrAFo
|
||||||
AYgBuwFwAaMB1gFnAZoBzQFnAZoBzQFnAZoBzQFnAZoBzQFnAZoBzQFnAZoBzQFnAZoBzQFnAZoBzQFn
|
Ab0BrAGuAdkBzQYAA+8DbAPvBgAD7wNsA+8GAAHOAYoBWQHkAc0BugwAA+8DbAPvaQAD1AORA/kDAAFw
|
||||||
AZoBzQFwAaMB1gFVAYgBuwFsAZMBugMAAsEBuQL5AekC8wHiAvMB4gLzAeIC8wHiAvMB4gLzAeIC8wHi
|
AcUBtAHVAesB4gkAA/kDkQPUDAAD1AORA/kDAAHWAZIBYQHnAc8BvAkAA/kDkQPUbwAD1QOWA/kBtwHh
|
||||||
AvMB4gLzAeIC8wHiAvMB4gL5AekCwQG5PAAB6gHcAdgB7gGCAWcB9QGiAY8B+gHRAcoB/AHnAeUB/AHm
|
AdUBdgHLAboBdgHLAboBlQHVAcYD+QOWA9USAAPVA5YD+QHdAaEBdQHpAdEBvgYAA/kDlgPVdQAD1wOZ
|
||||||
AeUB+QHRAckB9AGhAY4B7gGBAWYB6gHcAdgJAAF+AaIBxwFxAaQB1wFVAYgBuwFxAaQB1wFxAaQB1wFx
|
A/oGAAP6A5kD1xgAA9cDmQP6BgAD+gOZA9d7AAPYA50GAAOdA9geAAPYA50GAAOdA9j/AP8AsQAD/AP5
|
||||||
AaQB1wFxAaQB1wFxAaQB1wFxAaQB1wFxAaQB1wFxAaQB1wFxAaQB1wFVAYgBuwFxAaQB1wF+AaIBxwMA
|
IfgD+QP8AwAD/QP5IfgD+QP9OQAD/wP8A/kS+AP5A/sD/gYAAZYBqQG8AVwBhAGuAVwBhAGuAVwBhAGu
|
||||||
AssBwwL0AeQBegGnAZsBhwG3AacBhwG1AaMBiQGzAaIBaAGgAYYBVwGXAXgBWAGTAXkBaAGQAX4BkgGk
|
AVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGu
|
||||||
AZMBhgGXAYACqAGOAvQB5ALLAcMJAAP+A/wG+QP6BvwD+wb5A/wD/gwAAfMB3wHaAe4BewFgAfcB1AHO
|
AZYBqQG8AwACzwHLArkBsAK5AbACuQGwArkBsAK5AbACuQGwArkBsAK5AbACuQGwArkBsAK5AbACuQGw
|
||||||
AfcC6QH3AugB/AL0AfwC9AH3AugB9wLpAfYB0QHKAe4BewFfAfMB3wHaBgABhgGqAc0BcwGmAdkBagGd
|
ArkBsALPAcs5AAP+A/gB6ALlAdkBtAGrAeoBjgF3Ae4BcAFQAe4BcAFQAeoBjgF3AdkBtAGrAegB5QHk
|
||||||
AdABSAF7Aa4BXwGSAcUBTAF/AbIBXwGSAcUBTAF/AbIBXwGSAcUBTAF/AbIBXwGSAcUBSAF7Aa4BagGd
|
A/YD/gYAAWwBkwG6AVUBiAG7AXABowHWAWcBmgHNAWcBmgHNAWcBmgHNAWcBmgHNAWcBmgHNAWcBmgHN
|
||||||
AdABcwGmAdkBhgGqAc0DAALPAccC9QHmAYQBtQGrAZgB1wHHAZAB0QG+AXMBsAGZAZcBywG2AacBzgG9
|
AWcBmgHNAWcBmgHNAWcBmgHNAXABowHWAVUBiAG7AWwBkwG6AwACwQG5AvkB6QLzAeIC8wHiAvMB4gLz
|
||||||
AZcBvQGsAZQBugGoAakBvwGvAY4BrQGhAbcBrQGLAvUB5gLPAccJAAP+A/wD+QOzA1wG/ANcA7QD+QP8
|
AeIC8wHiAvMB4gLzAeIC8wHiAvMB4gLzAeIC8wHiAvkB6QLBAbk8AAHqAdwB2AHuAYIBZwH1AaIBjwH6
|
||||||
A/4JAAH6AfgB9wHnAX4BYgHzAdMBzQHwAuUB7wLkAe8C5AHlAWEBPwHlAWEBPwHvAuQB7wLkAe8C5AHv
|
AdEBygH8AecB5QH8AeYB5QH5AdEByQH0AaEBjgHuAYEBZgHqAdwB2AkAAX4BogHHAXEBpAHXAVUBiAG7
|
||||||
Ac0BxwHnAX4BYgH6AfgB9wMAAYsBrQHPAXUBqAHbAWwBnwHSAUoBfQGwAWwBnwHSAVIBhQG4AWwBnwHS
|
AXEBpAHXAXEBpAHXAXEBpAHXAXEBpAHXAXEBpAHXAXEBpAHXAXEBpAHXAXEBpAHXAXEBpAHXAVUBiAG7
|
||||||
AVIBhQG4AWwBnwHSAVIBhQG4AWwBnwHSAUoBfQGwAWwBnwHSAXUBqAHbAYsBrQHPAwAC0QHJAvYB6QGQ
|
AXEBpAHXAX4BogHHAwACywHDAvQB5AF6AacBmwGHAbcBpwGHAbUBowGJAbMBogFoAaABhgFXAZcBeAFY
|
||||||
AbwBtQG5AeUB2wGmAd0B0AGIAcABsgGHAckBtQF+Ab4BpAGIAbkBowGuAdABvwGpAccBtQGUAboBqAG2
|
AZMBeQFoAZABfgGSAaQBkwGGAZcBgAKoAY4C9AHkAssBwwkAA/4D/Ab5A/oG/AP7BvkD/AP+DAAB8wHf
|
||||||
AbUBkQL2AekC0QHJDwADywN1A/gGAAP4A3UDyw8AAegBxQG8AeUBnQGKAeoC4gHnAt8B5wLfAecC3wHW
|
AdoB7gF7AWAB9wHUAc4B9wLpAfcC6AH8AvQB/AL0AfcC6AH3AukB9gHRAcoB7gF7AV8B8wHfAdoGAAGG
|
||||||
AVkBNwHWAVkBNwHnAt8B5wLfAecC3wHoAuAB4QGXAYQB6AHFAbwDAAGPAbEB0gF3AaoB3QFuAaEB1AFH
|
AaoBzQFzAaYB2QFqAZ0B0AFIAXsBrgFfAZIBxQFMAX8BsgFfAZIBxQFMAX8BsgFfAZIBxQFMAX8BsgFf
|
||||||
AXoBrQFuAaEB1AFPAYIBtQFuAaEB1AFPAYIBtQFuAaEB1AFPAYIBtQFuAaEB1AFHAXoBrQFuAaEB1AF3
|
AZIBxQFIAXsBrgFqAZ0B0AFzAaYB2QGGAaoBzQMAAs8BxwL1AeYBhAG1AasBmAHXAccBkAHRAb4BcwGw
|
||||||
AaoB3QGPAbEB0gMAAtMBzAL3AesBxQG4AYcB/wHeAYwB+AHnAa0B1QHRAbABygHrAeIBvQHlAdkBoAHK
|
AZkBlwHLAbYBpwHOAb0BlwG9AawBlAG6AagBqQG/Aa8BjgGtAaEBtwGtAYsC9QHmAs8BxwkAA/4D/AP5
|
||||||
AbsBqgHOAa8BggHBAaQBfgG2ApgBrAGEAvcB6wLTAcwMAAPOA38D+QHdAbMBuQHAAUkBWgHAAUkBWgHd
|
A7MDXAb8A1wDtAP5A/wD/gkAAfoB+AH3AecBfgFiAfMB0wHNAfAC5QHvAuQB7wLkAeUBYQE/AeUBYQE/
|
||||||
AbMBuQP5A38DzgwAAdIBhAFuAeoB0AHIAeEC2gHgAtkB4ALZAeAC2QHxAu0B8QLtAeAC2QHgAtkB4ALZ
|
Ae8C5AHvAuQB7wLkAe8BzQHHAecBfgFiAfoB+AH3AwABiwGtAc8BdQGoAdsBbAGfAdIBSgF9AbABbAGf
|
||||||
AeAC2QHhAcQBvQHSAYQBbgMAAZMBtAHUAXgBqwHeAW8BogHVAUQBdwGqAW8BogHVAUwBfwGyAW8BogHV
|
AdIBUgGFAbgBbAGfAdIBUgGFAbgBbAGfAdIBUgGFAbgBbAGfAdIBSgF9AbABbAGfAdIBdQGoAdsBiwGt
|
||||||
AUwBfwGyAW8BogHVAUwBfwGyAW8BogHVAUQBdwGqAW8BogHVAXgBqwHeAZMBtAHUAwAC1QHNAvgB7gHR
|
Ac8DAALRAckC9gHpAZABvAG1AbkB5QHbAaYB3QHQAYgBwAGyAYcByQG1AX4BvgGkAYgBuQGjAa4B0AG/
|
||||||
Aa4BaQHbAboBcQHeAb4BdAHpAckBfAG/Ac0BqAGVAcwBwgGhAc8BvgGRAcQBrwF/Ab0BpgF3AbcBnQGo
|
AakBxwG1AZQBugGoAbYBtQGRAvYB6QLRAckPAAPLA3UD+AYAA/gDdQPLDwAB6AHFAbwB5QGdAYoB6gLi
|
||||||
AaoBdwL4Ae4C1QHNCQAD0AOGA/kGAAHgAbYBvAHRAXsBhwYAA/kDhgPQCQABuwFUATUB9AHuAe0B5wLl
|
AecC3wHnAt8B5wLfAdYBWQE3AdYBWQE3AecC3wHnAt8B5wLfAegC4AHhAZcBhAHoAcUBvAMAAY8BsQHS
|
||||||
AdoC1gHYAtQB2ALUAbcBSAEmAbcBSAEmAeMC3wHYAtQB2ALUAdgC1AHhAdgB1gG7AVQBNQMAAZgBuAHX
|
AXcBqgHdAW4BoQHUAUcBegGtAW4BoQHUAU8BggG1AW4BoQHUAU8BggG1AW4BoQHUAU8BggG1AW4BoQHU
|
||||||
AXoBrQHgAXEBpAHXAUEBdAGnAXEBpAHXAUkBfAGvAXEBpAHXAUkBfAGvAXEBpAHXAUkBfAGvAXEBpAHX
|
AUcBegGtAW4BoQHUAXcBqgHdAY8BsQHSAwAC0wHMAvcB6wHFAbgBhwH/Ad4BjAH4AecBrQHVAdEBsAHK
|
||||||
AUEBdAGnAXEBpAHXAXoBrQHgAZgBuAHXAwAC1wHPAvkB8QHTAawBZgH/AdMBfgH/AdYBggHgAb4BdAH2
|
AesB4gG9AeUB2QGgAcoBuwGqAc4BrwGCAcEBpAF+AbYCmAGsAYQC9wHrAtMBzAwAA84DfwP5Ad0BswG5
|
||||||
AeEBmQGwAe0B5AGvAdEBvwGiAeAB0wGYAdgBxgGOAdABugG4AbIBgAL5AfEC1wHPBgAD7wNsA+8JAAHj
|
AcABSQFaAcABSQFaAd0BswG5A/kDfwPODAAB0gGEAW4B6gHQAcgB4QLaAeAC2QHgAtkB4ALZAfEC7QHx
|
||||||
AbgBvwHXAYEBjQkAA+8DbAPvBgABsQFQATEB9AHvAe0D7gPqAdwC2wHTAtEBxwGmAZwBrgFHASUBwQFz
|
Au0B4ALZAeAC2QHgAtkB4ALZAeEBxAG9AdIBhAFuAwABkwG0AdQBeAGrAd4BbwGiAdUBRAF3AaoBbwGi
|
||||||
AVoB3gLcAdIC0AHSAtAB3wHYAdcBsQFQATEDAAGbAboB2QF8Aa8B4gFzAaYB2QE/AXIBpQFzAaYB2QFH
|
AdUBTAF/AbIBbwGiAdUBTAF/AbIBbwGiAdUBTAF/AbIBbwGiAdUBRAF3AaoBbwGiAdUBeAGrAd4BkwG0
|
||||||
AXoBrQFzAaYB2QFHAXoBrQFzAaYB2QFHAXoBrQFzAaYB2QE/AXIBpQFzAaYB2QF8Aa8B4gGbAboB2QMA
|
AdQDAALVAc0C+AHuAdEBrgFpAdsBugFxAd4BvgF0AekByQF8Ab8BzQGoAZUBzAHCAaEBzwG+AZEBxAGv
|
||||||
AtkB0QL7AfQB1QGpAWIB/wHOAXkB/wHSAX0B3wG6AW8B/wHYAYMB5gHqAb0BpgHYAc0BswHsAeIBuQHk
|
AX8BvQGmAXcBtwGdAagBqgF3AvgB7gLVAc0JAAPQA4YD+QYAAeABtgG8AdEBewGHBgAD+QOGA9AJAAG7
|
||||||
AdABtgHcAcQBqwG+AZcC+wH0AtkB0QkAA9QDkQP5BgAB5gG7AcEB3QGHAZMGAAP5A5ED1AkAAcABfQFm
|
AVQBNQH0Ae4B7QHnAuUB2gLWAdgC1AHYAtQBtwFIASYBtwFIASYB4wLfAdgC1AHYAtQB2ALUAeEB2AHW
|
||||||
AeoB1QHNCfAD6wPgAcgBnAGNAasBRgEkAb0BigF5A84B0gLRAdwBxwLAAX0BZgMAAZ0BvQHbAX4BsQHk
|
AbsBVAE1AwABmAG4AdcBegGtAeABcQGkAdcBQQF0AacBcQGkAdcBSQF8Aa8BcQGkAdcBSQF8Aa8BcQGk
|
||||||
AXUBqAHbATgBawGeAVEBhAG3ATgBawGeAVEBhAG3ATgBawGeAVEBhAG3ATgBawGeAVEBhAG3ATgBawGe
|
AdcBSQF8Aa8BcQGkAdcBQQF0AacBcQGkAdcBegGtAeABmAG4AdcDAALXAc8C+QHxAdMBrAFmAf8B0wF+
|
||||||
AXUBqAHbAX4BsQHkAZ0BvQHbAwAC2gHTAvwB9wHXAacBXwHaAawBZAHcAbABZwHnAbwBcAHgAboBbwHj
|
Af8B1gGCAeABvgF0AfYB4QGZAbAB7QHkAa8B0QG/AaIB4AHTAZgB2AHGAY4B0AG6AbgBsgGAAvkB8QLX
|
||||||
Ab4BcwHfAdEBmAHbAc8BlgHVAdEBnAHEAc0BpAGdAdEBwwL8AfcC2gHTDAAD1QOWA/kB6AG9AcMB3QFm
|
Ac8GAAPvA2wD7wkAAeMBuAG/AdcBgQGNCQAD7wNsA+8GAAGxAVABMQH0Ae8B7QPuA+oB3ALbAdMC0QHH
|
||||||
AXcB3QFmAXcB6AG9AcMD+QOWA9UMAAHfAcMBuQHUAZ0BigP1BvMB2gGpAZgB2gGpAZgBzwGOAXgBswFP
|
AaYBnAGuAUcBJQHBAXMBWgHeAtwB0gLQAdIC0AHfAdgB1wGxAVABMQMAAZsBugHZAXwBrwHiAXMBpgHZ
|
||||||
AS0B0wGhAZAD8wP1AdQBnAGJAd8BwwG5AwABoAG+AdwBfwGyAeUBZgGZAcwBdgGpAdwBdgGpAdwBdgGp
|
AT8BcgGlAXMBpgHZAUcBegGtAXMBpgHZAUcBegGtAXMBpgHZAUcBegGtAXMBpgHZAT8BcgGlAXMBpgHZ
|
||||||
AdwBdgGpAdwBdgGpAdwBdgGpAdwBdgGpAdwBdgGpAdwBdgGpAdwBZgGZAcwBfwGyAeUBoAG+AdwDAALb
|
AXwBrwHiAZsBugHZAwAC2QHRAvsB9AHVAakBYgH/Ac4BeQH/AdIBfQHfAboBbwH/AdgBgwHmAeoBvQGm
|
||||||
AdQC/QH5AdkBpAFcAf8BxAFvAf8ByAFzAd4BsAFnAf8BzgF5Af8B0gF9AeQBvgFyAf8B2AGDAe0B5AGo
|
AdgBzQGzAewB4gG5AeQB0AG2AdwBxAGrAb4BlwL7AfQC2QHRCQAD1AORA/kGAAHmAbsBwQHdAYcBkwYA
|
||||||
AeIB5gG2AdAB1wGtAv0B+QLbAdQPAAPXA5kD+gYAA/oDmQPXDwAB+QH4AfcBywF7AWAB8gHfAdkD+AP3
|
A/kDkQPUCQABwAF9AWYB6gHVAc0J8APrA+AByAGcAY0BqwFGASQBvQGKAXkDzgHSAtEB3AHHAsABfQFm
|
||||||
AcEBXQE7AcEBXQE7AcEBXQE7AcEBXQE7AekB0AHIA/gB8gHfAdkBywF7AWAB+QH4AfcDAAGjAcAB3gFr
|
AwABnQG9AdsBfgGxAeQBdQGoAdsBOAFrAZ4BUQGEAbcBOAFrAZ4BUQGEAbcBOAFrAZ4BUQGEAbcBOAFr
|
||||||
AZ4B0QF3AaoB3QF3AaoB3QF3AaoB3QF3AaoB3QF3AaoB3QF3AaoB3QF3AaoB3QF3AaoB3QF3AaoB3QF3
|
AZ4BUQGEAbcBOAFrAZ4BdQGoAdsBfgGxAeQBnQG9AdsDAALaAdMC/AH3AdcBpwFfAdoBrAFkAdwBsAFn
|
||||||
AaoB3QF3AaoB3QFrAZ4B0QGjAcAB3gMAAt0B1QL+AfwB2gGjAVoB/wG/AWsB/wHCAW4B3gGsAWIB/wHJ
|
AecBvAFwAeABugFvAeMBvgFzAd8B0QGYAdsBzwGWAdUB0QGcAcQBzQGkAZ0B0QHDAvwB9wLaAdMMAAPV
|
||||||
AXQB/wHNAXgB4wG5AW4B/wHTAX4B/wHXAYMB/AHeAZUB7AHKAXwC/gH8At0B1RIAA9gDnQYAA50D2BUA
|
A5YD+QHoAb0BwwHdAWYBdwHdAWYBdwHoAb0BwwP5A5YD1QwAAd8BwwG5AdQBnQGKA/UG8wHaAakBmAHa
|
||||||
Ae4B4AHbAdgBhAFoAfYB4wHcA/wM+wP8AfYB4wHcAdgBhAFoAe4B4AHbBgABpgHDAeABoAHTAfoBmAHL
|
AakBmAHPAY4BeAGzAU8BLQHTAaEBkAPzA/UB1AGcAYkB3wHDAbkDAAGgAb4B3AF/AbIB5QFmAZkBzAF2
|
||||||
AfUBkwHGAfMBkwHGAfMBkwHGAfMBkwHGAfMBkwHGAfMBkwHGAfMBkwHGAfMBkwHGAfMBkwHGAfMBmAHL
|
AakB3AF2AakB3AF2AakB3AF2AakB3AF2AakB3AF2AakB3AF2AakB3AF2AakB3AF2AakB3AFmAZkBzAF/
|
||||||
AfUBoAHTAfoBpgHDAeADAALeAdcC/wH+AdsBoQFYAdsBogFZAdsBpAFbAdsBpQFdAdsBqQFgAdsBrAFj
|
AbIB5QGgAb4B3AMAAtsB1AL9AfkB2QGkAVwB/wHEAW8B/wHIAXMB3gGwAWcB/wHOAXkB/wHSAX0B5AG+
|
||||||
AdsBrwFmAdsBsQFoAdsBtAFrAdsBtwFuAdsBuQFxAv8B/gLeAdc8AAHwAeIB3QHkAZQBeAHvAbcBpAH6
|
AXIB/wHYAYMB7QHkAagB4gHmAbYB0AHXAa0C/QH5AtsB1A8AA9cDmQP6BgAD+gOZA9cPAAH5AfgB9wHL
|
||||||
AeQB3QH+AfkB9wH+AfkB9wH6AeQB3QHvAbcBpAHkAZQBeAHwAeIB3QkAAegB7QHzAagBxAHhAZcBygH1
|
AXsBYAHyAd8B2QP4A/cBwQFdATsBwQFdATsBwQFdATsBwQFdATsB6QHQAcgD+AHyAd8B2QHLAXsBYAH5
|
||||||
AZIBxQHzAZIBxQHzAZIBxQHzAZIBxQHzAZIBxQHzAZIBxQHzAZIBxQHzAZIBxQHzAZIBxQHzAZcBygH1
|
AfgB9wMAAaMBwAHeAWsBngHRAXcBqgHdAXcBqgHdAXcBqgHdAXcBqgHdAXcBqgHdAXcBqgHdAXcBqgHd
|
||||||
AagBxAHhAegB7QHzAwAC3wHZJ/8C3wHZPwAB+gL4Ae8B0gHIAewBqAGSAewBjgFuAewBjgFuAewBqAGS
|
AXcBqgHdAXcBqgHdAXcBqgHdAXcBqgHdAWsBngHRAaMBwAHeAwAC3QHVAv4B/AHaAaMBWgH/Ab8BawH/
|
||||||
Ae8B0gHIAfoC+A8AAegB7QHzAakBxQHiAakBxQHiAakBxQHiAakBxQHiAakBxQHiAakBxQHiAakBxQHi
|
AcIBbgHeAawBYgH/AckBdAH/Ac0BeAHjAbkBbgH/AdMBfgH/AdcBgwH8Ad4BlQHsAcoBfAL+AfwC3QHV
|
||||||
AakBxQHiAakBxQHiAakBxQHiAakBxQHiAegB7QHzBgAC6gHmAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZ
|
EgAD2AOdBgADnQPYFQAB7gHgAdsB2AGEAWgB9gHjAdwD/Az7A/wB9gHjAdwB2AGEAWgB7gHgAdsGAAGm
|
||||||
AuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLqAebDAAP7A/EBlQGvAbwBaAGbAbYBaAGbAbYBaAGb
|
AcMB4AGgAdMB+gGYAcsB9QGTAcYB8wGTAcYB8wGTAcYB8wGTAcYB8wGTAcYB8wGTAcYB8wGTAcYB8wGT
|
||||||
AbYBaAGbAbYBaAGbAbYBaAGbAbYBaAGbAbYBaAGbAbYBaAGbAbYBaAGbAbYBlQGvAbwD8QP7FQAS+AP5
|
AcYB8wGTAcYB8wGYAcsB9QGgAdMB+gGmAcMB4AMAAt4B1wL/Af4B2wGhAVgB2wGiAVkB2wGkAVsB2wGl
|
||||||
A/0zAAP8A/kk+AP5A/wD/QP6AXcBqAHBAYYBzwHwAYEBywHtAYEBywHtAYEBywHtAYEBywHtAYEBywHt
|
AV0B2wGpAWAB2wGsAWMB2wGvAWYB2wGxAWgB2wG0AWsB2wG3AW4B2wG5AXEC/wH+At4B1zwAAfAB4gHd
|
||||||
AYEBywHtAYYBzwHwAUsBjwGxAYYBzwHwAXcBqAHBAdwB4gHlBv0D+Qz4A/MBiQGlAY8BVQGLAV8BVQGL
|
AeQBlAF4Ae8BtwGkAfoB5AHdAf4B+QH3Af4B+QH3AfoB5AHdAe8BtwGkAeQBlAF4AfAB4gHdCQAB6AHt
|
||||||
AV8BVQGLAV8BVQGLAV8BVQGLAV8BVQGLAV8BlAGtAZkGAAPAAywDwAMAA/sb+AP7A/cBkwGmAboBYAGI
|
AfMBqAHEAeEBlwHKAfUBkgHFAfMBkgHFAfMBkgHFAfMBkgHFAfMBkgHFAfMBkgHFAfMBkgHFAfMBkgHF
|
||||||
Aa8BYAGIAa8BYAGIAa8BYAGIAa8BYAGIAa8BYAGIAa8BYAGIAa8BYAGIAa8BYAGIAa8BYAGIAa8BYAGI
|
AfMBkgHFAfMBlwHKAfUBqAHEAeEB6AHtAfMDAALfAdkn/wLfAdk/AAH6AvgB7wHSAcgB7AGoAZIB7AGO
|
||||||
Aa8BYAGIAa8BkwGmAboD9wYAAYYBtQHNAYQBzgHuAXwBxwHoAXwBxwHoAXwBxwHoAXwBxwHoAXwBxwHo
|
AW4B7AGOAW4B7AGoAZIB7wHSAcgB+gL4DwAB6AHtAfMBqQHFAeIBqQHFAeIBqQHFAeIBqQHFAeIBqQHF
|
||||||
AXwBxwHoAYQBzgHuAVcBmwG9AYQBzgHuAfQBtgEuAYYBtQHNAwAClAG4AlUBowJVAaMCVQGjAlUBowJV
|
AeIBqQHFAeIBqQHFAeIBqQHFAeIBqQHFAeIBqQHFAeIBqQHFAeIB6AHtAfMGAALqAeYC4AHZAuAB2QLg
|
||||||
AaMCVQGjAVUBegGJATUBvQF5AUMBywGHAT4BxgGCAT4BxgGCAT4BxgGCAUMBywGHAVUBoAFwBgADQAFn
|
AdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuoB5sMAA/sD8QGVAa8BvAFo
|
||||||
AlYDQAMAA/sDYQNeA1wDWQNUA0kDPAMvA2wD+wMAAXIBmAG/AXsBrgHgAXoBrQHfAXoBrQHfAXoBrQHf
|
AZsBtgFoAZsBtgFoAZsBtgFoAZsBtgFoAZsBtgFoAZsBtgFoAZsBtgFoAZsBtgFoAZsBtgFoAZsBtgGV
|
||||||
AXoBrQHfAXoBrQHfAXoBrQHfAXoBrQHfAXoBrQHfAXoBrQHfAXoBrQHfAXsBrgHgAXIBmAG/CQABkQG+
|
Aa8BvAPxA/sVABL4A/kD/TMAA/wD+ST4A/kD/AP9A/oBdwGoAcEBhgHPAfABgQHLAe0BgQHLAe0BgQHL
|
||||||
AdQBhwHQAe8BfwHKAekBfwHKAekBfwHKAekBfwHKAekBfwHKAekBfwHKAekBhwHQAe8BXwGjAcUBhwHQ
|
Ae0BgQHLAe0BgQHLAe0BgQHLAe0BhgHPAfABSwGPAbEBhgHPAfABdwGoAcEB3AHiAeUG/QP5DPgD8wGJ
|
||||||
Ae8B/gHJAUEBkQG+AdQDAAJVAbQBLwEeAdwBJQETAdgBJQETAdgBJQETAdgBJQETAdgBJQETAdgBVQF+
|
AaUBjwFVAYsBXwFVAYsBXwFVAYsBXwFVAYsBXwFVAYsBXwFVAYsBXwGUAa0BmQYAA8ADLAPAAwAD+xv4
|
||||||
AZUBNwG/AXsBQgHKAYYBNwG/AXsBNwG/AXsBNwG/AXsBQgHKAYYBVQGnAXYGAAPLA1UDyycAAYQBpwHL
|
A/sD9wGTAaYBugFgAYgBrwFgAYgBrwFgAYgBrwFgAYgBrwFgAYgBrwFgAYgBrwFgAYgBrwFgAYgBrwFg
|
||||||
AYEBtAHkAX0BsAHhAX0BsAHhAX0BsAHhAX0BsAHhAX0BsAHhAX0BsAHhAX0BsAHhAX0BsAHhAX0BsAHh
|
AYgBrwFgAYgBrwFgAYgBrwFgAYgBrwGTAaYBugP3BgABhgG1Ac0BhAHOAe4BfAHHAegBfAHHAegBfAHH
|
||||||
AX0BsAHhAYEBtAHkAYQBpwHLCQABlAHAAdYBigHTAfABggHNAesBggHNAesBggHNAesBggHNAesBggHN
|
AegBfAHHAegBfAHHAegBfAHHAegBhAHOAe4BVwGbAb0BhAHOAe4B9AG2AS4BhgG1Ac0DAAKUAbgCVQGj
|
||||||
AesBggHNAesBigHTAfABYgGmAcgBigHTAfAC6QHbAZQBwAHWAwACVQG5AS0BHAHeARUBAAHVARUBAAHV
|
AlUBowJVAaMCVQGjAlUBowJVAaMBVQF6AYkBNQG9AXkBQwHLAYcBPgHGAYIBPgHGAYIBPgHGAYIBQwHL
|
||||||
ARUBAAHVARUBAAHVARUBAAHVAVUBgQGaATsBwwF/AUgBzwGMATsBwwF/ATsBwwF/ATsBwwF/AUgBzwGM
|
AYcBVQGgAXAGAANAAWcCVgNAAwAD+wNhA14DXANZA1QDSQM8Ay8DbAP7AwABcgGYAb8BewGuAeABegGt
|
||||||
AVUBrQF7NgABigGtAc8BiAG7AeoBggG1AeUBggG1AeUBggG1AeUBggG1AeUBggG1AeUBggG1AeUBggG1
|
Ad8BegGtAd8BegGtAd8BegGtAd8BegGtAd8BegGtAd8BegGtAd8BegGtAd8BegGtAd8BegGtAd8BewGu
|
||||||
AeUBggG1AeUBggG1AeUBggG1AeUBiAG7AeoBigGtAc8JAAGYAcMB2AGOAdYB8gGHAdAB7QGHAdAB7QGH
|
AeABcgGYAb8JAAGRAb4B1AGHAdAB7wF/AcoB6QF/AcoB6QF/AcoB6QF/AcoB6QF/AcoB6QF/AcoB6QGH
|
||||||
AdAB7QGHAdAB7QGHAdAB7QGHAdAB7QGOAdYB8gFmAaoBzAGOAdYB8gLwAeYBmAHDAdgDAAJVAb8BNgEl
|
AdAB7wFfAaMBxQGHAdAB7wH+AckBQQGRAb4B1AMAAlUBtAEvAR4B3AElARMB2AElARMB2AElARMB2AEl
|
||||||
AeQBGQEAAdsBGQEAAdsBGQEAAdsBGQEAAdsBGQEAAdsBVQGEAaABPgHGAYIBTQHVAZEBPgHGAYIBPgHG
|
ARMB2AElARMB2AFVAX4BlQE3Ab8BewFCAcoBhgE3Ab8BewE3Ab8BewE3Ab8BewFCAcoBhgFVAacBdgYA
|
||||||
AYIBPgHGAYIBTQHVAZEBVQGzAYA2AAGOAbAB0QGPAcIB7gGHAboB6QGHAboB6QGHAboB6QGHAboB6QGH
|
A8sDVQPLJwABhAGnAcsBgQG0AeQBfQGwAeEBfQGwAeEBfQGwAeEBfQGwAeEBfQGwAeEBfQGwAeEBfQGw
|
||||||
AboB6QGHAboB6QGHAboB6QGHAboB6QGHAboB6QGHAboB6QGPAcIB7gGOAbAB0QkAAZsBxgHaAZIB2gH0
|
AeEBfQGwAeEBfQGwAeEBfQGwAeEBgQG0AeQBhAGnAcsJAAGUAcAB1gGKAdMB8AGCAc0B6wGCAc0B6wGC
|
||||||
AYsB1AHwAYsB1AHwAYsB1AHwAYsB1AHwAYsB1AHwAYsB1AHwAZIB2gH0AWkBrQHPAZIB2gH0AvgB8wGb
|
Ac0B6wGCAc0B6wGCAc0B6wGCAc0B6wGKAdMB8AFiAaYByAGKAdMB8ALpAdsBlAHAAdYDAAJVAbkBLQEc
|
||||||
AcYB2gMAAlUBxAE+AS0B7AEcAQAB4wEcAQAB4wEcAQAB4wEcAQAB4wEcAQAB4wFVAYYBpAFCAcoBhgFR
|
Ad4BFQEAAdUBFQEAAdUBFQEAAdUBFQEAAdUBFQEAAdUBVQGBAZoBOwHDAX8BSAHPAYwBOwHDAX8BOwHD
|
||||||
AdkBlQFCAcoBhgFCAcoBhgFCAcoBhgFRAdkBlQFVAbkBhAYAA9ADZwPQJwABkwG0AdQBlgHJAfIBjAG/
|
AX8BOwHDAX8BSAHPAYwBVQGtAXs2AAGKAa0BzwGIAbsB6gGCAbUB5QGCAbUB5QGCAbUB5QGCAbUB5QGC
|
||||||
AewBjAG/AewBjAG/AewBRAF3AaoBjAG/AewBRAF3AaoBjAG/AewBjAG/AewBjAG/AewBjAG/AewBlgHJ
|
AbUB5QGCAbUB5QGCAbUB5QGCAbUB5QGCAbUB5QGCAbUB5QGIAbsB6gGKAa0BzwkAAZgBwwHYAY4B1gHy
|
||||||
AfIBkwG0AdQJAAGfAcgB3QGXAd4B9gGQAdgB8gGQAdgB8gGQAdgB8gGQAdgB8gGQAdgB8gGQAdgB8gGX
|
AYcB0AHtAYcB0AHtAYcB0AHtAYcB0AHtAYcB0AHtAYcB0AHtAY4B1gHyAWYBqgHMAY4B1gHyAvAB5gGY
|
||||||
Ad4B9gF5Ab0B3AF4Ab0B3AL+Af0BnwHIAd0DAAJVAcgBRgE1AfIBIAEAAekBIAEAAekBIAEAAekBIAEA
|
AcMB2AMAAlUBvwE2ASUB5AEZAQAB2wEZAQAB2wEZAQAB2wEZAQAB2wEZAQAB2wFVAYQBoAE+AcYBggFN
|
||||||
AekBIAEAAekBVQGJAagBRAHMAYgBZQHtAakBZQHtAakBZQHtAakBZQHtAakBWAHWAZYBfwHLAaQGAANs
|
AdUBkQE+AcYBggE+AcYBggE+AcYBggFNAdUBkQFVAbMBgDYAAY4BsAHRAY8BwgHuAYcBugHpAYcBugHp
|
||||||
AW8CaQNsBgADdQN0A3EDbgNsA2gDZQNjA2AGAAGYAbgB1wGbAc4B9gGRAcQB8AGRAcQB8AGRAcQB8AFV
|
AYcBugHpAYcBugHpAYcBugHpAYcBugHpAYcBugHpAYcBugHpAYcBugHpAYcBugHpAY8BwgHuAY4BsAHR
|
||||||
AYgBuwFEAXcBqgFVAYgBuwFAAXMBpgGRAcQB8AGRAcQB8AGRAcQB8AGbAc4B9gGYAbgB1wkAAaIBygHe
|
CQABmwHGAdoBkgHaAfQBiwHUAfABiwHUAfABiwHUAfABiwHUAfABiwHUAfABiwHUAfABkgHaAfQBaQGt
|
||||||
AZsB4QH3AZQB2wH0AZQB2wH0AZQB2wH0AZQB2wH0AZQB2wH0AZQB2wH0AZQB2wH0AZ4B5AH5AXwBwAHe
|
Ac8BkgHaAfQC+AHzAZsBxgHaAwACVQHEAT4BLQHsARwBAAHjARwBAAHjARwBAAHjARwBAAHjARwBAAHj
|
||||||
AaIBygHeAe4B8wH1AwACfwHVAWIBYQHnAXYBdQH+AXYBdQH+AXkBYgGjAXsBUAFVAXsBUAFVAWoBWQE/
|
AVUBhgGkAUIBygGGAVEB2QGVAUIBygGGAUIBygGGAUIBygGGAVEB2QGVAVUBuQGEBgAD0ANnA9AnAAGT
|
||||||
AWoBbgEyAWoBbgEyAWEBiwFRAVUBwQGKAVUBwQGKAVUBwQGKAeIB7wHoBgAD0wNxA9MnAAGbAboB2QGf
|
AbQB1AGWAckB8gGMAb8B7AGMAb8B7AGMAb8B7AFEAXcBqgGMAb8B7AFEAXcBqgGMAb8B7AGMAb8B7AGM
|
||||||
AdIB+QGVAcgB8wGVAcgB8wGVAcgB8wFVAYgBuwFVAYgBuwFVAYgBuwFNAYABswGVAcgB8wGVAcgB8wGV
|
Ab8B7AGMAb8B7AGWAckB8gGTAbQB1AkAAZ8ByAHdAZcB3gH2AZAB2AHyAZAB2AHyAZAB2AHyAZAB2AHy
|
||||||
AcgB8wGfAdIB+QGbAboB2QkAAaUBzQHgAZ4B5QH5AZgB3wH2AZgB3wH2AZgB3wH2AZgB3wH2AZgB3wH2
|
AZAB2AHyAZAB2AHyAZcB3gH2AXkBvQHcAXgBvQHcAv4B/QGfAcgB3QMAAlUByAFGATUB8gEgAQAB6QEg
|
||||||
AZgB3wH2AZgB3wH2AZgB3wH2AaEB6AH6AaUBzQHgBgAC4gHxAlUBzgJVAc4CVQHOAW0BUwF1AdwBqQEy
|
AQAB6QEgAQAB6QEgAQAB6QEgAQAB6QFVAYkBqAFEAcwBiAFlAe0BqQFlAe0BqQFlAe0BqQFlAe0BqQFY
|
||||||
AdcBpAEtAdcBpAEtAdcBpAEtAdwBqQEyAbABhgFIQgABnwG9AdsBqQHbAf4BqgHdAf8BqgHdAf8BqgHd
|
AdYBlgF/AcsBpAYAA2wBbwJpA2wGAAN1A3QDcQNuA2wDaANlA2MDYAYAAZgBuAHXAZsBzgH2AZEBxAHw
|
||||||
Af8BdwGqAd0BdwGqAd0BdwGqAd0BZgGZAcwBqgHdAf8BqgHdAf8BqgHdAf8BqQHbAf4BnwG9AdsJAAGo
|
AZEBxAHwAZEBxAHwAVUBiAG7AUQBdwGqAVUBiAG7AUABcwGmAZEBxAHwAZEBxAHwAZEBxAHwAZsBzgH2
|
||||||
Ac4B4gGjAegB+wGdAeMB+QGdAeMB+QGdAeMB+QGdAeMB+QGdAeMB+QGdAeMB+QGdAeMB+QGdAeMB+QGj
|
AZgBuAHXCQABogHKAd4BmwHhAfcBlAHbAfQBlAHbAfQBlAHbAfQBlAHbAfQBlAHbAfQBlAHbAfQBlAHb
|
||||||
AegB+wGoAc4B4hIAAbYBiwFFAdwBqQEyAdEBngEnAdEBngEnAdEBngEnAdwBqQEyAbYBiwFFQgABxwHX
|
AfQBngHkAfkBfAHAAd4BogHKAd4B7gHzAfUDAAJ/AdUBYgFhAecBdgF1Af4BdgF1Af4BeQFiAaMBewFQ
|
||||||
AecBiAG2AeIBgAGzAeYBgAGzAeYBgAGzAeYBTgGBAbQBTgGBAbQBTgGBAbQBSAF7Aa4BgAGzAeYBgAGz
|
AVUBewFQAVUBagFZAT8BagFuATIBagFuATIBYQGLAVEBVQHBAYoBVQHBAYoBVQHBAYoB4gHvAegGAAPT
|
||||||
AeYBgAGzAeYBiAG2AeIBxwHXAecJAAGrAdAB4wGmAesB/AGhAeYB+wGhAeYB+wGhAeYB+wGhAeYB+wGh
|
A3ED0ycAAZsBugHZAZ8B0gH5AZUByAHzAZUByAHzAZUByAHzAVUBiAG7AVUBiAG7AVUBiAG7AU0BgAGz
|
||||||
AeYB+wGhAeYB+wGhAeYB+wGhAeYB+wGmAesB/AGrAdAB4xIAAbsBkAFBAeEBrgE4AdYBowEsAdYBowEs
|
AZUByAHzAZUByAHzAZUByAHzAZ8B0gH5AZsBugHZCQABpQHNAeABngHlAfkBmAHfAfYBmAHfAfYBmAHf
|
||||||
AdYBowEsAeEBrgE4AbsBkAFBEgAD1wN9A9cnAAHjAeoB8QGOAbgB4QGJAbwB7wGIAbsB7gGIAbsB7gFB
|
AfYBmAHfAfYBmAHfAfYBmAHfAfYBmAHfAfYBmAHfAfYBoQHoAfoBpQHNAeAGAALiAfECVQHOAlUBzgJV
|
||||||
AXQBpwFBAXQBpwFBAXQBpwE+AXEBpAGIAbsB7gGIAbsB7gGJAbwB7wGOAbgB4QHjAeoB8QkAAa4B0gHk
|
Ac4BbQFTAXUB3AGpATIB1wGkAS0B1wGkAS0B1wGkAS0B3AGpATIBsAGGAUhCAAGfAb0B2wGpAdsB/gGq
|
||||||
AakB7gH9AaQB6QH8AaQB6QH8AaQB6QH8AaQB6QH8AaQB6QH8AaQB6QH8AaQB6QH8AaQB6QH8AakB7gH9
|
Ad0B/wGqAd0B/wGqAd0B/wF3AaoB3QF3AaoB3QF3AaoB3QFmAZkBzAGqAd0B/wGqAd0B/wGqAd0B/wGp
|
||||||
Aa4B0gHkEgABwAGVAT8B5wG0AT0B2gGnATAB2gGnATAB2gGnATAB5wG0AT0BwAGVAT8SAAN/A3cDfwYA
|
AdsB/gGfAb0B2wkAAagBzgHiAaMB6AH7AZ0B4wH5AZ0B4wH5AZ0B4wH5AZ0B4wH5AZ0B4wH5AZ0B4wH5
|
||||||
A4IDgQN/A34DfAN6A3kDdgOrBgAB9QH3AfkBmwG+Ad8BiQG8Ae8BiAG7Ae4BiAG7Ae4BNQFoAZsBNQFo
|
AZ0B4wH5AZ0B4wH5AaMB6AH7AagBzgHiEgABtgGLAUUB3AGpATIB0QGeAScB0QGeAScB0QGeAScB3AGp
|
||||||
AZsBNQFoAZsBNQFoAZsBiAG7Ae4BiAG7Ae4BiQG8Ae8BmwG+Ad8B9QH3AfkJAAGwAdQB5gGsAfEB/wGn
|
ATIBtgGLAUVCAAHHAdcB5wGIAbYB4gGAAbMB5gGAAbMB5gGAAbMB5gFOAYEBtAFOAYEBtAFOAYEBtAFI
|
||||||
AewB/gGnAewB/gGnAewB/gGnAewB/gGnAewB/gGnAewB/gGnAewB/gGnAewB/gGsAfEB/wGwAdQB5hIA
|
AXsBrgGAAbMB5gGAAbMB5gGAAbMB5gGIAbYB4gHHAdcB5wkAAasB0AHjAaYB6wH8AaEB5gH7AaEB5gH7
|
||||||
AcYBmgE9AesBuAFBAd0BqgEzAd0BqgEzAd0BqgEzAesBuAFBAcYBmgE9EgAD2AOCA9gnAAP+AcsB2gHq
|
AaEB5gH7AaEB5gH7AaEB5gH7AaEB5gH7AaEB5gH7AaEB5gH7AaYB6wH8AasB0AHjEgABuwGQAUEB4QGu
|
||||||
AakBxQHiAakBxQHiAakBxQHiAVUBfQGmAVUBfQGmAVUBfQGmAVUBfQGmAakBxQHiAakBxQHiAakBxQHi
|
ATgB1gGjASwB1gGjASwB1gGjASwB4QGuATgBuwGQAUESAAPXA30D1ycAAeMB6gHxAY4BuAHhAYkBvAHv
|
||||||
AcsB2gHqA/4JAAGyAdUB5gGxAfUB/wGuAfIB/wGuAfIB/wGuAfIB/wGuAfIB/wGuAfIB/wGuAfIB/wGu
|
AYgBuwHuAYgBuwHuAUEBdAGnAUEBdAGnAUEBdAGnAT4BcQGkAYgBuwHuAYgBuwHuAYkBvAHvAY4BuAHh
|
||||||
AfIB/wGuAfIB/wGxAfUB/wGyAdUB5hIAAdQBswFsAecBuAFGAf4BywFUAf4BywFUAf4BywFUAecBuAFG
|
AeMB6gHxCQABrgHSAeQBqQHuAf0BpAHpAfwBpAHpAfwBpAHpAfwBpAHpAfwBpAHpAfwBpAHpAfwBpAHp
|
||||||
AdQBswFsdQAB0AHkAe4BswHWAecBswHWAecBswHWAecBswHWAecBswHWAecBswHWAecBswHWAecBswHW
|
AfwBpAHpAfwBqQHuAf0BrgHSAeQSAAHAAZUBPwHnAbQBPQHaAacBMAHaAacBMAHaAacBMAHnAbQBPQHA
|
||||||
AecBswHWAecBswHWAecB0AHkAe4SAAHwAesB3gHNAaABOQHNAaABOQHNAaABOQHNAaABOQHNAaABOQHw
|
AZUBPxIAA38DdwN/BgADggOBA38DfgN8A3oDeQN2A6sGAAH1AfcB+QGbAb4B3wGJAbwB7wGIAbsB7gGI
|
||||||
AesB3g8AA/sD8QLIAcMCuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwAsgBwwPx
|
AbsB7gE1AWgBmwE1AWgBmwE1AWgBmwE1AWgBmwGIAbsB7gGIAbsB7gGJAbwB7wGbAb4B3wH1AfcB+QkA
|
||||||
BvsD8QLIAcMCuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwAsgBwwPxA/tgAAP9
|
AbAB1AHmAawB8QH/AacB7AH+AacB7AH+AacB7AH+AacB7AH+AacB7AH+AacB7AH+AacB7AH+AacB7AH+
|
||||||
|
AawB8QH/AbAB1AHmEgABxgGaAT0B6wG4AUEB3QGqATMB3QGqATMB3QGqATMB6wG4AUEBxgGaAT0SAAPY
|
||||||
|
A4ID2CcAA/4BywHaAeoBqQHFAeIBqQHFAeIBqQHFAeIBVQF9AaYBVQF9AaYBVQF9AaYBVQF9AaYBqQHF
|
||||||
|
AeIBqQHFAeIBqQHFAeIBywHaAeoD/gkAAbIB1QHmAbEB9QH/Aa4B8gH/Aa4B8gH/Aa4B8gH/Aa4B8gH/
|
||||||
|
Aa4B8gH/Aa4B8gH/Aa4B8gH/Aa4B8gH/AbEB9QH/AbIB1QHmEgAB1AGzAWwB5wG4AUYB/gHLAVQB/gHL
|
||||||
|
AVQB/gHLAVQB5wG4AUYB1AGzAWx1AAHQAeQB7gGzAdYB5wGzAdYB5wGzAdYB5wGzAdYB5wGzAdYB5wGz
|
||||||
|
AdYB5wGzAdYB5wGzAdYB5wGzAdYB5wGzAdYB5wHQAeQB7hIAAfAB6wHeAc0BoAE5Ac0BoAE5Ac0BoAE5
|
||||||
|
Ac0BoAE5Ac0BoAE5AfAB6wHeDwAD+wPxAsgBwwK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGw
|
||||||
|
ArgBsAK4AbACyAHDA/EG+wPxAsgBwwK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4
|
||||||
|
AbACyAHDA/ED+2AAA/0D+gLAAbgL/wP+Af0C/gH8Av0B+wL9AfoC/AH4Av4B+QLAAbgD+gb9A/oCwAG4
|
||||||
|
C/8D/gH9Av4B/AL9AfsC/QH6AvwB+AL+AfkCwAG4A/oD/WYAAskBwQb/A/4C/QH8Av0B+wL8AfkC+wH4
|
||||||
|
AvoB9gL4AfQC+wH2AskBwQwAAskBwQb/A/4C/QH8Av0B+wL8AfkC+wH4AvoB9gL4AfQC+wH2AskBwWwA
|
||||||
|
As8BxwP/A/4C/QH8Av0B+wL8AfkC+wH4AvoB9gL4AfQC9wHyAvsB9QLPAccMAALPAccD/wP+Av0B/AL9
|
||||||
|
AfsC/AH5AvsB+AL6AfYC+AH0AvcB8gL7AfUCzwHHDAAD/gP8BvkD+gb8A/sG+QP8A/4GAAP9A/wD+h74
|
||||||
|
A/oD/AP9BgAC0AHIAv8B/gL9AfwC/QH7Ab8BSAGuAewBzgHlAvoB9gL4AfQC9wHyAvYB8AL6AfMC0AHI
|
||||||
|
DAAC0AHIAv8B/gL9AfwB6QHPAesBrgFIAb8BrgFIAb8BrgFIAb8B0wGhAdoC9wHyAvYB8AL6AfMC0AHI
|
||||||
|
DAAD/gP8A/kDswNcBvwDXAO0A/kD/AP+BgAD/QOEAzQDhAP4A+IGNAOEA+IDdQOkA/gDhAM0A+kGAALS
|
||||||
|
AcsC/gP9AfsC/AH5AcYBTwG1AewBzwHlAvgB9AL3AfIC9gHwAvUB7gL6AfIC0gHLDAAC0gHLAv4D/QH7
|
||||||
|
AeoB0QHtAbUBTwHGAvoB9gHnAc4B6AG1AU8BxgHuAeEB6wL1Ae4C+gHyAtIByxIAA8sDdQP4BgAD+AN1
|
||||||
|
A8sSAAN5A/UGAAOqA3kGAAPLA74D7gOqA8IJAALVAc0C/gP8AfkC+wH4Ac4BVwG9Ac4BVwG9Ac4BVwG9
|
||||||
|
AeIBpgHWAvUB7gL0AewC+QHvAtUBzQwAAtUBzQL+A/wB+QHrAdIB7QG9AVcBzgL4AfQC9wHyAb0BVwHO
|
||||||
|
AecBzQHlAvQB7AL5Ae8C1QHNDwADzgN/A/kMAAP5A38Dzg8AA8YMYAPGBgAD9QlgA+kJAALWAc4C/QP7
|
||||||
|
AfgC+gH2AdYBXwHFAe8B0QHmAvYB8AL1Ae4C9AHsAvEB5wL3AeoC1gHODAAC1gHOAv0D+wH4AewB0wHu
|
||||||
|
AcUBXwHWAvcB8gHqAdEB6gHFAV8B1gHtAeEB6QLxAecC9wHqAtYBzgwAA9ADhgP5EgAD+QOGA9AMAAP1
|
||||||
|
A5QD7wPRA2gD9QkAA5MD7wNoDAAC2AHQAv0D+gH2AvgB9AHcAWUBywHcAWUBywHcAWUBywHiAYkB0wLx
|
||||||
|
AecC7AHfAvQB5QLYAdAMAALYAdAC/QP6AfYB7QHTAe4BywFlAdwBywFlAdwBywFlAdwB3wGsAeMC8QHn
|
||||||
|
AuwB3wL0AeUC2AHQCQAD7wNsA+8YAAPvA2wD7wwAA48D9gO3A48MAAPMA30DzAwAAtoB0gL8A/gB9AL3
|
||||||
|
AfIC9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC8wHiAtoB0gwAAtoB0gL8A/gB9AL3AfIC9gHwAvUB7gL0
|
||||||
|
AewC8QHnAuwB3wLoAdkC8wHiAtoB0gwAA9QDkQP5EgAD+QORA9QPAAPOA9UDdwPODAAD7AN3A+wMAALb
|
||||||
|
AdMC/AP3AfIC9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC5gHVAvIB4QLbAdMMAALbAdMC/AP3AfIC9gHw
|
||||||
|
AvUB7gL0AewC8QHnAuwB3wLoAdkC5gHVAvIB4QLbAdMPAAPVA5YD+QwAA/kDlgPVEgAD9gOiA34D9iEA
|
||||||
|
AtwB1QL7A/YB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZAuYB1QLlAdQC8gHhAtwB1QwAAtwB1QL7A/YB8AL1
|
||||||
|
Ae4C9AHsAvEB5wLsAd8C6AHZAuYB1QLlAdQC8gHhAtwB1RIAA9cDmQP6BgAD+gOZA9cYAAacJAAC3QHW
|
||||||
|
AvoB9AL1Ae4C9AHsAvEB5wLsAd8C6AHZAuYB1QKkAZMCpAGTAqQBkwLJAcAMAALdAdYC+gH0AvUB7gL0
|
||||||
|
AewC8QHnAuwB3wLoAdkC5gHVAqQBkwKkAZMCpAGTAskBwBUAA9gDnQYAA50D2EUAAt4B1wL6AfMC9AHs
|
||||||
|
AvEB5wLsAd8C6AHZAuYB1QLlAdQCtgGlA/8C3gHXAvcB9gwAAt4B1wL6AfMC9AHsAvEB5wLsAd8C6AHZ
|
||||||
|
AuYB1QLlAdQCtgGlA/8C3gHXAvcB9mwAAt8B2QL8AfUC+QHvAvYB6gL0AeUC8wHiAvIB4QLyAeECwgGx
|
||||||
|
At8B2QL3AfYPAALfAdkC/AH1AvkB7wL2AeoC9AHlAvMB4gLyAeEC8gHhAsIBsQLfAdkC9wH2bwAC6gHm
|
||||||
|
AuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC9wH2EgAC6gHmAuAB2QLgAdkC4AHZAuAB2QLg
|
||||||
|
AdkC4AHZAuAB2QLgAdkC9wH2bAAD+wPxAsgBwwK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGw
|
||||||
|
ArgBsAK4AbACyAHDA/EG+wPxAsgBwwK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4
|
||||||
|
AbACyAHDA/EG+wPxAsgBwwK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACyAHD
|
||||||
|
A/EG+wPxAsgBwwK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACyAHDA/ED+wP9
|
||||||
A/oCwAG4C/8D/gH9Av4B/AL9AfsC/QH6AvwB+AL+AfkCwAG4A/oG/QP6AsABuAv/A/4B/QL+AfwC/QH7
|
A/oCwAG4C/8D/gH9Av4B/AL9AfsC/QH6AvwB+AL+AfkCwAG4A/oG/QP6AsABuAv/A/4B/QL+AfwC/QH7
|
||||||
Av0B+gL8AfgC/gH5AsABuAP6A/1mAALJAcEG/wP+Av0B/AL9AfsC/AH5AvsB+AL6AfYC+AH0AvsB9gLJ
|
Av0B+gL8AfgC/gH5AsABuAP6Bv0D+gLAAbgL/wP+Af0C/gH8Av0B+wL9AfoC/AH4Av4B+QLAAbgD+gb9
|
||||||
AcEMAALJAcEG/wP+Av0B/AL9AfsC/AH5AvsB+AL6AfYC+AH0AvsB9gLJAcFsAALPAccD/wP+Av0B/AL9
|
A/oCwAG4C/8D/gH9Av4B/AL9AfsC/QH6AvwB+AL+AfkCwAG4A/oD/QYAAskBwQb/A/4C/QH8Av0B+wL8
|
||||||
AfsC/AH5AvsB+AL6AfYC+AH0AvcB8gL7AfUCzwHHDAACzwHHA/8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2
|
AfkC+wH4AvoB9gL4AfQC+wH2AskBwQwAAskBwQb/A/4C/QH8Av0B+wL8AfkC+wH4AvoB9gL4AfQC+wH2
|
||||||
AvgB9AL3AfIC+wH1As8BxwwAA/4D/Ab5A/oG/AP7BvkD/AP+BgAD/QP8A/oe+AP6A/wD/QYAAtAByAL/
|
AskBwQwAAskBwQb/A/4C/QH8Av0B+wL8AfkC+wH4AvoB9gL4AfQC+wH2AskBwQwAAskBwQb/A/4C/QH8
|
||||||
Af4C/QH8Av0B+wG/AUgBrgHsAc4B5QL6AfYC+AH0AvcB8gL2AfAC+gHzAtAByAwAAtAByAL/Af4C/QH8
|
Av0B+wL8AfkC+wH4AvoB9gL4AfQC+wH2AskBwQwAAs8BxwP/A/4C/QH8Av0B+wL8AfkC+wH4AvoB9gL4
|
||||||
AekBzwHrAa4BSAG/Aa4BSAG/Aa4BSAG/AdMBoQHaAvcB8gL2AfAC+gHzAtAByAwAA/4D/AP5A7MDXAb8
|
AfQC9wHyAvsB9QLPAccMAALPAccD/wP+Av0B/AL9AfsC/AH5AvsB+AL6AfYC+AH0AvcB8gL7AfUCzwHH
|
||||||
A1wDtAP5A/wD/gYAA/0DhAM0A4QD+APiBjQDhAPiA3UDpAP4A4QDNAPpBgAC0gHLAv4D/QH7AvwB+QHG
|
|
||||||
AU8BtQHsAc8B5QL4AfQC9wHyAvYB8AL1Ae4C+gHyAtIBywwAAtIBywL+A/0B+wHqAdEB7QG1AU8BxgL6
|
|
||||||
AfYB5wHOAegBtQFPAcYB7gHhAesC9QHuAvoB8gLSAcsSAAPLA3UD+AYAA/gDdQPLEgADeQP1BgADqgN5
|
|
||||||
BgADywO+A+4DqgPCCQAC1QHNAv4D/AH5AvsB+AHOAVcBvQHOAVcBvQHOAVcBvQHiAaYB1gL1Ae4C9AHs
|
|
||||||
AvkB7wLVAc0MAALVAc0C/gP8AfkB6wHSAe0BvQFXAc4C+AH0AvcB8gG9AVcBzgHnAc0B5QL0AewC+QHv
|
|
||||||
AtUBzQ8AA84DfwP5DAAD+QN/A84PAAPGDGADxgYAA/UJYAPpCQAC1gHOAv0D+wH4AvoB9gHWAV8BxQHv
|
|
||||||
AdEB5gL2AfAC9QHuAvQB7ALxAecC9wHqAtYBzgwAAtYBzgL9A/sB+AHsAdMB7gHFAV8B1gL3AfIB6gHR
|
|
||||||
AeoBxQFfAdYB7QHhAekC8QHnAvcB6gLWAc4MAAPQA4YD+RIAA/kDhgPQDAAD9QOUA+8D0QNoA/UJAAOT
|
|
||||||
A+8DaAwAAtgB0AL9A/oB9gL4AfQB3AFlAcsB3AFlAcsB3AFlAcsB4gGJAdMC8QHnAuwB3wL0AeUC2AHQ
|
|
||||||
DAAC2AHQAv0D+gH2Ae0B0wHuAcsBZQHcAcsBZQHcAcsBZQHcAd8BrAHjAvEB5wLsAd8C9AHlAtgB0AkA
|
|
||||||
A+8DbAPvGAAD7wNsA+8MAAOPA/YDtwOPDAADzAN9A8wMAALaAdIC/AP4AfQC9wHyAvYB8AL1Ae4C9AHs
|
|
||||||
AvEB5wLsAd8C6AHZAvMB4gLaAdIMAALaAdIC/AP4AfQC9wHyAvYB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZ
|
|
||||||
AvMB4gLaAdIMAAPUA5ED+RIAA/kDkQPUDwADzgPVA3cDzgwAA+wDdwPsDAAC2wHTAvwD9wHyAvYB8AL1
|
|
||||||
Ae4C9AHsAvEB5wLsAd8C6AHZAuYB1QLyAeEC2wHTDAAC2wHTAvwD9wHyAvYB8AL1Ae4C9AHsAvEB5wLs
|
|
||||||
Ad8C6AHZAuYB1QLyAeEC2wHTDwAD1QOWA/kMAAP5A5YD1RIAA/YDogN+A/YhAALcAdUC+wP2AfAC9QHu
|
|
||||||
AvQB7ALxAecC7AHfAugB2QLmAdUC5QHUAvIB4QLcAdUMAALcAdUC+wP2AfAC9QHuAvQB7ALxAecC7AHf
|
|
||||||
AugB2QLmAdUC5QHUAvIB4QLcAdUSAAPXA5kD+gYAA/oDmQPXGAAGnCQAAt0B1gL6AfQC9QHuAvQB7ALx
|
|
||||||
AecC7AHfAugB2QLmAdUCpAGTAqQBkwKkAZMCyQHADAAC3QHWAvoB9AL1Ae4C9AHsAvEB5wLsAd8C6AHZ
|
|
||||||
AuYB1QKkAZMCpAGTAqQBkwLJAcAVAAPYA50GAAOdA9hFAALeAdcC+gHzAvQB7ALxAecC7AHfAugB2QLm
|
|
||||||
AdUC5QHUArYBpQP/At4B1wL3AfYMAALeAdcC+gHzAvQB7ALxAecC7AHfAugB2QLmAdUC5QHUArYBpQP/
|
|
||||||
At4B1wL3AfZsAALfAdkC/AH1AvkB7wL2AeoC9AHlAvMB4gLyAeEC8gHhAsIBsQLfAdkC9wH2DwAC3wHZ
|
|
||||||
AvwB9QL5Ae8C9gHqAvQB5QLzAeIC8gHhAvIB4QLCAbEC3wHZAvcB9m8AAuoB5gLgAdkC4AHZAuAB2QLg
|
|
||||||
AdkC4AHZAuAB2QLgAdkC4AHZAvcB9hIAAuoB5gLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZ
|
|
||||||
AvcB9mwAA/sD8QLIAcMCuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwAsgBwwPx
|
|
||||||
BvsD8QLIAcMCuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwAsgBwwPxBvsD8QLI
|
|
||||||
AcMCuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwAsgBwwPxBvsD8QLIAcMCuAGw
|
|
||||||
ArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwAsgBwwPxA/sD/QP6AsABuAv/A/4B/QL+
|
|
||||||
AfwC/QH7Av0B+gL8AfgC/gH5AsABuAP6Bv0D+gLAAbgL/wP+Af0C/gH8Av0B+wL9AfoC/AH4Av4B+QLA
|
|
||||||
AbgD+gb9A/oCwAG4C/8D/gH9Av4B/AL9AfsC/QH6AvwB+AL+AfkCwAG4A/oG/QP6AsABuAv/A/4B/QL+
|
|
||||||
AfwC/QH7Av0B+gL8AfgC/gH5AsABuAP6A/0GAALJAcEG/wP+Av0B/AL9AfsC/AH5AvsB+AL6AfYC+AH0
|
|
||||||
AvsB9gLJAcEMAALJAcEG/wP+Av0B/AL9AfsC/AH5AvsB+AL6AfYC+AH0AvsB9gLJAcEMAALJAcEG/wP+
|
|
||||||
Av0B/AL9AfsC/AH5AvsB+AL6AfYC+AH0AvsB9gLJAcEMAALJAcEG/wP+Av0B/AL9AfsC/AH5AvsB+AL6
|
|
||||||
AfYC+AH0AvsB9gLJAcEMAALPAccD/wP+Av0B/AL9AfsC/AH5AvsB+AL6AfYC+AH0AvcB8gL7AfUCzwHH
|
|
||||||
DAACzwHHA/8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL3AfIC+wH1As8BxwwAAs8BxwP/A/4C/QH8
|
DAACzwHHA/8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL3AfIC+wH1As8BxwwAAs8BxwP/A/4C/QH8
|
||||||
Av0B+wL8AfkC+wH4AvoB9gL4AfQC9wHyAvsB9QLPAccMAALPAccD/wP+Av0B/AL9AfsC/AH5AvsB+AL6
|
Av0B+wL8AfkC+wH4AvoB9gL4AfQC9wHyAvsB9QLPAccMAALQAcgC/wH+Av0B/AHcAc8B6wF7AUgBvwF7
|
||||||
AfYC+AH0AvcB8gL7AfUCzwHHDAAC0AHIAv8B/gL9AfwB3AHPAesBewFIAb8BewFIAb8BewFIAb8BiwFe
|
AUgBvwF7AUgBvwGLAV4BxgHoAeEB6wL2AfAC+gHzAtAByAwAAtAByAL/Af4C/QH8Av0B+wGCAcIBtAFZ
|
||||||
AcYB6AHhAesC9gHwAvoB8wLQAcgMAALQAcgC/wH+Av0B/AL9AfsBggHCAbQBWQGuAZ0BWQGuAZ0BqQHT
|
Aa4BnQFZAa4BnQGpAdMByAL3AfIC9gHwAvoB8wLQAcgMAALQAcgC/wH+Av0B/AL9AfsB3gGiAakBvwFI
|
||||||
AcgC9wHyAvYB8AL6AfMC0AHIDAAC0AHIAv8B/gL9AfwC/QH7Ad4BogGpAb8BSAFZAb8BSAFZAdwBoAGm
|
AVkBvwFIAVkB3AGgAaYC9wHyAvYB8AL6AfMC0AHIDAAC0AHIAv8B/gL9AfwC/QH7Ab8BewFIAb8BewFI
|
||||||
AvcB8gL2AfAC+gHzAtAByAwAAtAByAL/Af4C/QH8Av0B+wG/AXsBSAG/AXsBSAG/AXsBSAHcAboBngL3
|
Ab8BewFIAdwBugGeAvcB8gL2AfAC+gHzAtAByAwAAtIBywL+A/0B+wHdAdEB7QGCAU8BxgL6AfYC+AH0
|
||||||
AfIC9gHwAvoB8wLQAcgMAALSAcsC/gP9AfsB3QHRAe0BggFPAcYC+gH2AvgB9AGCAU8BxgHZAcwB5QL1
|
AYIBTwHGAdkBzAHlAvUB7gL6AfIC0gHLDAAC0gHLAv4D/QH7AvwB+QL7AfgC+gH2AdIB6AHgAWABtQGk
|
||||||
Ae4C+gHyAtIBywwAAtIBywL+A/0B+wL8AfkC+wH4AvoB9gHSAegB4AFgAbUBpAL2AfAC9QHuAvoB8gLS
|
AvYB8AL1Ae4C+gHyAtIBywwAAtIBywL+A/0B+wL8AfkC+wH4AeABpQGrAdMBegGFAvcB8gL2AfAC9QHu
|
||||||
AcsMAALSAcsC/gP9AfsC/AH5AvsB+AHgAaUBqwHTAXoBhQL3AfIC9gHwAvUB7gL6AfIC0gHLDAAC0gHL
|
AvoB8gLSAcsMAALSAcsC/gP9AfsC/AH5AcYBggFPAewB2wHMAvgB9AL3AfIC9gHwAvUB7gL6AfIC0gHL
|
||||||
Av4D/QH7AvwB+QHGAYIBTwHsAdsBzAL4AfQC9wHyAvYB8AL1Ae4C+gHyAtIBywwAAtUBzQL+A/wB+QHf
|
DAAC1QHNAv4D/AH5Ad8B0gHtAYoBVwHOAZgBbAHTAYoBVwHOAaUBfwHXAecB4QHpAvQB7AL5Ae8C1QHN
|
||||||
AdIB7QGKAVcBzgGYAWwB0wGKAVcBzgGlAX8B1wHnAeEB6QL0AewC+QHvAtUBzQwAAtUBzQL+A/wB+QL7
|
DAAC1QHNAv4D/AH5AvsB+AGyAdwB0gFoAb0BrAFoAb0BrAGuAdkBzQL1Ae4C9AHsAvkB7wLVAc0MAALV
|
||||||
AfgBsgHcAdIBaAG9AawBaAG9AawBrgHZAc0C9QHuAvQB7AL5Ae8C1QHNDAAC1QHNAv4D/AH5AvsB+AL6
|
Ac0C/gP8AfkC+wH4AvoB9gHjAagBrgHZAX8BiwL2AfAC9QHuAvQB7AL5Ae8C1QHNDAAC1QHNAv4D/AH5
|
||||||
AfYB4wGoAa4B2QF/AYsC9gHwAvUB7gL0AewC+QHvAtUBzQwAAtUBzQL+A/wB+QL7AfgBzgGKAVcB7gHd
|
AvsB+AHOAYoBVwHuAd0BzAL3AfIC9gHwAvUB7gL0AewC+QHvAtUBzQwAAtYBzgL9A/sB+AHgAdMB7gGS
|
||||||
AcwC9wHyAvYB8AL1Ae4C9AHsAvkB7wLVAc0MAALWAc4C/QP7AfgB4AHTAe4BkgFfAdYC9wHyAd0B0AHp
|
AV8B1gL3AfIB3QHQAekBkgFfAdYC9AHsAvEB5wL3AeoC1gHODAAC1gHOAv0D+wH4AvoB9gFwAcUBtAHV
|
||||||
AZIBXwHWAvQB7ALxAecC9wHqAtYBzgwAAtYBzgL9A/sB+AL6AfYBcAHFAbQB1QHrAeIC9gHwAvUB7gL0
|
AesB4gL2AfAC9QHuAvQB7ALxAecC9wHqAtYBzgwAAtYBzgL9A/sB+AL6AfYC+AH0AecBqwGxAd4BhQGQ
|
||||||
AewC8QHnAvcB6gLWAc4MAALWAc4C/QP7AfgC+gH2AvgB9AHnAasBsQHeAYUBkAL1Ae4C9AHsAvEB5wL3
|
AvUB7gL0AewC8QHnAvcB6gLWAc4MAALWAc4C/QP7AfgC+gH2AdYBkgFfAe8B3gHNAvYB8AL1Ae4C9AHs
|
||||||
AeoC1gHODAAC1gHOAv0D+wH4AvoB9gHWAZIBXwHvAd4BzQL2AfAC9QHuAvQB7ALxAecC9wHqAtYBzgwA
|
AvEB5wL3AeoC1gHODAAC2AHQAv0D+gH2AeAB0wHuAZgBZQHcAZgBZQHcAZgBZQHcAcUBrAHjAvEB5wLs
|
||||||
AtgB0AL9A/oB9gHgAdMB7gGYAWUB3AGYAWUB3AGYAWUB3AHFAawB4wLxAecC7AHfAvQB5QLYAdAMAALY
|
Ad8C9AHlAtgB0AwAAtgB0AL9A/oB9gL4AfQBtwHhAdUBdgHLAboBdgHLAboBlQHVAcYC8QHnAuwB3wL0
|
||||||
AdAC/QP6AfYC+AH0AbcB4QHVAXYBywG6AXYBywG6AZUB1QHGAvEB5wLsAd8C9AHlAtgB0AwAAtgB0AL9
|
AeUC2AHQDAAC2AHQAv0D+gH2AvgB9AHqAa8BtAHcAWUBdgHcAWUBdgHoAawBsQLxAecC7AHfAvQB5QLY
|
||||||
A/oB9gL4AfQB6gGvAbQB3AFlAXYB3AFlAXYB6AGsAbEC8QHnAuwB3wL0AeUC2AHQDAAC2AHQAv0D+gH2
|
AdAMAALYAdAC/QP6AfYC+AH0AdwBmAFlAe8B3gHNAvUB7gL0AewC8QHnAuwB3wL0AeUC2AHQDAAC2gHS
|
||||||
AvgB9AHcAZgBZQHvAd4BzQL1Ae4C9AHsAvEB5wLsAd8C9AHlAtgB0AwAAtoB0gL8A/gB9AL3AfIC9gHw
|
AvwD+AH0AvcB8gL2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLzAeIC2gHSDAAC2gHSAvwD+AH0AvcB8gL2
|
||||||
AvUB7gL0AewC8QHnAuwB3wLoAdkC8wHiAtoB0gwAAtoB0gL8A/gB9AL3AfIC9gHwAvUB7gL0AewC8QHn
|
AfAC9QHuAvQB7ALxAecC7AHfAugB2QLzAeIC2gHSDAAC2gHSAvwD+AH0AvcB8gL2AfAC9QHuAvQB7ALx
|
||||||
AuwB3wLoAdkC8wHiAtoB0gwAAtoB0gL8A/gB9AL3AfIC9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC8wHi
|
AecC7AHfAugB2QLzAeIC2gHSDAAC2gHSAvwD+AH0AvcB8gL2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLz
|
||||||
AtoB0gwAAtoB0gL8A/gB9AL3AfIC9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC8wHiAtoB0gwAAtsB0wL8
|
AeIC2gHSDAAC2wHTAvwD9wHyAvYB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZAuYB1QLyAeEC2wHTDAAC2wHT
|
||||||
A/cB8gL2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUC8gHhAtsB0wwAAtsB0wL8A/cB8gL2AfAC9QHu
|
AvwD9wHyAvYB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZAuYB1QLyAeEC2wHTDAAC2wHTAvwD9wHyAvYB8AL1
|
||||||
AvQB7ALxAecC7AHfAugB2QLmAdUC8gHhAtsB0wwAAtsB0wL8A/cB8gL2AfAC9QHuAvQB7ALxAecC7AHf
|
Ae4C9AHsAvEB5wLsAd8C6AHZAuYB1QLyAeEC2wHTDAAC2wHTAvwD9wHyAvYB8AL1Ae4C9AHsAvEB5wLs
|
||||||
AugB2QLmAdUC8gHhAtsB0wwAAtsB0wL8A/cB8gL2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUC8gHh
|
Ad8C6AHZAuYB1QLyAeEC2wHTDAAC3AHVAvsD9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC5gHVAuUB1ALy
|
||||||
AtsB0wwAAtwB1QL7A/YB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZAuYB1QLlAdQC8gHhAtwB1QwAAtwB1QL7
|
AeEC3AHVDAAC3AHVAvsD9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC5gHVAuUB1ALyAeEC3AHVDAAC3AHV
|
||||||
A/YB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZAuYB1QLlAdQC8gHhAtwB1QwAAtwB1QL7A/YB8AL1Ae4C9AHs
|
AvsD9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC5gHVAuUB1ALyAeEC3AHVDAAC3AHVAvsD9gHwAvUB7gL0
|
||||||
AvEB5wLsAd8C6AHZAuYB1QLlAdQC8gHhAtwB1QwAAtwB1QL7A/YB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZ
|
AewC8QHnAuwB3wLoAdkC5gHVAuUB1ALyAeEC3AHVDAAC3QHWAvoB9AL1Ae4C9AHsAvEB5wLsAd8C6AHZ
|
||||||
AuYB1QLlAdQC8gHhAtwB1QwAAt0B1gL6AfQC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUCpAGTAqQBkwKk
|
AuYB1QKkAZMCpAGTAqQBkwLJAcAMAALdAdYC+gH0AvUB7gL0AewC8QHnAuwB3wLoAdkC5gHVAqQBkwKk
|
||||||
AZMCyQHADAAC3QHWAvoB9AL1Ae4C9AHsAvEB5wLsAd8C6AHZAuYB1QKkAZMCpAGTAqQBkwLJAcAMAALd
|
AZMCpAGTAskBwAwAAt0B1gL6AfQC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUCpAGTAqQBkwKkAZMCyQHA
|
||||||
AdYC+gH0AvUB7gL0AewC8QHnAuwB3wLoAdkC5gHVAqQBkwKkAZMCpAGTAskBwAwAAt0B1gL6AfQC9QHu
|
DAAC3QHWAvoB9AL1Ae4C9AHsAvEB5wLsAd8C6AHZAuYB1QKkAZMCpAGTAqQBkwLJAcAMAALeAdcC+gHz
|
||||||
AvQB7ALxAecC7AHfAugB2QLmAdUCpAGTAqQBkwKkAZMCyQHADAAC3gHXAvoB8wL0AewC8QHnAuwB3wLo
|
AvQB7ALxAecC7AHfAugB2QLmAdUC5QHUArYBpQP/At4B1wL3AfYMAALeAdcC+gHzAvQB7ALxAecC7AHf
|
||||||
AdkC5gHVAuUB1AK2AaUD/wLeAdcC9wH2DAAC3gHXAvoB8wL0AewC8QHnAuwB3wLoAdkC5gHVAuUB1AK2
|
AugB2QLmAdUC5QHUArYBpQP/At4B1wL3AfYMAALeAdcC+gHzAvQB7ALxAecC7AHfAugB2QLmAdUC5QHU
|
||||||
AaUD/wLeAdcC9wH2DAAC3gHXAvoB8wL0AewC8QHnAuwB3wLoAdkC5gHVAuUB1AK2AaUD/wLeAdcC9wH2
|
ArYBpQP/At4B1wL3AfYMAALeAdcC+gHzAvQB7ALxAecC7AHfAugB2QLmAdUC5QHUArYBpQP/At4B1wL3
|
||||||
DAAC3gHXAvoB8wL0AewC8QHnAuwB3wLoAdkC5gHVAuUB1AK2AaUD/wLeAdcC9wH2DAAC3wHZAvwB9QL5
|
AfYMAALfAdkC/AH1AvkB7wL2AeoC9AHlAvMB4gLyAeEC8gHhAsIBsQLfAdkC9wH2DwAC3wHZAvwB9QL5
|
||||||
Ae8C9gHqAvQB5QLzAeIC8gHhAvIB4QLCAbEC3wHZAvcB9g8AAt8B2QL8AfUC+QHvAvYB6gL0AeUC8wHi
|
Ae8C9gHqAvQB5QLzAeIC8gHhAvIB4QLCAbEC3wHZAvcB9g8AAt8B2QL8AfUC+QHvAvYB6gL0AeUC8wHi
|
||||||
AvIB4QLyAeECwgGxAt8B2QL3AfYPAALfAdkC/AH1AvkB7wL2AeoC9AHlAvMB4gLyAeEC8gHhAsIBsQLf
|
AvIB4QLyAeECwgGxAt8B2QL3AfYPAALfAdkC/AH1AvkB7wL2AeoC9AHlAvMB4gLyAeEC8gHhAsIBsQLf
|
||||||
AdkC9wH2DwAC3wHZAvwB9QL5Ae8C9gHqAvQB5QLzAeIC8gHhAvIB4QLCAbEC3wHZAvcB9g8AAuoB5gLg
|
AdkC9wH2DwAC6gHmAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC9wH2EgAC6gHmAuAB2QLg
|
||||||
AdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAvcB9hIAAuoB5gLgAdkC4AHZAuAB2QLgAdkC4AHZ
|
AdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC9wH2EgAC6gHmAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZ
|
||||||
AuAB2QLgAdkC4AHZAvcB9hIAAuoB5gLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAvcB9hIA
|
AuAB2QLgAdkC9wH2EgAC6gHmAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC9wH2DAABQgFN
|
||||||
AuoB5gLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAvcB9gwAAUIBTQE+BwABPgMAASgDAAFA
|
AT4HAAE+AwABKAMAAUADAAFQAwABAQEAAQEFAAGAAQIWAAP/AQAE/wQABP8EAAT/BAABwAEDAcABAwQA
|
||||||
AwABUAMAAQEBAAEBBQABgAECFgAD/4IAAQEBAAEBAv8BwAEDAQABAQEAAQEC/wHAAQMBAAEBAQABAQL/
|
AcABAwHAAQMEAAHxAY8B8QGPBAAB4AEHAeABBwQAAccBIwHEAeMEAAGMATEBjAHxBAABxAHjAcQB4wQA
|
||||||
AeABBwEAAQEBAAEBAcABAwHAAQMBAAEBAQABAQHAAQMBgAEBAQABAQEAAQEB8QGPAYABAQEAAQEBAAEB
|
AeABBwHgAccEAAHxAY8B8QGPBAAB+QGfAfkBnwQABP8EAAT/BAAE/wUAAQEBAAEBAv8BwAEDAQABAQEA
|
||||||
AeABBwGAAQEBAAEBAQABAQHGAWMBgAEBAQABAQEAAQEBjgFxAYABAQEAAQEBAAEBAcYBYwGAAQEBAAEB
|
AQEC/wHAAQMBAAEBAQABAQL/AeABBwEAAQEBAAEBAcABAwHAAQMBAAEBAQABAQHAAQMBgAEBAQABAQEA
|
||||||
AQABAQHgAQcBgAEBAQABAQEAAQEB8QGPAYABAQEAAQEBAAEBAfkBnwHAAQMBAAEBAQABAQL/AeABBwEA
|
AQEB8QGPAYABAQEAAQEBAAEBAeABBwGAAQEBAAEBAQABAQHGAWMBgAEBAQABAQEAAQEBjgFxAYABAQEA
|
||||||
AQEBAAEBAv8B8AEPAYABAwEAAQEI/wIAAf4BAQL/BQABAQGIAwABwAEBAQABAQGIAQABgAEBAcABAQEA
|
AQEBAAEBAcYBYwGAAQEBAAEBAQABAQHgAQcBgAEBAQABAQEAAQEB8QGPAYABAQEAAQEBAAEBAfkBnwHA
|
||||||
AQEBjwH/AYABAQHAAQEBAAEBAv8BgAEBAcABAQEAAQEC/wGAAQEBwAEBAQABAQGPAf8BgAEBAcABAQEA
|
AQMBAAEBAQABAQL/AeABBwEAAQEBAAEBAv8B8AEPAYABAwEAAQEI/wIAAf4BAQL/BQABAQGIAwABwAEB
|
||||||
AQEBjAEBAYABAQHAAQEBAAEBAY8B/wGAAQEBwAEDAQABHwL/AYABAQHAAQMB8AEfAv8BgAEBAcABAwHw
|
AQABAQGIAQABgAEBAcABAQEAAQEBjwH/AYABAQHAAQEBAAEBAv8BgAEBAcABAQEAAQEC/wGAAQEBwAEB
|
||||||
AR8BjwH/AYABAQHAAQMB8AEfAYwBAQGAAQEBwAEDAfABHwGPAf8BgAEBAcABAwHwAR8E/wHAAQMB8AEf
|
AQABAQGPAf8BgAEBAcABAQEAAQEBjAEBAYABAQHAAQEBAAEBAY8B/wGAAQEBwAEDAQABHwL/AYABAQHA
|
||||||
BAAE/wQABP8BwAEDAcABAwT/AcABAwHAAQMBwAEDAgABwAEDAcABAwHAAQMCAAHAAQMBwAEDAfEBjwHM
|
AQMB8AEfAv8BgAEBAcABAwHwAR8BjwH/AYABAQHAAQMB8AEfAYwBAQGAAQEBwAEDAfABHwGPAf8BgAEB
|
||||||
AcEBwAEDAcABAwHjAccBwAHBAcABAwHAAQMBxwHjAcAB4wHAAQMBwAEDAY8B8QHhAeMBwAEDAcABAwHH
|
AcABAwHwAR8E/wHAAQMB8AEfBAAE/wQABP8BwAEDAcABAwT/AcABAwHAAQMBwAEDAgABwAEDAcABAwHA
|
||||||
AeMB4QHjAcABAwHAAQMB4wHHAeEB/wHAAQMBwAEDAfEBjwHzAf8BwAEDAcABAwH5AZ8C/wHAAQMBwAED
|
AQMCAAHAAQMBwAEDAfEBjwHMAcEBwAEDAcABAwHjAccBwAHBAcABAwHAAQMBxwHjAcAB4wHAAQMBwAED
|
||||||
BP8BwAEHAcABBwT/AcABDwHAAQ8E/xAAAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAED
|
AY8B8QHhAeMBwAEDAcABAwHHAeMB4QHjAcABAwHAAQMB4wHHAeEB/wHAAQMBwAEDAfEBjwHzAf8BwAED
|
||||||
AcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAED
|
AcABAwH5AZ8C/wHAAQMBwAEDBP8BwAEHAcABBwT/AcABDwHAAQ8E/xAAAcABAwHAAQMBwAEDAcABAwHA
|
||||||
AcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAED
|
AQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHA
|
||||||
AcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABBwHAAQcBwAEHAcABBwHAAQ8BwAEP
|
AQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHA
|
||||||
AcABDwHAAQ8L
|
AQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABBwHA
|
||||||
|
AQcBwAEHAcABBwHAAQ8BwAEPAcABDwHAAQ8L
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
@ -665,15 +675,15 @@
|
||||||
<data name="_buttonCut.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="_buttonCut.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHASURBVDhPrZI/SEJhFMXv2yWKiP4YJIKIQzwnQQJBcBFp
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHBSURBVDhPrZI/SEJhFMXv2yWKiP4YJIKIQzwnQQJBcBFp
|
||||||
UFrCJmsWKTB5i2AEzjUYRdAWNUgtEQnhIAQhvJC3JC1CIeHSUlCQX/d8foaVSUMXDp/nnN+9Okj/MrFY
|
UFrCJmsWKTB5i2AEzjUYRdAWNUgtEQnhIEQhvIi3JC1CIeHSUlCQX/d8foaVSUMXDvfdc373vjc8+peK
|
||||||
bD4ajerKDhxw4JXtTCKRMKBIJDLwCPouq6LOuFwuwzRNEY/HjWAw2PcIcvTgwKv4c3SElmUJ/omG1+v9
|
xWKz0WhUV2PfAgdeje1KJBIGFIlE+h5B3mGV1S6Xy2WYpini8bgRDAZ7HoGPHBx4ZX+WDtOyLMGfaHi9
|
||||||
cgQeOXq13PdLdLfbbdTrdREOhw0GJYQXHjl6cMh/G3mk0WiIQCBg2O32Bbzwf1mWM8eQx+Mxms2mCIVC
|
3i9HMMNHrpZ7vkR3u91GrVYT4XDYYFBC6JjhIwcH/7eSR+r1uggEAobdbp9Dx/yXZVkzDHk8HqPRaIhQ
|
||||||
F+VyWcAjV8jPeSSyPRAt3mvaFuu4qGmlDYfDarVaomKzWTfskaMHB16tElls7jRts+X3V1+SyadaNtsW
|
KHRWLpcFZvgK+VmPRLYHovl7TdtgHRY1rbTmcFjNZlNUbDbrmmf4yMGBV6tEFg93mrbe9PurL8nkk5nN
|
||||||
+byopVLikugZn6XnHD048NiTB0yipYbPZwI6cTpvt4mq77mcOOP3nKiAFx45enDgsScPVDRtv3f5NZ0W
|
tkQ+L25SKXFO9IxnCD5ycOCxJw+YRAt1n88EdOR03m4SVd9zOXHC/ZSogI4ZPnJw4LEnD1Q0bbd7+TWd
|
||||||
p/yyJIAXHnnvEezJA0WiUjWdbqN8y2TEIb9H3etq4JGjBwcee7LcIdq91vUmrh5wuf5tuTvI0YMDjz1Z
|
FsfcWRJAxwy/+wj25IEiUekynW4hfMtkxD73g851VZjhIwcHHnsy3CLavtL1Bq7ucbj6bblT8JGDA489
|
||||||
uPlfWiDa4+BqmWiNo1mWizXDsrOmWU6WZ4VoFRx47HEmZ6pHk6xx1ihrmDWkNMIaY02weniiDzfL66dM
|
Gbj5Ly0Q7bBxsUi0wtY0y8WaYtlZkywny7NEtAwOPPbYkzXRpXHWKGuYNcgaUBpijbDGWF080QcoZeub
|
||||||
bAjUAAAAAElFTkSuQmCC
|
/rhQAgAAAABJRU5ErkJggg==
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="_buttonCopy.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="_buttonCopy.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
@ -906,6 +916,16 @@
|
||||||
AgAAAAkEAAAAAAAAAAEAAAAMBQAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
|
AgAAAAkEAAAAAAAAAAEAAAAMBQAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
|
||||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkHBAAAAAABAAAA
|
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkHBAAAAAABAAAA
|
||||||
AAAAAAQdU3lzdGVtLldpbmRvd3MuRm9ybXMuVHJlZU5vZGUFAAAACw==
|
AAAAAAQdU3lzdGVtLldpbmRvd3MuRm9ybXMuVHJlZU5vZGUFAAAACw==
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="_buttonAddTagLongArray.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADxSURBVDhPYxi+IIyRkXEalM0AZYdBeIRBBFDDTCAtBuGC
|
||||||
|
gRhULALCxQ2igArnAGnx1Om338/c9XQ/RBgMxKFyURAuJogBKlgApMVBnPiJV/9N3fEI2QAQABkCUhMD
|
||||||
|
4SKAAVBiD4iGcBkYwjvP/pu0+e4+KBcZYKiFgUSgxEogLQni+Dce/de7/uZeEBsJSELVJEK4mCAZqGAd
|
||||||
|
kJb0qN73D4yr9v0umnVuHkgMKpcMUogPpAMVbgPS0hAuGEhDxdIhXOyABYh5gRgUiI1AfByI+YCYH8pu
|
||||||
|
AGIJKB+kFgMgGwAKBxEghhkgDBXDa8CQBAwMAHEvNbCJ+DaqAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
using NBTModel.Interop;
|
||||||
using Substrate.Nbt;
|
using Substrate.Nbt;
|
||||||
|
|
||||||
namespace NBTExplorer.Windows
|
namespace NBTExplorer.Windows
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Text;
|
|
||||||
using NBTExplorer.Model;
|
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
using NBTExplorer.Model;
|
||||||
|
|
||||||
namespace NBTExplorer.Windows
|
namespace NBTExplorer.Windows
|
||||||
{
|
{
|
||||||
|
|
44
NBTModel/Data/CubicRegionFile.cs
Normal file
44
NBTModel/Data/CubicRegionFile.cs
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
using System;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using Substrate.Core;
|
||||||
|
|
||||||
|
namespace NBTExplorer.Model
|
||||||
|
{
|
||||||
|
public class CubicRegionFile : RegionFile
|
||||||
|
{
|
||||||
|
private static Regex _namePattern = new Regex("r2\\.(-?[0-9]+)\\.(-?[0-9]+)\\.(-?[0-9]+)\\.mc[ar]$");
|
||||||
|
|
||||||
|
private const int _sectorBytes = 256;
|
||||||
|
private static byte[] _emptySector = new byte[_sectorBytes];
|
||||||
|
|
||||||
|
public CubicRegionFile (string path)
|
||||||
|
: base(path)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
protected override int SectorBytes
|
||||||
|
{
|
||||||
|
get { return _sectorBytes; }
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override byte[] EmptySector
|
||||||
|
{
|
||||||
|
get { return _emptySector; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public override RegionKey parseCoordinatesFromName ()
|
||||||
|
{
|
||||||
|
int x = 0;
|
||||||
|
int z = 0;
|
||||||
|
|
||||||
|
Match match = _namePattern.Match(fileName);
|
||||||
|
if (!match.Success) {
|
||||||
|
return RegionKey.InvalidRegion;
|
||||||
|
}
|
||||||
|
|
||||||
|
x = Convert.ToInt32(match.Groups[1].Value);
|
||||||
|
z = Convert.ToInt32(match.Groups[3].Value);
|
||||||
|
|
||||||
|
return new RegionKey(x, z);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using NBTExplorer.Utility;
|
||||||
|
|
||||||
namespace NBTExplorer.Model
|
namespace NBTExplorer.Model
|
||||||
{
|
{
|
66
NBTModel/Data/ListTagContainer.cs
Normal file
66
NBTModel/Data/ListTagContainer.cs
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
using System;
|
||||||
|
using Substrate.Nbt;
|
||||||
|
|
||||||
|
namespace NBTExplorer.Model
|
||||||
|
{
|
||||||
|
public class ListTagContainer : IOrderedTagContainer
|
||||||
|
{
|
||||||
|
private TagNodeList _tag;
|
||||||
|
private Action<bool> _modifyHandler;
|
||||||
|
|
||||||
|
public ListTagContainer (TagNodeList tag, Action<bool> modifyHandler)
|
||||||
|
{
|
||||||
|
_tag = tag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int TagCount
|
||||||
|
{
|
||||||
|
get { return _tag.Count; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool DeleteTag (TagNode tag)
|
||||||
|
{
|
||||||
|
bool result = _tag.Remove(tag);
|
||||||
|
if (result)
|
||||||
|
SetModified();
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int GetTagIndex (TagNode tag)
|
||||||
|
{
|
||||||
|
return _tag.IndexOf(tag);
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool InsertTag (TagNode tag, int index)
|
||||||
|
{
|
||||||
|
if (index < 0 || index > _tag.Count)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (_tag.ValueType != tag.GetTagType())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
_tag.Insert(index, tag);
|
||||||
|
|
||||||
|
SetModified();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool AppendTag (TagNode tag)
|
||||||
|
{
|
||||||
|
if (_tag.ValueType != tag.GetTagType())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
_tag.Add(tag);
|
||||||
|
|
||||||
|
SetModified();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetModified ()
|
||||||
|
{
|
||||||
|
if (_modifyHandler != null)
|
||||||
|
_modifyHandler(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using NBTModel.Interop;
|
||||||
|
|
||||||
namespace NBTExplorer.Model
|
namespace NBTExplorer.Model
|
||||||
{
|
{
|
||||||
|
@ -90,7 +91,7 @@ namespace NBTExplorer.Model
|
||||||
Release();
|
Release();
|
||||||
RestoreExpandSet(this, expandSet);
|
RestoreExpandSet(this, expandSet);
|
||||||
|
|
||||||
return true;
|
return expandSet != null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -65,6 +65,11 @@ namespace NBTExplorer.Model
|
||||||
internal set { _parent = value; }
|
internal set { _parent = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DataNode Root
|
||||||
|
{
|
||||||
|
get { return (_parent == null) ? this : _parent.Root; }
|
||||||
|
}
|
||||||
|
|
||||||
public DataNodeCollection Nodes
|
public DataNodeCollection Nodes
|
||||||
{
|
{
|
||||||
get { return _children; }
|
get { return _children; }
|
||||||
|
@ -214,10 +219,7 @@ namespace NBTExplorer.Model
|
||||||
foreach (DataNode child in node.Nodes) {
|
foreach (DataNode child in node.Nodes) {
|
||||||
Dictionary<string, object> childDict = BuildExpandSet(child);
|
Dictionary<string, object> childDict = BuildExpandSet(child);
|
||||||
if (childDict != null) {
|
if (childDict != null) {
|
||||||
if (!String.IsNullOrEmpty(child.NodeName))
|
dict[child.NodePathName] = childDict;
|
||||||
dict[child.NodeName] = childDict;
|
|
||||||
else
|
|
||||||
dict[child.NodeDisplay] = childDict;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -226,16 +228,14 @@ namespace NBTExplorer.Model
|
||||||
|
|
||||||
protected void RestoreExpandSet (DataNode node, Dictionary<string, object> expandSet)
|
protected void RestoreExpandSet (DataNode node, Dictionary<string, object> expandSet)
|
||||||
{
|
{
|
||||||
|
if (expandSet == null)
|
||||||
|
return;
|
||||||
|
|
||||||
node.Expand();
|
node.Expand();
|
||||||
|
|
||||||
foreach (DataNode child in node.Nodes) {
|
foreach (DataNode child in node.Nodes) {
|
||||||
if (expandSet.ContainsKey(child.NodeName)) {
|
if (expandSet.ContainsKey(child.NodePathName)) {
|
||||||
Dictionary<string, object> childDict = (Dictionary<string, object>)expandSet[child.NodeName];
|
Dictionary<string, object> childDict = (Dictionary<string, object>)expandSet[child.NodePathName];
|
||||||
if (childDict != null)
|
|
||||||
RestoreExpandSet(child, childDict);
|
|
||||||
}
|
|
||||||
else if (expandSet.ContainsKey(child.NodeDisplay)) {
|
|
||||||
Dictionary<string, object> childDict = (Dictionary<string, object>)expandSet[child.NodeDisplay];
|
|
||||||
if (childDict != null)
|
if (childDict != null)
|
||||||
RestoreExpandSet(child, childDict);
|
RestoreExpandSet(child, childDict);
|
||||||
}
|
}
|
|
@ -22,13 +22,18 @@ namespace NBTExplorer.Model
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string NodeDirPath
|
||||||
|
{
|
||||||
|
get { return _path; }
|
||||||
|
}
|
||||||
|
|
||||||
public override string NodePathName
|
public override string NodePathName
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
string path = (_path.EndsWith("/") || _path.EndsWith("\\")) ? _path : _path + '/';
|
string path = (_path.EndsWith("/") || _path.EndsWith("\\")) ? _path : _path + '/';
|
||||||
|
|
||||||
string name = Path.GetDirectoryName(path);
|
string name = Path.GetDirectoryName(path) ?? path.Substring(0, path.Length - 1);
|
||||||
int sepIndex = Math.Max(name.LastIndexOf('/'), name.LastIndexOf('\\'));
|
int sepIndex = Math.Max(name.LastIndexOf('/'), name.LastIndexOf('\\'));
|
||||||
|
|
||||||
return (sepIndex > 0) ? name.Substring(sepIndex + 1) : name;
|
return (sepIndex > 0) ? name.Substring(sepIndex + 1) : name;
|
||||||
|
@ -79,7 +84,7 @@ namespace NBTExplorer.Model
|
||||||
Release();
|
Release();
|
||||||
RestoreExpandSet(this, expandSet);
|
RestoreExpandSet(this, expandSet);
|
||||||
|
|
||||||
return true;
|
return expandSet != null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -4,6 +4,7 @@ using Substrate.Core;
|
||||||
using Substrate.Nbt;
|
using Substrate.Nbt;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System;
|
using System;
|
||||||
|
using NBTModel.Interop;
|
||||||
|
|
||||||
namespace NBTExplorer.Model
|
namespace NBTExplorer.Model
|
||||||
{
|
{
|
||||||
|
@ -15,7 +16,7 @@ namespace NBTExplorer.Model
|
||||||
|
|
||||||
private CompoundTagContainer _container;
|
private CompoundTagContainer _container;
|
||||||
|
|
||||||
private static Regex _namePattern = new Regex(@"\.(dat|nbt|schematic)$");
|
private static Regex _namePattern = new Regex(@"\.(dat|nbt|schematic|dat_mcr|dat_old|bpt|rc)$");
|
||||||
|
|
||||||
private NbtFileDataNode (string path, CompressionType compressionType)
|
private NbtFileDataNode (string path, CompressionType compressionType)
|
||||||
{
|
{
|
||||||
|
@ -144,7 +145,7 @@ namespace NBTExplorer.Model
|
||||||
Release();
|
Release();
|
||||||
RestoreExpandSet(this, expandSet);
|
RestoreExpandSet(this, expandSet);
|
||||||
|
|
||||||
return true;
|
return expandSet != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool CanRenameNode
|
public override bool CanRenameNode
|
|
@ -31,13 +31,19 @@ namespace NBTExplorer.Model
|
||||||
get { return _z; }
|
get { return _z; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected RegionFileDataNode RegionParent
|
||||||
|
{
|
||||||
|
get { return Parent as RegionFileDataNode; }
|
||||||
|
}
|
||||||
|
|
||||||
protected override NodeCapabilities Capabilities
|
protected override NodeCapabilities Capabilities
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return NodeCapabilities.CreateTag
|
return NodeCapabilities.CreateTag
|
||||||
| NodeCapabilities.PasteInto
|
| NodeCapabilities.PasteInto
|
||||||
| NodeCapabilities.Search;
|
| NodeCapabilities.Search
|
||||||
|
| NodeCapabilities.Delete;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,7 +59,15 @@ namespace NBTExplorer.Model
|
||||||
|
|
||||||
public override string NodeDisplay
|
public override string NodeDisplay
|
||||||
{
|
{
|
||||||
get { return "Chunk [" + _x + ", " + _z + "]"; }
|
get
|
||||||
|
{
|
||||||
|
RegionKey key = _regionFile.parseCoordinatesFromName();
|
||||||
|
string absChunk = "";
|
||||||
|
if (key != RegionKey.InvalidRegion)
|
||||||
|
absChunk = " in world at (" + (key.X * 32 + _x) + ", " + (key.Z * 32 + _z) + ")";
|
||||||
|
|
||||||
|
return "Chunk [" + _x + ", " + _z + "]" + absChunk;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void ExpandCore ()
|
protected override void ExpandCore ()
|
||||||
|
@ -91,6 +105,17 @@ namespace NBTExplorer.Model
|
||||||
get { return true; }
|
get { return true; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool DeleteNode ()
|
||||||
|
{
|
||||||
|
if (CanDeleteNode && _regionFile.HasChunk(_x, _z)) {
|
||||||
|
RegionParent.QueueDeleteChunk(_x, _z);
|
||||||
|
IsParentModified = true;
|
||||||
|
return Parent.Nodes.Remove(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public bool IsNamedContainer
|
public bool IsNamedContainer
|
||||||
{
|
{
|
||||||
get { return true; }
|
get { return true; }
|
|
@ -2,6 +2,8 @@
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using Substrate.Core;
|
using Substrate.Core;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using NBTModel.Interop;
|
||||||
|
using System;
|
||||||
|
|
||||||
namespace NBTExplorer.Model
|
namespace NBTExplorer.Model
|
||||||
{
|
{
|
||||||
|
@ -9,6 +11,7 @@ namespace NBTExplorer.Model
|
||||||
{
|
{
|
||||||
private string _path;
|
private string _path;
|
||||||
private RegionFile _region;
|
private RegionFile _region;
|
||||||
|
private List<RegionKey> _deleteQueue = new List<RegionKey>();
|
||||||
|
|
||||||
private static Regex _namePattern = new Regex(@"^r\.(-?\d+)\.(-?\d+)\.(mcr|mca)$");
|
private static Regex _namePattern = new Regex(@"^r\.(-?\d+)\.(-?\d+)\.(mcr|mca)$");
|
||||||
|
|
||||||
|
@ -85,7 +88,7 @@ namespace NBTExplorer.Model
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch {
|
catch (Exception e) {
|
||||||
if (FormRegistry.MessageBox != null)
|
if (FormRegistry.MessageBox != null)
|
||||||
FormRegistry.MessageBox("Not a valid region file.");
|
FormRegistry.MessageBox("Not a valid region file.");
|
||||||
}
|
}
|
||||||
|
@ -99,13 +102,30 @@ namespace NBTExplorer.Model
|
||||||
Nodes.Clear();
|
Nodes.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void SaveCore ()
|
||||||
|
{
|
||||||
|
foreach (RegionKey key in _deleteQueue) {
|
||||||
|
if (_region.HasChunk(key.X, key.Z))
|
||||||
|
_region.DeleteChunk(key.X, key.Z);
|
||||||
|
}
|
||||||
|
|
||||||
|
_deleteQueue.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
public override bool RefreshNode ()
|
public override bool RefreshNode ()
|
||||||
{
|
{
|
||||||
Dictionary<string, object> expandSet = BuildExpandSet(this);
|
Dictionary<string, object> expandSet = BuildExpandSet(this);
|
||||||
Release();
|
Release();
|
||||||
RestoreExpandSet(this, expandSet);
|
RestoreExpandSet(this, expandSet);
|
||||||
|
|
||||||
return true;
|
return expandSet != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void QueueDeleteChunk (int rx, int rz)
|
||||||
|
{
|
||||||
|
RegionKey key = new RegionKey(rx, rz);
|
||||||
|
if (!_deleteQueue.Contains(key))
|
||||||
|
_deleteQueue.Add(key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -13,6 +13,18 @@ namespace NBTExplorer.Model
|
||||||
get { return base.Tag as TagNodeByte; }
|
get { return base.Tag as TagNodeByte; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool Parse (string value)
|
||||||
|
{
|
||||||
|
byte data;
|
||||||
|
if (!byte.TryParse(value, out data))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
Tag.Data = data;
|
||||||
|
IsDataModified = true;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public override bool EditNode ()
|
public override bool EditNode ()
|
||||||
{
|
{
|
||||||
return EditScalarValue(Tag);
|
return EditScalarValue(Tag);
|
|
@ -1,5 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using NBTModel.Interop;
|
||||||
using Substrate.Nbt;
|
using Substrate.Nbt;
|
||||||
|
|
||||||
namespace NBTExplorer.Model
|
namespace NBTExplorer.Model
|
|
@ -1,5 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using NBTModel.Interop;
|
||||||
using Substrate.Nbt;
|
using Substrate.Nbt;
|
||||||
|
|
||||||
namespace NBTExplorer.Model
|
namespace NBTExplorer.Model
|
||||||
|
@ -44,6 +45,9 @@ namespace NBTExplorer.Model
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public virtual void Clear ()
|
||||||
|
{ }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
protected override NodeCapabilities Capabilities
|
protected override NodeCapabilities Capabilities
|
||||||
|
@ -91,7 +95,9 @@ namespace NBTExplorer.Model
|
||||||
_tagRegistry[TagType.TAG_INT_ARRAY] = typeof(TagIntArrayDataNode);
|
_tagRegistry[TagType.TAG_INT_ARRAY] = typeof(TagIntArrayDataNode);
|
||||||
_tagRegistry[TagType.TAG_LIST] = typeof(TagListDataNode);
|
_tagRegistry[TagType.TAG_LIST] = typeof(TagListDataNode);
|
||||||
_tagRegistry[TagType.TAG_LONG] = typeof(TagLongDataNode);
|
_tagRegistry[TagType.TAG_LONG] = typeof(TagLongDataNode);
|
||||||
|
_tagRegistry[TagType.TAG_LONG_ARRAY] = typeof(TagLongArrayDataNode);
|
||||||
_tagRegistry[TagType.TAG_SHORT] = typeof(TagShortDataNode);
|
_tagRegistry[TagType.TAG_SHORT] = typeof(TagShortDataNode);
|
||||||
|
_tagRegistry[TagType.TAG_SHORT_ARRAY] = typeof(TagShortArrayDataNode);
|
||||||
_tagRegistry[TagType.TAG_STRING] = typeof(TagStringDataNode);
|
_tagRegistry[TagType.TAG_STRING] = typeof(TagStringDataNode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -124,8 +130,12 @@ namespace NBTExplorer.Model
|
||||||
return new TagNodeList(TagType.TAG_BYTE);
|
return new TagNodeList(TagType.TAG_BYTE);
|
||||||
case TagType.TAG_LONG:
|
case TagType.TAG_LONG:
|
||||||
return new TagNodeLong(0);
|
return new TagNodeLong(0);
|
||||||
|
case TagType.TAG_LONG_ARRAY:
|
||||||
|
return new TagNodeLongArray(new long[0]);
|
||||||
case TagType.TAG_SHORT:
|
case TagType.TAG_SHORT:
|
||||||
return new TagNodeShort(0);
|
return new TagNodeShort(0);
|
||||||
|
case TagType.TAG_SHORT_ARRAY:
|
||||||
|
return new TagNodeShortArray(new short[0]);
|
||||||
case TagType.TAG_STRING:
|
case TagType.TAG_STRING:
|
||||||
return new TagNodeString("");
|
return new TagNodeString("");
|
||||||
default:
|
default:
|
||||||
|
@ -155,6 +165,11 @@ namespace NBTExplorer.Model
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public virtual bool Parse (string value)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
protected override NodeCapabilities Capabilities
|
protected override NodeCapabilities Capabilities
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
@ -348,6 +363,36 @@ namespace NBTExplorer.Model
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected bool EditShortHexValue (TagNode tag)
|
||||||
|
{
|
||||||
|
if (FormRegistry.EditByteArray != null) {
|
||||||
|
TagNodeShortArray iatag = tag.ToTagShortArray();
|
||||||
|
byte[] byteData = new byte[iatag.Length * 2];
|
||||||
|
for (int i = 0; i < iatag.Length; i++) {
|
||||||
|
byte[] buf = BitConverter.GetBytes(iatag.Data[i]);
|
||||||
|
Array.Copy(buf, 0, byteData, 2 * i, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
ByteArrayFormData data = new ByteArrayFormData() {
|
||||||
|
NodeName = NodeName,
|
||||||
|
BytesPerElement = 2,
|
||||||
|
Data = byteData,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (FormRegistry.EditByteArray(data)) {
|
||||||
|
iatag.Data = new short[data.Data.Length / 2];
|
||||||
|
for (int i = 0; i < iatag.Length; i++) {
|
||||||
|
iatag.Data[i] = BitConverter.ToInt16(data.Data, i * 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
IsDataModified = true;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
protected bool EditIntHexValue (TagNode tag)
|
protected bool EditIntHexValue (TagNode tag)
|
||||||
{
|
{
|
||||||
if (FormRegistry.EditByteArray != null) {
|
if (FormRegistry.EditByteArray != null) {
|
||||||
|
@ -378,6 +423,41 @@ namespace NBTExplorer.Model
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected bool EditLongHexValue(TagNode tag)
|
||||||
|
{
|
||||||
|
if (FormRegistry.EditByteArray != null)
|
||||||
|
{
|
||||||
|
TagNodeLongArray latag = tag.ToTagLongArray();
|
||||||
|
byte[] byteData = new byte[latag.Length * 8];
|
||||||
|
for (int i = 0; i < latag.Length; i++)
|
||||||
|
{
|
||||||
|
byte[] buf = BitConverter.GetBytes(latag.Data[i]);
|
||||||
|
Array.Copy(buf, 0, byteData, 8 * i, 8);
|
||||||
|
}
|
||||||
|
|
||||||
|
ByteArrayFormData data = new ByteArrayFormData()
|
||||||
|
{
|
||||||
|
NodeName = NodeName,
|
||||||
|
BytesPerElement = 8,
|
||||||
|
Data = byteData,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (FormRegistry.EditByteArray(data))
|
||||||
|
{
|
||||||
|
latag.Data = new long[data.Data.Length / 8];
|
||||||
|
for (int i = 0; i < latag.Length; i++)
|
||||||
|
{
|
||||||
|
latag.Data[i] = BitConverter.ToInt64(data.Data, i * 8);
|
||||||
|
}
|
||||||
|
|
||||||
|
IsDataModified = true;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public virtual void SyncTag ()
|
public virtual void SyncTag ()
|
||||||
{
|
{
|
||||||
}
|
}
|
33
NBTModel/Data/Nodes/TagDoubleDataNode.cs
Normal file
33
NBTModel/Data/Nodes/TagDoubleDataNode.cs
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
using Substrate.Nbt;
|
||||||
|
|
||||||
|
namespace NBTExplorer.Model
|
||||||
|
{
|
||||||
|
public class TagDoubleDataNode : TagDataNode
|
||||||
|
{
|
||||||
|
public TagDoubleDataNode (TagNodeDouble tag)
|
||||||
|
: base(tag)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
protected new TagNodeDouble Tag
|
||||||
|
{
|
||||||
|
get { return base.Tag as TagNodeDouble; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool Parse (string value)
|
||||||
|
{
|
||||||
|
double data;
|
||||||
|
if (!double.TryParse(value, out data))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
Tag.Data = data;
|
||||||
|
IsDataModified = true;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool EditNode ()
|
||||||
|
{
|
||||||
|
return EditScalarValue(Tag);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
33
NBTModel/Data/Nodes/TagFloatDataNode.cs
Normal file
33
NBTModel/Data/Nodes/TagFloatDataNode.cs
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
using Substrate.Nbt;
|
||||||
|
|
||||||
|
namespace NBTExplorer.Model
|
||||||
|
{
|
||||||
|
public class TagFloatDataNode : TagDataNode
|
||||||
|
{
|
||||||
|
public TagFloatDataNode (TagNodeFloat tag)
|
||||||
|
: base(tag)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
protected new TagNodeFloat Tag
|
||||||
|
{
|
||||||
|
get { return base.Tag as TagNodeFloat; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool Parse (string value)
|
||||||
|
{
|
||||||
|
float data;
|
||||||
|
if (!float.TryParse(value, out data))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
Tag.Data = data;
|
||||||
|
IsDataModified = true;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool EditNode ()
|
||||||
|
{
|
||||||
|
return EditScalarValue(Tag);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
33
NBTModel/Data/Nodes/TagIntDataNode.cs
Normal file
33
NBTModel/Data/Nodes/TagIntDataNode.cs
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
using Substrate.Nbt;
|
||||||
|
|
||||||
|
namespace NBTExplorer.Model
|
||||||
|
{
|
||||||
|
public class TagIntDataNode : TagDataNode
|
||||||
|
{
|
||||||
|
public TagIntDataNode (TagNodeInt tag)
|
||||||
|
: base(tag)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
protected new TagNodeInt Tag
|
||||||
|
{
|
||||||
|
get { return base.Tag as TagNodeInt; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool Parse (string value)
|
||||||
|
{
|
||||||
|
int data;
|
||||||
|
if (!int.TryParse(value, out data))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
Tag.Data = data;
|
||||||
|
IsDataModified = true;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool EditNode ()
|
||||||
|
{
|
||||||
|
return EditScalarValue(Tag);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
|
using NBTModel.Interop;
|
||||||
using Substrate.Nbt;
|
using Substrate.Nbt;
|
||||||
|
|
||||||
namespace NBTExplorer.Model
|
namespace NBTExplorer.Model
|
||||||
|
@ -10,10 +11,10 @@ namespace NBTExplorer.Model
|
||||||
public TagListDataNode (TagNodeList tag)
|
public TagListDataNode (TagNodeList tag)
|
||||||
: base(tag)
|
: base(tag)
|
||||||
{
|
{
|
||||||
_container = new ListTagContainer(tag);
|
_container = new ListTagContainer(tag, res => IsDataModified = true);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected new TagNodeList Tag
|
public new TagNodeList Tag
|
||||||
{
|
{
|
||||||
get { return base.Tag as TagNodeList; }
|
get { return base.Tag as TagNodeList; }
|
||||||
set { base.Tag = value; }
|
set { base.Tag = value; }
|
||||||
|
@ -45,7 +46,7 @@ namespace NBTExplorer.Model
|
||||||
if (data == null)
|
if (data == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (data.Node != null && data.Node.GetTagType() == Tag.ValueType)
|
if (data.Node != null && (data.Node.GetTagType() == Tag.ValueType || Tag.Count == 0))
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -75,6 +76,10 @@ namespace NBTExplorer.Model
|
||||||
if (clipboard == null || clipboard.Node == null)
|
if (clipboard == null || clipboard.Node == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (Tag.Count == 0) {
|
||||||
|
Tag.ChangeValueType(clipboard.Node.GetTagType());
|
||||||
|
}
|
||||||
|
|
||||||
AppendTag(clipboard.Node);
|
AppendTag(clipboard.Node);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -99,8 +104,22 @@ namespace NBTExplorer.Model
|
||||||
return _container.DeleteTag(tag);
|
return _container.DeleteTag(tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AppendTag (TagNode tag)
|
public override void Clear ()
|
||||||
{
|
{
|
||||||
|
if (TagCount == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Nodes.Clear();
|
||||||
|
Tag.Clear();
|
||||||
|
|
||||||
|
IsDataModified = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool AppendTag (TagNode tag)
|
||||||
|
{
|
||||||
|
if (tag == null || !CanCreateTag(tag.GetTagType()))
|
||||||
|
return false;
|
||||||
|
|
||||||
_container.InsertTag(tag, _container.TagCount);
|
_container.InsertTag(tag, _container.TagCount);
|
||||||
IsDataModified = true;
|
IsDataModified = true;
|
||||||
|
|
||||||
|
@ -109,6 +128,8 @@ namespace NBTExplorer.Model
|
||||||
if (node != null)
|
if (node != null)
|
||||||
Nodes.Add(node);
|
Nodes.Add(node);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
36
NBTModel/Data/Nodes/TagLongArrayDataNode.cs
Normal file
36
NBTModel/Data/Nodes/TagLongArrayDataNode.cs
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
using System;
|
||||||
|
using Substrate.Nbt;
|
||||||
|
|
||||||
|
namespace NBTExplorer.Model
|
||||||
|
{
|
||||||
|
public class TagLongArrayDataNode : TagDataNode
|
||||||
|
{
|
||||||
|
public TagLongArrayDataNode(TagNodeLongArray tag)
|
||||||
|
: base(tag)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
protected new TagNodeLongArray Tag
|
||||||
|
{
|
||||||
|
get { return base.Tag as TagNodeLongArray; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool CanEditNode
|
||||||
|
{
|
||||||
|
#if WINDOWS
|
||||||
|
get { return true; }
|
||||||
|
#else
|
||||||
|
get { return false; }
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool EditNode()
|
||||||
|
{
|
||||||
|
return EditLongHexValue(Tag);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string NodeDisplay
|
||||||
|
{
|
||||||
|
get { return NodeDisplayPrefix + Tag.Data.Length + " long integers"; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
33
NBTModel/Data/Nodes/TagLongDataNode.cs
Normal file
33
NBTModel/Data/Nodes/TagLongDataNode.cs
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
using Substrate.Nbt;
|
||||||
|
|
||||||
|
namespace NBTExplorer.Model
|
||||||
|
{
|
||||||
|
public class TagLongDataNode : TagDataNode
|
||||||
|
{
|
||||||
|
public TagLongDataNode (TagNodeLong tag)
|
||||||
|
: base(tag)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
protected new TagNodeLong Tag
|
||||||
|
{
|
||||||
|
get { return base.Tag as TagNodeLong; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool Parse (string value)
|
||||||
|
{
|
||||||
|
long data;
|
||||||
|
if (!long.TryParse(value, out data))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
Tag.Data = data;
|
||||||
|
IsDataModified = true;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool EditNode ()
|
||||||
|
{
|
||||||
|
return EditScalarValue(Tag);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
36
NBTModel/Data/Nodes/TagShortArrayDataNode.cs
Normal file
36
NBTModel/Data/Nodes/TagShortArrayDataNode.cs
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
using System;
|
||||||
|
using Substrate.Nbt;
|
||||||
|
|
||||||
|
namespace NBTExplorer.Model
|
||||||
|
{
|
||||||
|
public class TagShortArrayDataNode : TagDataNode
|
||||||
|
{
|
||||||
|
public TagShortArrayDataNode (TagNodeShortArray tag)
|
||||||
|
: base(tag)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
protected new TagNodeShortArray Tag
|
||||||
|
{
|
||||||
|
get { return base.Tag as TagNodeShortArray; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool CanEditNode
|
||||||
|
{
|
||||||
|
#if WINDOWS
|
||||||
|
get { return true; }
|
||||||
|
#else
|
||||||
|
get { return false; }
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool EditNode ()
|
||||||
|
{
|
||||||
|
return EditShortHexValue(Tag);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string NodeDisplay
|
||||||
|
{
|
||||||
|
get { return NodeDisplayPrefix + Tag.Data.Length + " shorts"; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
33
NBTModel/Data/Nodes/TagShortDataNode.cs
Normal file
33
NBTModel/Data/Nodes/TagShortDataNode.cs
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
using Substrate.Nbt;
|
||||||
|
|
||||||
|
namespace NBTExplorer.Model
|
||||||
|
{
|
||||||
|
public class TagShortDataNode : TagDataNode
|
||||||
|
{
|
||||||
|
public TagShortDataNode (TagNodeShort tag)
|
||||||
|
: base(tag)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
protected new TagNodeShort Tag
|
||||||
|
{
|
||||||
|
get { return base.Tag as TagNodeShort; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool Parse (string value)
|
||||||
|
{
|
||||||
|
short data;
|
||||||
|
if (!short.TryParse(value, out data))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
Tag.Data = data;
|
||||||
|
IsDataModified = true;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool EditNode ()
|
||||||
|
{
|
||||||
|
return EditScalarValue(Tag);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,6 +8,19 @@ namespace NBTExplorer.Model
|
||||||
: base(tag)
|
: base(tag)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
protected new TagNodeString Tag
|
||||||
|
{
|
||||||
|
get { return base.Tag as TagNodeString; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool Parse (string value)
|
||||||
|
{
|
||||||
|
Tag.Data = value;
|
||||||
|
IsDataModified = true;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public override bool EditNode ()
|
public override bool EditNode ()
|
||||||
{
|
{
|
||||||
return EditStringValue(Tag);
|
return EditStringValue(Tag);
|
|
@ -36,5 +36,6 @@ namespace NBTExplorer.Model
|
||||||
{
|
{
|
||||||
int GetTagIndex (TagNode tag);
|
int GetTagIndex (TagNode tag);
|
||||||
bool InsertTag (TagNode tag, int index);
|
bool InsertTag (TagNode tag, int index);
|
||||||
|
bool AppendTag (TagNode tag);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -22,7 +22,7 @@ namespace NBTExplorer.Model
|
||||||
if (typeDiff != 0)
|
if (typeDiff != 0)
|
||||||
return typeDiff;
|
return typeDiff;
|
||||||
|
|
||||||
return String.Compare(x.Name, y.Name, true);
|
return String.Compare(x.Name, y.Name, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
101
NBTModel/FilterExpressionParser.cs
Normal file
101
NBTModel/FilterExpressionParser.cs
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace NBTExplorer.Model
|
||||||
|
{
|
||||||
|
class FilterExpressionParser
|
||||||
|
{
|
||||||
|
private Stack<string> argStack = new Stack<string>();
|
||||||
|
|
||||||
|
/*public bool Parse (DataNode targetNode, List<string> tokens)
|
||||||
|
{
|
||||||
|
Queue<string> tokenQueue = new Queue<string>(FilterExpressionConverter.Convert(tokens));
|
||||||
|
|
||||||
|
while (tokenQueue.Count > 0) {
|
||||||
|
string token = tokenQueue.Dequeue();
|
||||||
|
|
||||||
|
switch (token) {
|
||||||
|
case "equal":
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
|
||||||
|
static class FilterExpressionConverter
|
||||||
|
{
|
||||||
|
private static List<List<string>> OperatorGroups = new List<List<string>> {
|
||||||
|
new List<string> { "equal", "greater", "less", "contains", "begins", "ends" },
|
||||||
|
new List<string> { "not" },
|
||||||
|
new List<string> { "and", "or" },
|
||||||
|
};
|
||||||
|
|
||||||
|
public static List<string> Convert (List<string> tokens)
|
||||||
|
{
|
||||||
|
Queue<string> tokenQueue = new Queue<string>(tokens);
|
||||||
|
List<string> output = new List<string>();
|
||||||
|
Stack<string> opStack = new Stack<string>();
|
||||||
|
|
||||||
|
while (tokenQueue.Count > 0) {
|
||||||
|
string token = tokenQueue.Dequeue();
|
||||||
|
|
||||||
|
if (IsGroupStart(token)) {
|
||||||
|
opStack.Push(token);
|
||||||
|
}
|
||||||
|
else if (IsGroupEnd(token)) {
|
||||||
|
while (opStack.Count > 0 && !IsGroupStart(opStack.Peek()))
|
||||||
|
output.Add(opStack.Pop());
|
||||||
|
if (opStack.Count == 0)
|
||||||
|
throw new Exception("Mismatched grouping");
|
||||||
|
opStack.Pop();
|
||||||
|
}
|
||||||
|
else if (IsOperator(token)) {
|
||||||
|
while (opStack.Count > 0 && IsOperator(opStack.Peek())) {
|
||||||
|
if (Precedence(token) > Precedence(opStack.Peek()))
|
||||||
|
output.Add(opStack.Pop());
|
||||||
|
}
|
||||||
|
opStack.Push(token);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
output.Add(token);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
while (opStack.Count > 0) {
|
||||||
|
if (IsGroupStart(opStack.Peek()))
|
||||||
|
throw new Exception("Mismatched grouping");
|
||||||
|
output.Add(opStack.Pop());
|
||||||
|
}
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool IsGroupStart (string token)
|
||||||
|
{
|
||||||
|
return token == "(";
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool IsGroupEnd (string token)
|
||||||
|
{
|
||||||
|
return token == ")";
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool IsOperator (string token)
|
||||||
|
{
|
||||||
|
foreach (var group in OperatorGroups) {
|
||||||
|
if (group.Contains(token))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int Precedence (string op) {
|
||||||
|
for (int i = 0; i < OperatorGroups.Count; i++) {
|
||||||
|
if (OperatorGroups[i].Contains(op))
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
return int.MaxValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,7 +2,7 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Substrate.Nbt;
|
using Substrate.Nbt;
|
||||||
|
|
||||||
namespace NBTExplorer
|
namespace NBTModel.Interop
|
||||||
{
|
{
|
||||||
public static class FormRegistry
|
public static class FormRegistry
|
||||||
{
|
{
|
|
@ -1,6 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace NBTExplorer
|
namespace NBTModel.Interop
|
||||||
{
|
{
|
||||||
public static class NbtClipboardController
|
public static class NbtClipboardController
|
||||||
{
|
{
|
|
@ -2,7 +2,7 @@
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Substrate.Nbt;
|
using Substrate.Nbt;
|
||||||
|
|
||||||
namespace NBTExplorer
|
namespace NBTModel.Interop
|
||||||
{
|
{
|
||||||
public class NbtClipboardData
|
public class NbtClipboardData
|
||||||
{
|
{
|
88
NBTModel/NBTModel.csproj
Normal file
88
NBTModel/NBTModel.csproj
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{20D7CBA3-5B6D-40B0-8D28-4C9A58E4FFBC}</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>NBTExplorer.Model</RootNamespace>
|
||||||
|
<AssemblyName>NBTModel</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<TargetFrameworkProfile />
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>TRACE;DEBUG;WINDOWS</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE;WINDOWS</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="Substrate">
|
||||||
|
<HintPath>..\References\Substrate.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Data\CompoundTagContainer.cs" />
|
||||||
|
<Compile Include="Data\Nodes\CubicRegionDataNode.cs" />
|
||||||
|
<Compile Include="Data\CubicRegionFile.cs" />
|
||||||
|
<Compile Include="Data\Nodes\DataNode.cs" />
|
||||||
|
<Compile Include="Data\DataNodeCollection.cs" />
|
||||||
|
<Compile Include="Data\Nodes\DirectoryDataNode.cs" />
|
||||||
|
<Compile Include="Data\FileTypeRegistry.cs" />
|
||||||
|
<Compile Include="Data\Nodes\TagLongArrayDataNode.cs" />
|
||||||
|
<Compile Include="Data\Nodes\TagShortArrayDataNode.cs" />
|
||||||
|
<Compile Include="FilterExpressionParser.cs" />
|
||||||
|
<Compile Include="Interop\FormRegistry.cs" />
|
||||||
|
<Compile Include="Interop\NbtClipboardController.cs" />
|
||||||
|
<Compile Include="Interop\NbtClipboardData.cs" />
|
||||||
|
<Compile Include="Data\ListTagContainer.cs" />
|
||||||
|
<Compile Include="Data\Nodes\NbtFileDataNode.cs" />
|
||||||
|
<Compile Include="Data\Nodes\NodeCapabilities.cs" />
|
||||||
|
<Compile Include="NbtPath.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="Data\Nodes\RegionChunkDataNode.cs" />
|
||||||
|
<Compile Include="Data\Nodes\RegionFileDataNode.cs" />
|
||||||
|
<Compile Include="Search\SearchRule.cs" />
|
||||||
|
<Compile Include="Data\Nodes\TagByteArrayDataNode.cs" />
|
||||||
|
<Compile Include="Data\Nodes\TagByteDataNode.cs" />
|
||||||
|
<Compile Include="Data\Nodes\TagCompoundDataNode.cs" />
|
||||||
|
<Compile Include="Data\TagContainerInterface.cs" />
|
||||||
|
<Compile Include="Data\Nodes\TagDataNode.cs" />
|
||||||
|
<Compile Include="Data\Nodes\TagDoubleDataNode.cs" />
|
||||||
|
<Compile Include="Data\Nodes\TagFloatDataNode.cs" />
|
||||||
|
<Compile Include="Data\Nodes\TagIntArrayDataNode.cs" />
|
||||||
|
<Compile Include="Data\Nodes\TagIntDataNode.cs" />
|
||||||
|
<Compile Include="Data\TagKey.cs" />
|
||||||
|
<Compile Include="Data\Nodes\TagListDataNode.cs" />
|
||||||
|
<Compile Include="Data\Nodes\TagLongDataNode.cs" />
|
||||||
|
<Compile Include="Data\Nodes\TagShortDataNode.cs" />
|
||||||
|
<Compile Include="Data\Nodes\TagStringDataNode.cs" />
|
||||||
|
<Compile Include="Utility\NaturalComparer.cs" />
|
||||||
|
<Compile Include="Utility\SnapshotList.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
147
NBTModel/NbtPath.cs
Normal file
147
NBTModel/NbtPath.cs
Normal file
|
@ -0,0 +1,147 @@
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace NBTExplorer.Model
|
||||||
|
{
|
||||||
|
public class NbtPathEnumerator : IEnumerable<DataNode>
|
||||||
|
{
|
||||||
|
private class PathPartDesc
|
||||||
|
{
|
||||||
|
public string Name;
|
||||||
|
public DataNode Node;
|
||||||
|
}
|
||||||
|
|
||||||
|
private string _pathRoot;
|
||||||
|
private List<string> _pathParts = new List<string>();
|
||||||
|
|
||||||
|
public NbtPathEnumerator (string path)
|
||||||
|
{
|
||||||
|
_pathRoot = Path.GetPathRoot(path);
|
||||||
|
_pathParts = new List<string>(path.Substring(_pathRoot.Length).Split('/', '\\'));
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(_pathRoot))
|
||||||
|
_pathRoot = Directory.GetCurrentDirectory();
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerator<DataNode> GetEnumerator ()
|
||||||
|
{
|
||||||
|
DataNode dataNode = new DirectoryDataNode(_pathRoot);
|
||||||
|
dataNode.Expand();
|
||||||
|
|
||||||
|
foreach (DataNode childNode in EnumerateNodes(dataNode, _pathParts))
|
||||||
|
yield return childNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
IEnumerator IEnumerable.GetEnumerator ()
|
||||||
|
{
|
||||||
|
return GetEnumerator();
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerable<DataNode> EnumerateNodes (DataNode containerNode, List<string> nextLevels)
|
||||||
|
{
|
||||||
|
containerNode.Expand();
|
||||||
|
if (nextLevels.Count == 0) {
|
||||||
|
yield return containerNode;
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (containerNode.Nodes.Count == 0)
|
||||||
|
yield break;
|
||||||
|
|
||||||
|
string part = nextLevels[0];
|
||||||
|
List<string> remainingLevels = nextLevels.GetRange(1, nextLevels.Count - 1);
|
||||||
|
|
||||||
|
if (part == "*") {
|
||||||
|
foreach (DataNode childNode in containerNode.Nodes) {
|
||||||
|
foreach (DataNode grandChildNode in EnumerateNodes(childNode, remainingLevels))
|
||||||
|
yield return grandChildNode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (part == "**") {
|
||||||
|
foreach (DataNode childNode in containerNode.Nodes) {
|
||||||
|
foreach (DataNode grandChildNode in EnumerateNodes(childNode, remainingLevels))
|
||||||
|
yield return grandChildNode;
|
||||||
|
|
||||||
|
foreach (DataNode grandChildNode in EnumerateNodes(childNode, nextLevels))
|
||||||
|
yield return grandChildNode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
foreach (var childNode in containerNode.Nodes) {
|
||||||
|
if (childNode.NodePathName == part) {
|
||||||
|
foreach (DataNode grandChildNode in EnumerateNodes(childNode, remainingLevels))
|
||||||
|
yield return grandChildNode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class NbtPath
|
||||||
|
{
|
||||||
|
private class PathPart
|
||||||
|
{
|
||||||
|
public string Name;
|
||||||
|
public DataNode Node;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//private List<PathPart> _pathParts = new List<PathPart>();
|
||||||
|
|
||||||
|
private List<DataNode> _nodes;
|
||||||
|
|
||||||
|
internal NbtPath (List<DataNode> nodes)
|
||||||
|
{
|
||||||
|
_nodes = nodes;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*public NbtPath (string path)
|
||||||
|
{
|
||||||
|
Path = path;
|
||||||
|
|
||||||
|
string[] parts = path.Split('/', '\\');
|
||||||
|
foreach (var p in parts) {
|
||||||
|
_pathParts.Add(new PathPart() {
|
||||||
|
Name = p,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Path { get; private set; }
|
||||||
|
|
||||||
|
public DataNode RootNode
|
||||||
|
{
|
||||||
|
get { return (_pathParts.Count == 0) ? null : _pathParts[0].Node; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public DataNode TargetNode
|
||||||
|
{
|
||||||
|
get { return (_pathParts.Count == 0) ? null : _pathParts[_pathParts.Count - 1].Node; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public DataNode Open ()
|
||||||
|
{
|
||||||
|
DataNode dataNode = new DirectoryDataNode(Directory.GetCurrentDirectory());
|
||||||
|
dataNode.Expand();
|
||||||
|
|
||||||
|
foreach (var part in _pathParts) {
|
||||||
|
DataNode match = null;
|
||||||
|
foreach (var child in dataNode.Nodes) {
|
||||||
|
if (child.NodePathName == part.Name)
|
||||||
|
match = child;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (match == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
part.Node = match;
|
||||||
|
|
||||||
|
dataNode = match;
|
||||||
|
dataNode.Expand();
|
||||||
|
}
|
||||||
|
|
||||||
|
return dataNode;
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
}
|
36
NBTModel/Properties/AssemblyInfo.cs
Normal file
36
NBTModel/Properties/AssemblyInfo.cs
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("NBTModel")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("NBTModel")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2014")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("0dd78c98-e4af-4898-a0f5-4ea5675933c8")]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.1.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.1.0.0")]
|
|
@ -169,8 +169,9 @@ namespace NBTExplorer.Model.Search
|
||||||
{
|
{
|
||||||
TagDataNode childNode = GetChild(container, Name);
|
TagDataNode childNode = GetChild(container, Name);
|
||||||
T data = LookupTag<T>(container, Name);
|
T data = LookupTag<T>(container, Name);
|
||||||
|
if (data == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
if (data != null) {
|
|
||||||
switch (Operator) {
|
switch (Operator) {
|
||||||
case NumericOperator.Equals:
|
case NumericOperator.Equals:
|
||||||
if (data.ToTagLong() != Value)
|
if (data.ToTagLong() != Value)
|
||||||
|
@ -188,7 +189,10 @@ namespace NBTExplorer.Model.Search
|
||||||
if (data.ToTagLong() >= Value)
|
if (data.ToTagLong() >= Value)
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
}
|
case NumericOperator.Any:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!matchedNodes.Contains(childNode))
|
if (!matchedNodes.Contains(childNode))
|
||||||
|
@ -226,8 +230,9 @@ namespace NBTExplorer.Model.Search
|
||||||
{
|
{
|
||||||
TagDataNode childNode = GetChild(container, Name);
|
TagDataNode childNode = GetChild(container, Name);
|
||||||
T data = LookupTag<T>(container, Name);
|
T data = LookupTag<T>(container, Name);
|
||||||
|
if (data == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
if (data != null) {
|
|
||||||
switch (Operator) {
|
switch (Operator) {
|
||||||
case NumericOperator.Equals:
|
case NumericOperator.Equals:
|
||||||
if (data.ToTagDouble() != Value)
|
if (data.ToTagDouble() != Value)
|
||||||
|
@ -245,7 +250,10 @@ namespace NBTExplorer.Model.Search
|
||||||
if (data.ToTagDouble() >= Value)
|
if (data.ToTagDouble() >= Value)
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
}
|
case NumericOperator.Any:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!matchedNodes.Contains(childNode))
|
if (!matchedNodes.Contains(childNode))
|
||||||
|
@ -276,8 +284,9 @@ namespace NBTExplorer.Model.Search
|
||||||
{
|
{
|
||||||
TagDataNode childNode = GetChild(container, Name);
|
TagDataNode childNode = GetChild(container, Name);
|
||||||
TagNodeString data = LookupTag<TagNodeString>(container, Name);
|
TagNodeString data = LookupTag<TagNodeString>(container, Name);
|
||||||
|
if (data == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
if (data != null) {
|
|
||||||
switch (Operator) {
|
switch (Operator) {
|
||||||
case StringOperator.Equals:
|
case StringOperator.Equals:
|
||||||
if (data.ToTagString().Data != Value)
|
if (data.ToTagString().Data != Value)
|
||||||
|
@ -303,7 +312,10 @@ namespace NBTExplorer.Model.Search
|
||||||
if (!data.ToTagString().Data.EndsWith(Value))
|
if (!data.ToTagString().Data.EndsWith(Value))
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
}
|
case StringOperator.Any:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!matchedNodes.Contains(childNode))
|
if (!matchedNodes.Contains(childNode))
|
70
NBTModel/Utility/NaturalComparer.cs
Normal file
70
NBTModel/Utility/NaturalComparer.cs
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
|
namespace NBTExplorer.Utility
|
||||||
|
{
|
||||||
|
// NaturalComparer implementation by Justin.Jones
|
||||||
|
// Licensed under The Code Project Open License (CPOL) (http://www.codeproject.com/info/cpol10.aspx)
|
||||||
|
|
||||||
|
public class NaturalComparer : Comparer<string>, IDisposable
|
||||||
|
{
|
||||||
|
private Dictionary<string, string[]> table;
|
||||||
|
|
||||||
|
public NaturalComparer ()
|
||||||
|
{
|
||||||
|
table = new Dictionary<string, string[]>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Dispose ()
|
||||||
|
{
|
||||||
|
table.Clear();
|
||||||
|
table = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override int Compare (string x, string y)
|
||||||
|
{
|
||||||
|
if (x == y) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
string[] x1, y1;
|
||||||
|
if (!table.TryGetValue(x, out x1)) {
|
||||||
|
x1 = Regex.Split(x.Replace(" ", ""), "(-?[0-9]+)");
|
||||||
|
table.Add(x, x1);
|
||||||
|
}
|
||||||
|
if (!table.TryGetValue(y, out y1)) {
|
||||||
|
y1 = Regex.Split(y.Replace(" ", ""), "(-?[0-9]+)");
|
||||||
|
table.Add(y, y1);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < x1.Length && i < y1.Length; i++) {
|
||||||
|
if (x1[i] != y1[i]) {
|
||||||
|
return PartCompare(x1[i], y1[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (y1.Length > x1.Length) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else if (x1.Length > y1.Length) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int PartCompare (string left, string right)
|
||||||
|
{
|
||||||
|
int x, y;
|
||||||
|
if (!int.TryParse(left, out x)) {
|
||||||
|
return left.CompareTo(right);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!int.TryParse(right, out y)) {
|
||||||
|
return left.CompareTo(right);
|
||||||
|
}
|
||||||
|
|
||||||
|
return x.CompareTo(y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -4,7 +4,7 @@ using System.Collections.Generic;
|
||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace NBTExplorer
|
namespace NBTExplorer.Utility
|
||||||
{
|
{
|
||||||
public class SnapshotState<T> : IDisposable
|
public class SnapshotState<T> : IDisposable
|
||||||
{
|
{
|
6
NBTUtil/App.config
Normal file
6
NBTUtil/App.config
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<startup>
|
||||||
|
|
||||||
|
<supportedRuntime version="v2.0.50727"/></startup>
|
||||||
|
</configuration>
|
81
NBTUtil/ConsoleOptions.cs
Normal file
81
NBTUtil/ConsoleOptions.cs
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using NDesk.Options;
|
||||||
|
|
||||||
|
namespace NBTUtil
|
||||||
|
{
|
||||||
|
public enum ConsoleCommand
|
||||||
|
{
|
||||||
|
None,
|
||||||
|
Print,
|
||||||
|
PrintTree,
|
||||||
|
SetValue,
|
||||||
|
SetList,
|
||||||
|
Json,
|
||||||
|
Help,
|
||||||
|
}
|
||||||
|
|
||||||
|
class ConsoleOptions
|
||||||
|
{
|
||||||
|
private OptionSet _options;
|
||||||
|
private string _currentKey;
|
||||||
|
|
||||||
|
//public string FilePath { get; private set; }
|
||||||
|
//public string TagPath { get; private set; }
|
||||||
|
public string Path { get; private set; }
|
||||||
|
|
||||||
|
public ConsoleCommand Command { get; private set; }
|
||||||
|
public List<string> Values { get; private set; }
|
||||||
|
public bool ShowTypes { get; private set; }
|
||||||
|
|
||||||
|
public ConsoleOptions ()
|
||||||
|
{
|
||||||
|
Command = ConsoleCommand.None;
|
||||||
|
Values = new List<string>();
|
||||||
|
|
||||||
|
_options = new OptionSet() {
|
||||||
|
{ "path=", "Path to NBT tag from current directory", v => Path = v },
|
||||||
|
{ "print", "Print the value(s) of a tag", v => Command = ConsoleCommand.Print },
|
||||||
|
{ "printtree", "Print the NBT tree rooted at a tag", v => Command = ConsoleCommand.PrintTree },
|
||||||
|
{ "types", "Show data types when printing tags", v => ShowTypes = true },
|
||||||
|
{ "json=", "Export the NBT tree rooted at a tag as JSON", v => {
|
||||||
|
Command = ConsoleCommand.Json;
|
||||||
|
Values.Add(v);
|
||||||
|
}},
|
||||||
|
{ "setvalue=", "Set a single tag value", v => {
|
||||||
|
Command = ConsoleCommand.SetValue;
|
||||||
|
_currentKey = "setvalue";
|
||||||
|
if (!string.IsNullOrEmpty(v))
|
||||||
|
Values.Add(v);
|
||||||
|
}},
|
||||||
|
{ "setlist=", "Replace a list tag's contents with one or more values.", v => {
|
||||||
|
Command = ConsoleCommand.SetList;
|
||||||
|
_currentKey = "setlist";
|
||||||
|
if (!string.IsNullOrEmpty(v))
|
||||||
|
Values.Add(v);
|
||||||
|
}},
|
||||||
|
{ "help", "Print this help message", v => Command = ConsoleCommand.Help },
|
||||||
|
{ "<>", v => {
|
||||||
|
switch (_currentKey) {
|
||||||
|
case "setvalue":
|
||||||
|
case "setlist":
|
||||||
|
Values.Add(v);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Parse (string[] args)
|
||||||
|
{
|
||||||
|
_options.Parse(args);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void PrintUsage ()
|
||||||
|
{
|
||||||
|
Console.WriteLine("Program Options:");
|
||||||
|
_options.WriteOptionDescriptions(Console.Out);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
130
NBTUtil/ConsoleRunner.cs
Normal file
130
NBTUtil/ConsoleRunner.cs
Normal file
|
@ -0,0 +1,130 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Text;
|
||||||
|
using NBTExplorer.Model;
|
||||||
|
using NBTUtil.Ops;
|
||||||
|
using Substrate.Nbt;
|
||||||
|
|
||||||
|
namespace NBTUtil
|
||||||
|
{
|
||||||
|
class ConsoleRunner
|
||||||
|
{
|
||||||
|
private static readonly Dictionary<ConsoleCommand, ConsoleOperation> _commandTable = new Dictionary<ConsoleCommand, ConsoleOperation>() {
|
||||||
|
{ ConsoleCommand.SetValue, new EditOperation() },
|
||||||
|
{ ConsoleCommand.SetList, new SetListOperation() },
|
||||||
|
{ ConsoleCommand.Print, new PrintOperation() },
|
||||||
|
{ ConsoleCommand.PrintTree, new PrintTreeOperation() },
|
||||||
|
{ ConsoleCommand.Json, new JsonOperation() },
|
||||||
|
};
|
||||||
|
|
||||||
|
private ConsoleOptions _options;
|
||||||
|
|
||||||
|
public ConsoleRunner ()
|
||||||
|
{
|
||||||
|
_options = new ConsoleOptions();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Run (string[] args)
|
||||||
|
{
|
||||||
|
_options.Parse(args);
|
||||||
|
|
||||||
|
if (_options.Command == ConsoleCommand.Help)
|
||||||
|
return PrintHelp();
|
||||||
|
|
||||||
|
if (_options.Path == null)
|
||||||
|
return PrintUsage("Error: You must specify a path");
|
||||||
|
if (!_commandTable.ContainsKey(_options.Command))
|
||||||
|
return PrintUsage("Error: No command specified");
|
||||||
|
|
||||||
|
ConsoleOperation op = _commandTable[_options.Command];
|
||||||
|
if (!op.OptionsValid(_options))
|
||||||
|
return PrintError("Error: Invalid options specified for the given command");
|
||||||
|
|
||||||
|
int successCount = 0;
|
||||||
|
int failCount = 0;
|
||||||
|
|
||||||
|
foreach (var targetNode in new NbtPathEnumerator(_options.Path)) {
|
||||||
|
if (!op.CanProcess(targetNode)) {
|
||||||
|
Console.WriteLine(targetNode.NodePath + ": ERROR (invalid command)");
|
||||||
|
failCount++;
|
||||||
|
}
|
||||||
|
if (!op.Process(targetNode, _options)) {
|
||||||
|
Console.WriteLine(targetNode.NodePath + ": ERROR (apply)");
|
||||||
|
failCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
targetNode.Root.Save();
|
||||||
|
|
||||||
|
Console.WriteLine(targetNode.NodePath + ": OK");
|
||||||
|
successCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
Console.WriteLine("Operation complete. Nodes succeeded: {0} Nodes failed: {1}", successCount, failCount);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private DataNode OpenFile (string path)
|
||||||
|
{
|
||||||
|
DataNode node = null;
|
||||||
|
foreach (var item in FileTypeRegistry.RegisteredTypes) {
|
||||||
|
if (item.Value.NamePatternTest(path))
|
||||||
|
node = item.Value.NodeCreate(path);
|
||||||
|
}
|
||||||
|
|
||||||
|
return node;
|
||||||
|
}
|
||||||
|
|
||||||
|
private DataNode ExpandDataNode (DataNode dataNode, string tagPath)
|
||||||
|
{
|
||||||
|
string[] pathParts = tagPath.Split('/');
|
||||||
|
|
||||||
|
DataNode curTag = dataNode;
|
||||||
|
curTag.Expand();
|
||||||
|
|
||||||
|
foreach (var part in pathParts) {
|
||||||
|
TagDataNode.Container container = curTag as TagDataNode.Container;
|
||||||
|
if (curTag == null)
|
||||||
|
throw new Exception("Invalid tag path");
|
||||||
|
|
||||||
|
DataNode childTag = null;
|
||||||
|
foreach (var child in curTag.Nodes) {
|
||||||
|
if (child.NodePathName == part)
|
||||||
|
childTag = child;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (childTag == null)
|
||||||
|
throw new Exception("Invalid tag path");
|
||||||
|
|
||||||
|
curTag.Expand();
|
||||||
|
}
|
||||||
|
|
||||||
|
return curTag;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool PrintHelp ()
|
||||||
|
{
|
||||||
|
Console.WriteLine("NBTUtil - Copyright 2014 Justin Aquadro");
|
||||||
|
_options.PrintUsage();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool PrintUsage (string error)
|
||||||
|
{
|
||||||
|
Console.WriteLine(error);
|
||||||
|
_options.PrintUsage();
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool PrintError (string error)
|
||||||
|
{
|
||||||
|
Console.WriteLine(error);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
82
NBTUtil/NBTUtil.csproj
Normal file
82
NBTUtil/NBTUtil.csproj
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{BD90EED5-97B9-47D5-AFEA-C2C0D0E59FCF}</ProjectGuid>
|
||||||
|
<OutputType>Exe</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>NBTUtil</RootNamespace>
|
||||||
|
<AssemblyName>NBTUtil</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<TargetFrameworkProfile />
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="Substrate">
|
||||||
|
<HintPath>..\References\Substrate.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="ConsoleOptions.cs" />
|
||||||
|
<Compile Include="ConsoleRunner.cs" />
|
||||||
|
<Compile Include="NDesk\Options.cs" />
|
||||||
|
<Compile Include="Ops\ConsoleOperation.cs" />
|
||||||
|
<Compile Include="Ops\EditOperation.cs" />
|
||||||
|
<Compile Include="Ops\JsonOperation.cs" />
|
||||||
|
<Compile Include="Ops\PrintOperation.cs" />
|
||||||
|
<Compile Include="Ops\PrintTreeOperation.cs" />
|
||||||
|
<Compile Include="Ops\SetListOperation.cs" />
|
||||||
|
<Compile Include="Program.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="TypePrinter.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="App.config" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\NBTModel\NBTModel.csproj">
|
||||||
|
<Project>{20d7cba3-5b6d-40b0-8d28-4c9a58e4ffbc}</Project>
|
||||||
|
<Name>NBTModel</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
<ItemGroup>
|
||||||
|
<Staging Include="$(OutputPath)\**\*.dll" />
|
||||||
|
<Staging Include="$(OutputPath)\**\*.exe" />
|
||||||
|
<Staging Include="$(OutputPath)\**\*.exe.config" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Copy SourceFiles="@(Staging)" DestinationFolder="..\Staging\%(RecursiveDir)" />
|
||||||
|
</Target>
|
||||||
|
</Project>
|
1123
NBTUtil/NDesk/Options.cs
Normal file
1123
NBTUtil/NDesk/Options.cs
Normal file
File diff suppressed because it is too large
Load diff
18
NBTUtil/Ops/ConsoleOperation.cs
Normal file
18
NBTUtil/Ops/ConsoleOperation.cs
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using NBTExplorer.Model;
|
||||||
|
|
||||||
|
namespace NBTUtil.Ops
|
||||||
|
{
|
||||||
|
abstract class ConsoleOperation
|
||||||
|
{
|
||||||
|
public virtual bool OptionsValid (ConsoleOptions options)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract bool CanProcess (DataNode dataNode);
|
||||||
|
public abstract bool Process (DataNode dataNode, ConsoleOptions options);
|
||||||
|
}
|
||||||
|
}
|
35
NBTUtil/Ops/EditOperation.cs
Normal file
35
NBTUtil/Ops/EditOperation.cs
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using NBTExplorer.Model;
|
||||||
|
|
||||||
|
namespace NBTUtil.Ops
|
||||||
|
{
|
||||||
|
class EditOperation : ConsoleOperation
|
||||||
|
{
|
||||||
|
public override bool OptionsValid (ConsoleOptions options)
|
||||||
|
{
|
||||||
|
if (options.Values.Count == 0)
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool CanProcess (DataNode dataNode)
|
||||||
|
{
|
||||||
|
if (!(dataNode is TagDataNode) || !dataNode.CanEditNode)
|
||||||
|
return false;
|
||||||
|
if (dataNode is TagByteArrayDataNode || dataNode is TagIntArrayDataNode || dataNode is TagShortArrayDataNode || dataNode is TagLongArrayDataNode)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool Process (DataNode dataNode, ConsoleOptions options)
|
||||||
|
{
|
||||||
|
string value = options.Values[0];
|
||||||
|
|
||||||
|
TagDataNode tagDataNode = dataNode as TagDataNode;
|
||||||
|
return tagDataNode.Parse(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
58
NBTUtil/Ops/JsonOperation.cs
Normal file
58
NBTUtil/Ops/JsonOperation.cs
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Text;
|
||||||
|
using NBTExplorer.Model;
|
||||||
|
using Substrate.Nbt;
|
||||||
|
|
||||||
|
namespace NBTUtil.Ops
|
||||||
|
{
|
||||||
|
class JsonOperation : ConsoleOperation
|
||||||
|
{
|
||||||
|
public override bool CanProcess (DataNode dataNode)
|
||||||
|
{
|
||||||
|
return dataNode is NbtFileDataNode || dataNode is TagDataNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool Process (DataNode dataNode, ConsoleOptions options)
|
||||||
|
{
|
||||||
|
if (options.Values.Count == 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
string jsonPath = options.Values[0];
|
||||||
|
using (FileStream stream = File.OpenWrite(jsonPath)) {
|
||||||
|
using (StreamWriter writer = new StreamWriter(stream)) {
|
||||||
|
if (dataNode is TagDataNode) {
|
||||||
|
TagDataNode tagNode = dataNode as TagDataNode;
|
||||||
|
WriteNbtTag(writer, tagNode.Tag);
|
||||||
|
}
|
||||||
|
else if (dataNode is NbtFileDataNode) {
|
||||||
|
dataNode.Expand();
|
||||||
|
TagNodeCompound root = new TagNodeCompound();
|
||||||
|
|
||||||
|
foreach (DataNode child in dataNode.Nodes) {
|
||||||
|
TagDataNode childTagNode = child as TagDataNode;
|
||||||
|
if (childTagNode == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (childTagNode.Tag != null)
|
||||||
|
root.Add(childTagNode.NodeName, childTagNode.Tag);
|
||||||
|
}
|
||||||
|
|
||||||
|
WriteNbtTag(writer, root);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void WriteNbtTag (StreamWriter writer, TagNode tag)
|
||||||
|
{
|
||||||
|
if (tag == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
writer.Write(JSONSerializer.Serialize(tag));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
27
NBTUtil/Ops/PrintOperation.cs
Normal file
27
NBTUtil/Ops/PrintOperation.cs
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using NBTExplorer.Model;
|
||||||
|
|
||||||
|
namespace NBTUtil.Ops
|
||||||
|
{
|
||||||
|
class PrintOperation : ConsoleOperation
|
||||||
|
{
|
||||||
|
public override bool CanProcess (DataNode dataNode)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool Process (DataNode dataNode, ConsoleOptions options)
|
||||||
|
{
|
||||||
|
Console.WriteLine(TypePrinter.Print(dataNode, options.ShowTypes));
|
||||||
|
|
||||||
|
if (dataNode.IsContainerType) {
|
||||||
|
foreach (var child in dataNode.Nodes)
|
||||||
|
Console.WriteLine(" | " + TypePrinter.Print(child, options.ShowTypes));
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
36
NBTUtil/Ops/PrintTreeOperation.cs
Normal file
36
NBTUtil/Ops/PrintTreeOperation.cs
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using NBTExplorer.Model;
|
||||||
|
|
||||||
|
namespace NBTUtil.Ops
|
||||||
|
{
|
||||||
|
class PrintTreeOperation : ConsoleOperation
|
||||||
|
{
|
||||||
|
public override bool CanProcess (DataNode dataNode)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool Process (DataNode dataNode, ConsoleOptions options)
|
||||||
|
{
|
||||||
|
PrintSubTree(dataNode, options, "", true);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PrintSubTree (DataNode dataNode, ConsoleOptions options, string indent, bool last)
|
||||||
|
{
|
||||||
|
Console.WriteLine(indent + " + " + TypePrinter.Print(dataNode, options.ShowTypes));
|
||||||
|
|
||||||
|
indent += last ? " " : " |";
|
||||||
|
int cnt = 0;
|
||||||
|
|
||||||
|
dataNode.Expand();
|
||||||
|
foreach (DataNode child in dataNode.Nodes) {
|
||||||
|
cnt++;
|
||||||
|
PrintSubTree(child, options, indent, cnt == dataNode.Nodes.Count);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
37
NBTUtil/Ops/SetListOperation.cs
Normal file
37
NBTUtil/Ops/SetListOperation.cs
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using NBTExplorer.Model;
|
||||||
|
using Substrate.Nbt;
|
||||||
|
|
||||||
|
namespace NBTUtil.Ops
|
||||||
|
{
|
||||||
|
class SetListOperation : ConsoleOperation
|
||||||
|
{
|
||||||
|
public override bool CanProcess (DataNode dataNode)
|
||||||
|
{
|
||||||
|
if (!(dataNode is TagListDataNode))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool Process (DataNode dataNode, ConsoleOptions options)
|
||||||
|
{
|
||||||
|
TagListDataNode listNode = dataNode as TagListDataNode;
|
||||||
|
|
||||||
|
listNode.Clear();
|
||||||
|
foreach (string value in options.Values) {
|
||||||
|
TagNode tag = TagDataNode.DefaultTag(listNode.Tag.ValueType);
|
||||||
|
TagDataNode tagData = TagDataNode.CreateFromTag(tag);
|
||||||
|
if (!tagData.Parse(value))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (!listNode.AppendTag(tagData.Tag))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
15
NBTUtil/Program.cs
Normal file
15
NBTUtil/Program.cs
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace NBTUtil
|
||||||
|
{
|
||||||
|
class Program
|
||||||
|
{
|
||||||
|
static void Main (string[] args)
|
||||||
|
{
|
||||||
|
ConsoleRunner runner = new ConsoleRunner();
|
||||||
|
runner.Run(args);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
36
NBTUtil/Properties/AssemblyInfo.cs
Normal file
36
NBTUtil/Properties/AssemblyInfo.cs
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("NBTUtil")]
|
||||||
|
[assembly: AssemblyDescription("A command-line utility to inspect and modify NBT data.")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("NBTUtil")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © Justin Aquadro 2014")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("14c36789-324a-4cbf-8cb4-1f2bd711a631")]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.0.1.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.1.0")]
|
42
NBTUtil/TypePrinter.cs
Normal file
42
NBTUtil/TypePrinter.cs
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using NBTExplorer.Model;
|
||||||
|
|
||||||
|
namespace NBTUtil
|
||||||
|
{
|
||||||
|
static class TypePrinter
|
||||||
|
{
|
||||||
|
private static Dictionary<Type, string> _key = new Dictionary<Type, string>() {
|
||||||
|
{ typeof(TagByteDataNode), "b" },
|
||||||
|
{ typeof(TagShortDataNode), "s" },
|
||||||
|
{ typeof(TagIntDataNode), "i" },
|
||||||
|
{ typeof(TagLongDataNode), "l" },
|
||||||
|
{ typeof(TagFloatDataNode), "f" },
|
||||||
|
{ typeof(TagDoubleDataNode), "d" },
|
||||||
|
{ typeof(TagStringDataNode), "T" },
|
||||||
|
{ typeof(TagByteArrayDataNode), "B" },
|
||||||
|
{ typeof(TagIntArrayDataNode), "I" },
|
||||||
|
{ typeof(TagShortArrayDataNode), "S" },
|
||||||
|
{ typeof(TagLongArrayDataNode), "L" },
|
||||||
|
{ typeof(TagListDataNode), "L" },
|
||||||
|
{ typeof(TagCompoundDataNode), "C" },
|
||||||
|
{ typeof(NbtFileDataNode), "N" },
|
||||||
|
{ typeof(RegionFileDataNode), "R" },
|
||||||
|
{ typeof(RegionChunkDataNode), "r" },
|
||||||
|
{ typeof(CubicRegionDataNode), "R" },
|
||||||
|
{ typeof(DirectoryDataNode), "/" },
|
||||||
|
};
|
||||||
|
|
||||||
|
public static string Print (DataNode node, bool showType)
|
||||||
|
{
|
||||||
|
if (!_key.ContainsKey(node.GetType()))
|
||||||
|
return "";
|
||||||
|
|
||||||
|
if (showType)
|
||||||
|
return "<" + _key[node.GetType()] + "> " + node.NodeDisplay;
|
||||||
|
else
|
||||||
|
return node.NodeDisplay;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
Loading…
Reference in a new issue