diff --git a/.gitmodules b/.gitmodules
index ded44002..39456fd0 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,6 @@
[submodule "OMI-Lib"]
path = Vendor/OMI-Lib
url = https://github.com/PhoenixARC/-OMI-Filetype-Library.git
+[submodule "Vendor/SharpMss32"]
+ path = Vendor/SharpMss32
+ url = https://github.com/NessieHax/SharpMss32.git
diff --git a/PCK-Studio/Classes/Extensions/BlendMode.cs b/PCK-Studio/Classes/Extensions/BlendMode.cs
new file mode 100644
index 00000000..7fb02709
--- /dev/null
+++ b/PCK-Studio/Classes/Extensions/BlendMode.cs
@@ -0,0 +1,13 @@
+namespace PckStudio.Extensions
+{
+ public enum BlendMode
+ {
+ Add,
+ Subtract,
+ Multiply,
+ Average,
+ DescendingOrder,
+ AscendingOrder,
+ Screen
+ }
+}
\ No newline at end of file
diff --git a/PCK-Studio/Classes/Extensions/ColorExtensions.cs b/PCK-Studio/Classes/Extensions/ColorExtensions.cs
new file mode 100644
index 00000000..e2bb0ed7
--- /dev/null
+++ b/PCK-Studio/Classes/Extensions/ColorExtensions.cs
@@ -0,0 +1,45 @@
+using System;
+using System.Drawing;
+using System.Numerics;
+
+namespace PckStudio.Extensions
+{
+ internal static class ColorExtensions
+ {
+ ///
+ /// Normalizes the Color between 0.0 - 1.0
+ ///
+ ///
+ public static Vector3 Normalize(this Color color)
+ {
+ return new Vector3(color.R / 255f, color.G / 255f, color.B / 255f);
+ }
+
+ private static T Clamp(T value, T min, T max) where T : IComparable
+ {
+ if (value.CompareTo(min) < 0) return min;
+ if (value.CompareTo(max) > 0) return max;
+ return value;
+ }
+
+ public static byte BlendValues(float source, float overlay, BlendMode blendType)
+ {
+ source = Clamp(source, 0.0f, 1.0f);
+ overlay = Clamp(overlay, 0.0f, 1.0f);
+
+ float resultValue = blendType switch
+ {
+ BlendMode.Add => source + overlay,
+ BlendMode.Subtract => source - overlay,
+ BlendMode.Multiply => source * overlay,
+ BlendMode.Average => (source + overlay) / 2.0f,
+ BlendMode.AscendingOrder => source > overlay ? overlay : source,
+ BlendMode.DescendingOrder => source < overlay ? overlay : source,
+ BlendMode.Screen => 1f - (1f - source) * (1f - overlay),
+ _ => 0.0f
+ };
+ return (byte)Clamp(resultValue * 255, 0, 255);
+ }
+
+ }
+}
diff --git a/PCK-Studio/Classes/Extensions/EnumerableExtensions.cs b/PCK-Studio/Classes/Extensions/EnumerableExtensions.cs
new file mode 100644
index 00000000..ed95e29f
--- /dev/null
+++ b/PCK-Studio/Classes/Extensions/EnumerableExtensions.cs
@@ -0,0 +1,17 @@
+using System.Collections.Generic;
+
+namespace PckStudio.Extensions
+{
+ internal static class EnumerableExtensions
+ {
+ public static IEnumerable<(int index, T type)>enumerate(this IEnumerable array)
+ {
+ int i = 0;
+ foreach (var item in array)
+ {
+ yield return (i++, item);
+ }
+ yield break;
+ }
+ }
+}
diff --git a/PCK-Studio/Classes/Extensions/GraphicsExtensions.cs b/PCK-Studio/Classes/Extensions/GraphicsExtensions.cs
new file mode 100644
index 00000000..22f7885d
--- /dev/null
+++ b/PCK-Studio/Classes/Extensions/GraphicsExtensions.cs
@@ -0,0 +1,39 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Drawing.Drawing2D;
+using System.Linq;
+using System.Text;
+
+namespace PckStudio.Extensions
+{
+ public struct GraphicsConfig
+ {
+ public GraphicsConfig()
+ {
+ CompositingQuality = CompositingQuality.Default;
+ InterpolationMode = InterpolationMode.Default;
+ SmoothingMode = SmoothingMode.Default;
+ PixelOffsetMode = PixelOffsetMode.Default;
+ CompositingMode = CompositingMode.SourceOver;
+ }
+
+ public CompositingMode CompositingMode { get; set; }
+ public CompositingQuality CompositingQuality { get; set; }
+ public InterpolationMode InterpolationMode { get; set; }
+ public SmoothingMode SmoothingMode { get; set; }
+ public PixelOffsetMode PixelOffsetMode { get; set; }
+ }
+
+ internal static class GraphicsExtensions
+ {
+ public static void ApplyConfig(this Graphics graphics, GraphicsConfig config)
+ {
+ graphics.CompositingMode = config.CompositingMode;
+ graphics.CompositingQuality = config.CompositingQuality;
+ graphics.InterpolationMode = config.InterpolationMode;
+ graphics.SmoothingMode = config.SmoothingMode;
+ graphics.PixelOffsetMode = config.PixelOffsetMode;
+ }
+ }
+}
diff --git a/PCK-Studio/Classes/Extensions/ImageExtensions.cs b/PCK-Studio/Classes/Extensions/ImageExtensions.cs
new file mode 100644
index 00000000..10820471
--- /dev/null
+++ b/PCK-Studio/Classes/Extensions/ImageExtensions.cs
@@ -0,0 +1,236 @@
+using System;
+using System.Drawing;
+using System.Diagnostics;
+using System.Drawing.Imaging;
+using System.Drawing.Drawing2D;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+using System.Linq;
+
+namespace PckStudio.Extensions
+{
+ public enum ImageLayoutDirection
+ {
+ Horizontal,
+ Vertical
+ }
+
+ internal static class ImageExtensions
+ {
+ private struct ImageLayoutInfo
+ {
+ ///
+ /// Size of sub section of the image
+ ///
+ public readonly Size SectionSize;
+ public readonly Point SectionPoint;
+ public readonly Rectangle SectionArea;
+
+ public ImageLayoutInfo(int width, int height, int index, ImageLayoutDirection layoutDirection)
+ {
+ switch(layoutDirection)
+ {
+ case ImageLayoutDirection.Horizontal:
+ {
+ SectionSize = new Size(height,height);
+ SectionPoint = new Point(index * height, 0);
+ }
+ break;
+
+ case ImageLayoutDirection.Vertical:
+ {
+ SectionSize = new Size(width, width);
+ SectionPoint = new Point(0, index * width);
+ }
+ break;
+
+ default:
+ SectionSize = Size.Empty;
+ SectionPoint = new Point(-1, -1);
+ break;
+ }
+ SectionArea = new Rectangle(SectionPoint, SectionSize);
+ }
+ }
+
+ public static Image GetArea(this Image source, Rectangle area)
+ {
+ Image tileImage = new Bitmap(area.Width, area.Height);
+ using (Graphics gfx = Graphics.FromImage(tileImage))
+ {
+ gfx.SmoothingMode = SmoothingMode.None;
+ gfx.InterpolationMode = InterpolationMode.NearestNeighbor;
+ gfx.PixelOffsetMode = PixelOffsetMode.HighQuality;
+ gfx.DrawImage(source, new Rectangle(Point.Empty, area.Size), area, GraphicsUnit.Pixel);
+ }
+ return tileImage;
+ }
+
+ public static IEnumerable CreateImageList(this Image source, Size size)
+ {
+ int rowCount = source.Width / size.Width;
+ int columnCount = source.Height / size.Height;
+ Debug.WriteLine($"{source.Width} {source.Height} {size} {columnCount} {rowCount}");
+ for (int i = 0; i < columnCount * rowCount; i++)
+ {
+ int row = Math.DivRem(i, rowCount, out int column);
+ Rectangle tileArea = new Rectangle(new Point(column * size.Height, row * size.Width), size);
+ yield return source.GetArea(tileArea);
+ }
+ yield break;
+ }
+
+ public static IEnumerable CreateImageList(this Image source, int scalar)
+ {
+ return CreateImageList(source, new Size(scalar, scalar));
+ }
+
+ public static IEnumerable CreateImageList(this Image source, ImageLayoutDirection layoutDirection)
+ {
+ for (int i = 0; i < source.Height / source.Width; i++)
+ {
+ ImageLayoutInfo locationInfo = new ImageLayoutInfo(source.Width, source.Height, i, layoutDirection);
+ yield return source.GetArea(locationInfo.SectionArea);
+ }
+ yield break;
+ }
+
+ public static Image CombineImages(IList sources, ImageLayoutDirection layoutDirection)
+ {
+ Size imageSize = CalculateImageSize(sources, layoutDirection);
+ var image = new Bitmap(imageSize.Width, imageSize.Height);
+
+ using (var graphic = Graphics.FromImage(image))
+ {
+ foreach (var (i, texture) in sources.enumerate())
+ {
+ var info = new ImageLayoutInfo(texture.Width, texture.Height, i, layoutDirection);
+ graphic.DrawImage(texture, info.SectionPoint);
+ };
+ }
+ return image;
+ }
+
+ private static Size CalculateImageSize(IList sources, ImageLayoutDirection layoutDirection)
+ {
+ if (sources.Count == 0)
+ {
+ return Size.Empty;
+ }
+ var horizontal = layoutDirection == ImageLayoutDirection.Horizontal;
+
+ int width = sources[0].Width;
+ int height = sources[0].Height;
+
+ if (!sources.All(img => img.Width.Equals(width) && img.Height.Equals(height)))
+ throw new InvalidOperationException("Images must have the same width and height.");
+
+ if (horizontal)
+ width *= sources.Count;
+ else
+ height *= sources.Count;
+
+ return new Size(width, height);
+ }
+
+ public static Image ResizeImage(this Image image, int width, int height, GraphicsConfig graphicsConfig)
+ {
+ var destRect = new Rectangle(0, 0, width, height);
+ var destImage = new Bitmap(width, height);
+
+ destImage.SetResolution(image.HorizontalResolution, image.VerticalResolution);
+
+ using (var graphics = Graphics.FromImage(destImage))
+ {
+ graphics.ApplyConfig(graphicsConfig);
+ using (var wrapMode = new ImageAttributes())
+ {
+ wrapMode.SetWrapMode(WrapMode.TileFlipXY);
+ graphics.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, wrapMode);
+ }
+ }
+ return destImage;
+ }
+
+ public static Image Fill(this Image image, Color color)
+ {
+ using (var g = Graphics.FromImage(image))
+ {
+ using (SolidBrush brush = new SolidBrush(color))
+ {
+ g.FillRectangle(brush, new Rectangle(Point.Empty, image.Size));
+ }
+ }
+ return image;
+ }
+
+ public static Image Blend(this Image image, Color overlayColor, BlendMode mode)
+ {
+ if (image is not Bitmap baseImage)
+ return image;
+
+ BitmapData baseImageData = baseImage.LockBits(new Rectangle(Point.Empty, baseImage.Size),
+ ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
+ byte[] baseImageBuffer = new byte[baseImageData.Stride * baseImageData.Height];
+
+ Marshal.Copy(baseImageData.Scan0, baseImageBuffer, 0, baseImageBuffer.Length);
+
+ var normalized = overlayColor.Normalize();
+
+ for (int k = 0; k < baseImageBuffer.Length; k += 4)
+ {
+ baseImageBuffer[k + 0] = ColorExtensions.BlendValues(baseImageBuffer[k + 0] / 255f, normalized.X, mode);
+ baseImageBuffer[k + 1] = ColorExtensions.BlendValues(baseImageBuffer[k + 1] / 255f, normalized.Y, mode);
+ baseImageBuffer[k + 2] = ColorExtensions.BlendValues(baseImageBuffer[k + 2] / 255f, normalized.Z, mode);
+ }
+
+ Bitmap bitmapResult = new Bitmap(baseImage.Width, baseImage.Height, PixelFormat.Format32bppArgb);
+ BitmapData resultImageData = bitmapResult.LockBits(new Rectangle(Point.Empty, bitmapResult.Size),
+ ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb);
+
+ Marshal.Copy(baseImageBuffer, 0, resultImageData.Scan0, baseImageBuffer.Length);
+
+ bitmapResult.UnlockBits(resultImageData);
+ baseImage.UnlockBits(baseImageData);
+
+ return bitmapResult;
+ }
+
+ public static Image Blend(this Image image, Image overlay, BlendMode mode)
+ {
+ if (image is not Bitmap baseImage || overlay is not Bitmap overlayImage ||
+ image.Width != overlay.Width || image.Height != overlay.Height)
+ return image;
+
+ BitmapData baseImageData = baseImage.LockBits(new Rectangle(Point.Empty, baseImage.Size),
+ ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
+ byte[] baseImageBuffer = new byte[baseImageData.Stride * baseImageData.Height];
+
+ Marshal.Copy(baseImageData.Scan0, baseImageBuffer, 0, baseImageBuffer.Length);
+
+ BitmapData overlayImageData = overlayImage.LockBits(new Rectangle(Point.Empty, overlayImage.Size),
+ ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);
+ byte[] overlayImageBuffer = new byte[overlayImageData.Stride * overlayImageData.Height];
+
+ Marshal.Copy(overlayImageData.Scan0, overlayImageBuffer, 0, overlayImageBuffer.Length);
+
+ for (int k = 0; k < baseImageBuffer.Length && k < overlayImageBuffer.Length; k += 4)
+ {
+ baseImageBuffer[k + 0] = ColorExtensions.BlendValues(baseImageBuffer[k + 0] / 255f, overlayImageBuffer[k + 0] / 255f, mode);
+ baseImageBuffer[k + 1] = ColorExtensions.BlendValues(baseImageBuffer[k + 1] / 255f, overlayImageBuffer[k + 1] / 255f, mode);
+ baseImageBuffer[k + 2] = ColorExtensions.BlendValues(baseImageBuffer[k + 2] / 255f, overlayImageBuffer[k + 2] / 255f, mode);
+ }
+
+ Bitmap bitmapResult = new Bitmap(baseImage.Width, baseImage.Height, PixelFormat.Format32bppArgb);
+ BitmapData resultImageData = bitmapResult.LockBits(new Rectangle(Point.Empty, bitmapResult.Size),
+ ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb);
+
+ Marshal.Copy(baseImageBuffer, 0, resultImageData.Scan0, baseImageBuffer.Length);
+
+ bitmapResult.UnlockBits(resultImageData);
+ baseImage.UnlockBits(baseImageData);
+ overlayImage.UnlockBits(overlayImageData);
+ return bitmapResult;
+ }
+ }
+}
diff --git a/PCK-Studio/Classes/Utils/ListUtils.cs b/PCK-Studio/Classes/Extensions/ListExtensions.cs
similarity index 80%
rename from PCK-Studio/Classes/Utils/ListUtils.cs
rename to PCK-Studio/Classes/Extensions/ListExtensions.cs
index ff200c6b..8ec3b636 100644
--- a/PCK-Studio/Classes/Utils/ListUtils.cs
+++ b/PCK-Studio/Classes/Extensions/ListExtensions.cs
@@ -1,8 +1,8 @@
using System.Collections.Generic;
-namespace PckStudio.Forms.Utilities
+namespace PckStudio.Extensions
{
- public static class ListUtils
+ public static class ListExtensions
{
public static IList Swap(this IList list, int index1, int index2)
{
diff --git a/PCK-Studio/Classes/Extentions/ImageExtentions.cs b/PCK-Studio/Classes/Extentions/ImageExtentions.cs
deleted file mode 100644
index d866b661..00000000
--- a/PCK-Studio/Classes/Extentions/ImageExtentions.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-using System.Collections.Generic;
-using System.Drawing.Drawing2D;
-using System.Drawing;
-using System.Diagnostics;
-
-namespace PckStudio.Classes.Extentions
-{
- internal static class ImageExtentions
- {
- public enum ImageLayoutDirection
- {
- Horizontal,
- Vertical
- }
-
- public static IEnumerable CreateImageList(this Image source, Size size)
- {
- int img_row_count = source.Width / size.Width;
- int img_column_count = source.Height / size.Height;
- Debug.WriteLine($"{source.Width} {source.Height} {size} {img_column_count} {img_row_count}");
- for (int i = 0; i < img_column_count * img_row_count; i++)
- {
- int row = i / img_row_count;
- int column = i % img_row_count;
- Rectangle tileArea = new Rectangle(new Point(column * size.Height, row * size.Width), size);
- yield return GetTileImage(source, tileArea, size);
- }
- yield break;
- }
-
-
- public static IEnumerable CreateImageList(this Image source, int scalar)
- {
- return CreateImageList(source, new Size(scalar, scalar));
- }
-
- public static IEnumerable CreateImageList(this Image source, ImageLayoutDirection layoutDirection)
- {
- for (int i = 0; i < source.Height / source.Width; i++)
- {
- (Size size, Point point) locationInfo = layoutDirection == ImageLayoutDirection.Horizontal
- ? (new Size(source.Width, source.Width), new Point(0, i * source.Width))
- : (new Size(source.Height, source.Height), new Point(i * source.Height, 0));
- Rectangle tileArea = new Rectangle(locationInfo.point, locationInfo.size);
- yield return GetTileImage(source, tileArea, locationInfo.size);
- }
- yield break;
- }
-
- private static Image GetTileImage(Image source, Rectangle area, Size size, GraphicsUnit unit = GraphicsUnit.Pixel)
- {
- Image tileImage = new Bitmap(size.Width, size.Height);
- using (Graphics gfx = Graphics.FromImage(tileImage))
- {
- gfx.SmoothingMode = SmoothingMode.None;
- gfx.InterpolationMode = InterpolationMode.NearestNeighbor;
- gfx.PixelOffsetMode = PixelOffsetMode.HighQuality;
- gfx.DrawImage(source, new Rectangle(Point.Empty, size), area, unit);
- }
- return tileImage;
- }
- }
-}
diff --git a/PCK-Studio/Classes/FileTypes/Binka.cs b/PCK-Studio/Classes/FileTypes/Binka.cs
index 67e731dc..26776e15 100644
--- a/PCK-Studio/Classes/FileTypes/Binka.cs
+++ b/PCK-Studio/Classes/FileTypes/Binka.cs
@@ -2,43 +2,22 @@
using System.Diagnostics;
using System.IO;
using System.Runtime.InteropServices;
+using System.Web.Caching;
+using PckStudio.Classes.Misc;
+using SharpMSS;
namespace PckStudio.Classes
{
internal static class Binka
{
- private class LibHandle
- {
- [DllImport("kernel32.dll")]
- public static extern IntPtr LoadLibrary(string lpFileName);
-
- [DllImport("kernel32.dll")]
- public static extern int FreeLibrary(IntPtr library);
-
- private IntPtr libHandle;
-
- public IntPtr Handle => libHandle;
-
- public LibHandle(string libraryPath)
- {
- libHandle = LoadLibrary(libraryPath);
- }
-
- ~LibHandle()
- {
- FreeLibrary(libHandle);
- }
- }
-
- private static string dataCache = Program.AppDataCache;
-
- public static uint LastAILErrorCode = 0xffffffff;
+ private static FileCacher cacher = new FileCacher(Program.AppDataCache);
public static int FromWav(string inputFilepath, string outputFilepath, int compressionLevel)
{
- var process = Process.Start(new ProcessStartInfo
+ cacher.Cache(Properties.Resources.binka_encode, "binka_encode.exe");
+ var process = Process.Start(new ProcessStartInfo
{
- FileName = GetAndCacheResource("binka_encode.exe"),
+ FileName = cacher.GetCachedFilepath("binka_encode.exe"),
Arguments = $"\"{inputFilepath}\" \"{outputFilepath}\" -s -b{compressionLevel}",
UseShellExecute = true,
CreateNoWindow = true,
@@ -48,94 +27,45 @@ namespace PckStudio.Classes
return process.ExitCode;
}
- public static unsafe void ToWav(string inputFilename, string outputFilepath)
+ public static void ToWav(string inputFilepath, string outputFilepath)
{
- // handle should be closed when function gets out of scope
- LibHandle mss32LibHandle = new LibHandle(GetAndCacheResource("mss32.dll"));
-
- string ext = Path.GetExtension(inputFilename).ToLower();
- switch (ext)
+ if (!inputFilepath.EndsWith(".binka"))
{
- case ".binka":
- case ".wav":
- break;
- default:
- throw new NotSupportedException(nameof(ext)+":"+ext);
+ throw new Exception("Not a Bink Audio file.");
}
- string outputDirectory = Path.GetDirectoryName(outputFilepath);
- Directory.CreateDirectory(outputDirectory);
- string destinationFilepath = Path.Combine(outputDirectory, Path.GetFileName(inputFilename));
- byte[] inputFiledata = File.ReadAllBytes(inputFilename);
- Debug.WriteLine($"{nameof(inputFiledata)}: {inputFiledata.Length}");
+ cacher.Cache(Properties.Resources.mss32, "mss32.dll");
+ cacher.Cache(Properties.Resources.binkawin, "binkawin.asi");
- AILInternalCalls.SetRedistDirectory(".");
- AILInternalCalls.Startup(); // __fastcall
+ LibHandle mss32LibHandle = new LibHandle(cacher.GetCachedFilepath("mss32.dll"));
+
+ string destinationFilepath = Path.Combine(
+ Path.GetDirectoryName(outputFilepath),
+ Path.GetFileNameWithoutExtension(inputFilepath) + ".wav");
+
+ AILAPI.SetRedistDirectory(cacher.CacheDirectory.Replace('\\', '/'));
+
+ RIBAPI.LoadApplicationProviders("*.asi");
+
+ byte[] inputFiledata = File.ReadAllBytes(inputFilepath);
int resultBufferSize = 0;
IntPtr resultBuffer = new IntPtr();
- // crash happens in AIL_decompress_ASI
- LastAILErrorCode = (uint)AILInternalCalls.DecompressASI(inputFiledata, inputFiledata.Length, ".binka", resultBuffer, &resultBufferSize);
- Debug.WriteLine("AIL Error Code: " + LastAILErrorCode.ToString());
+ if (AILAPI.DecompressASI(inputFiledata, inputFiledata.Length, ".binka", ref resultBuffer, ref resultBufferSize, null) == 0)
+ {
+ Console.WriteLine(AILAPI.GetLastError());
+ return;
+ }
byte[] buffer = new byte[resultBufferSize];
Marshal.Copy(resultBuffer, buffer, 0, resultBufferSize);
- AILInternalCalls.MemFreeLock(resultBuffer);
- AILInternalCalls.Shutdown();
- File.WriteAllBytes(destinationFilepath, buffer);
- }
+
+ AILAPI.MemFreeLock(resultBuffer);
+ RIBAPI.FreeProviderLibrary(0); // free all loaded providers
+ AILAPI.Shutdown();
- // Move to a cache class ?
- private static string GetAndCacheResource(string resourceName)
- {
- _ = resourceName ?? throw new ArgumentNullException(nameof(resourceName));
- string destinationFilepath = Path.Combine(dataCache, resourceName);
- if (!File.Exists(destinationFilepath))
- {
- byte[] resourceData = ExtractResource(resourceName);
- using (FileStream fsDst = File.OpenWrite(destinationFilepath))
- {
- fsDst.Write(resourceData, 0, resourceData.Length);
- }
- }
- return destinationFilepath;
- }
+ File.WriteAllBytes(destinationFilepath, buffer);
- internal static byte[] ExtractResource(string resourceName)
- {
- byte[] resourceData = (byte[])Properties.Resources.ResourceManager.GetObject(Path.GetFileNameWithoutExtension(resourceName));
- return resourceData;
- }
-
- private class AILInternalCalls
- {
- public delegate int AIL_decomp_func();
-
- [DllImport("mss32.dll", EntryPoint = "_AIL_decompress_ASI@24")]
- public unsafe static extern int DecompressASI(
- [MarshalAs(UnmanagedType.LPArray)] byte[] indata,
- int insize,
- [MarshalAs(UnmanagedType.LPStr)] string ext,
- IntPtr result,
- int *resultSize,
- [MarshalAs(UnmanagedType.FunctionPtr)] AIL_decomp_func func = null);
-
- [DllImport("mss32.dll", EntryPoint = "_AIL_last_error@0")]
- [return: MarshalAs(UnmanagedType.LPStr)]
- public static extern string LastError();
-
- [DllImport("mss32.dll", EntryPoint = "_AIL_set_redist_directory@4")]
- [return: MarshalAs(UnmanagedType.LPStr)]
- public static extern string SetRedistDirectory([MarshalAs(UnmanagedType.LPStr)] string redistDir);
-
- [DllImport("mss32.dll", EntryPoint = "_AIL_mem_free_lock@4")]
- public static extern void MemFreeLock(IntPtr ptr);
-
- [DllImport("mss32.dll", EntryPoint = "_AIL_startup@0")]
- public static extern int Startup();
-
- [DllImport("mss32.dll", EntryPoint = "_AIL_shutdown@0")]
- public static extern int Shutdown();
- }
- }
+ }
+ }
}
diff --git a/PCK-Studio/Classes/FileTypes/CSM.cs b/PCK-Studio/Classes/FileTypes/CSM.cs
deleted file mode 100644
index 5c8e27ff..00000000
--- a/PCK-Studio/Classes/FileTypes/CSM.cs
+++ /dev/null
@@ -1,91 +0,0 @@
-using System;
-using System.Drawing;
-using System.IO;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using PckStudio.Models;
-
-namespace PckStudio.Classes
-{
- class CSM
- {
-
- //Part Name
- //Part Parent(HEAD, BODY, LEG0, LEG1, ARM0, ARM1)
- //Part Name
- //Position-X
- //Position-Y
- //Position-Z
- //Size-X
- //Size-Y
- //Size-Z
- //UV-Y
- //UV-X
-
- public static List CSMBlock = new List();
-
- public static void TryParse(string CSM, MinecraftModelView modelView)
- {
- try
- {
- int i = 0;
- string[] CSMLines = CSM.Split(new[] { "\n", "\r\n" }, StringSplitOptions.None);
- foreach (string line in CSMLines)
- {
- if (i > 10)
- {
- GetModelPartFromCSM(CSMBlock, modelView);
- CSMBlock.Clear();
- i = 0;
- }
- CSMBlock.Add(line + "\n");
- i++;
- }
-
- modelView.Invalidate();
- }
- catch { }
- }
-
- public static void GetModelPartFromCSM(List CSM, MinecraftModelView modelView)
- {
- string PartName = CSM[0];
- string PartParent = CSM[1];
- string PartName2 = CSM[2];
- int PositionX = int.Parse(CSM[3]);
- int PositionY = int.Parse(CSM[4]);
- int PositionZ = int.Parse(CSM[5]);
- int SizeX = int.Parse(CSM[6]);
- int SizeY = int.Parse(CSM[7]);
- int SizeZ = int.Parse(CSM[8]);
- int UVY = int.Parse(CSM[9]);
- int UVX = int.Parse(CSM[10]);
-
- //RenderBox
- System.Drawing.Image source = Textures[0].Source;
- Object3D object3D = new Box(source, new Rectangle(8, 0, 0x10, 8), new Rectangle(0, 8, 0x20, 8), new Point3D(0f, 0f, 0f), Effects.None);
- Object3D object3D2 = new Box(source, new Rectangle(0x28, 0, 0x10, 8), new Rectangle(0x20, 8, 0x20, 8), new Point3D(0f, 0f, 0f), Effects.None);
- Object3D object3D3 = new Box(source, new Rectangle(0x2C, 0x10, 8, 4), new Rectangle(0x28, 0x14, 0x20, 0xC), new Point3D(0f, 4f, 0f), Effects.FlipHorizontally);
-
-
- //RenderGroup
- Object3DGroup object3DGroup = new Object3DGroup();
- object3D2.Scale = 1.16f;
- object3DGroup.RotationOrder = RotationOrders.XY;
- object3DGroup.MinDegrees1 = -80f;
- object3DGroup.MaxDegrees1 = 80f;
- object3DGroup.MinDegrees2 = -57f;
- object3DGroup.MaxDegrees2 = 57f;
- object3DGroup.Add(object3D);
- object3DGroup.Add(object3D2);
- object3DGroup.Position = new Point3D(0f, 8f, 0f);
- object3DGroup.Origin = new Point3D(0f, -4f, 0f);
- object3DGroup.RotationOrder = RotationOrders.XY;
- modelView.AddDynamic(object3DGroup);
- }
-
- public static Texture[] Textures = new Texture[] { new Texture(Bitmap.FromFile(Environment.CurrentDirectory + "\\default.png")) };
- }
-}
diff --git a/PCK-Studio/Classes/FileTypes/PCKAudioFile.cs b/PCK-Studio/Classes/FileTypes/PckAudioFile.cs
similarity index 99%
rename from PCK-Studio/Classes/FileTypes/PCKAudioFile.cs
rename to PCK-Studio/Classes/FileTypes/PckAudioFile.cs
index f6b02138..d9524b10 100644
--- a/PCK-Studio/Classes/FileTypes/PCKAudioFile.cs
+++ b/PCK-Studio/Classes/FileTypes/PckAudioFile.cs
@@ -7,7 +7,7 @@ using OMI.Formats.Languages;
namespace PckStudio.Classes.FileTypes
{
- public class PCKAudioFile
+ public class PckAudioFile
{
public class InvalidCategoryException : Exception
{
diff --git a/PCK-Studio/Classes/IO/3DST/3DSTextureReader.cs b/PCK-Studio/Classes/IO/3DST/3DSTextureReader.cs
new file mode 100644
index 00000000..e944003f
--- /dev/null
+++ b/PCK-Studio/Classes/IO/3DST/3DSTextureReader.cs
@@ -0,0 +1,94 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using OMI.Workers;
+using PckStudio.Classes._3ds;
+using OMI;
+
+namespace PckStudio.Classes.IO._3DST
+{
+ internal class _3DSTextureReader : IDataFormatReader, IDataFormatReader
+ {
+ public Image FromFile(string filename)
+ {
+ if (File.Exists(filename))
+ {
+ Image img = null;
+ using (var fs = File.OpenRead(filename))
+ {
+ img = FromStream(fs);
+ }
+ return img;
+ }
+ throw new FileNotFoundException(filename);
+ }
+
+ public Image FromStream(Stream stream)
+ {
+ Image img = null;
+ using (var reader = new EndiannessAwareBinaryReader(stream, Encoding.ASCII, leaveOpen: true, Endianness.LittleEndian))
+ {
+ if (reader.ReadString(4) == "3DST")
+ {
+ const int offset = 32;
+ reader.ReadInt32(); // unknown value
+ _3DSTextureFormat format = reader.ReadInt32() switch
+ {
+ 0 => _3DSTextureFormat.argb8,
+ 1 => _3DSTextureFormat.rgb8,
+ 2 => _3DSTextureFormat.rgba5551,
+ 3 => _3DSTextureFormat.rgb8,
+ 4 => _3DSTextureFormat.rgba4,
+ 9 => _3DSTextureFormat.la4,
+ _ => _3DSTextureFormat.dontCare,
+ };
+ int width = reader.ReadInt32();
+ int height = reader.ReadInt32();
+ int bufferSize = CalcBufferSize(format, width, height);
+ stream.Seek(offset, SeekOrigin.Begin);
+ byte[] buffer = new byte[bufferSize];
+ reader.Read(buffer, 0, bufferSize);
+ img = TextureCodec.Decode(buffer, width, height, format);
+ img.RotateFlip(RotateFlipType.RotateNoneFlipY);
+ }
+ }
+ return img;
+ }
+
+ private static int CalcBufferSize(_3DSTextureFormat textureFormat, int width, int height)
+ {
+ switch (textureFormat)
+ {
+ case _3DSTextureFormat.argb8:
+ return width * height * 4;
+ case _3DSTextureFormat.rgb8:
+ return width * height * 3;
+ case _3DSTextureFormat.rgba5551:
+ case _3DSTextureFormat.rgb565:
+ case _3DSTextureFormat.rgba4:
+ case _3DSTextureFormat.la8:
+ case _3DSTextureFormat.hilo8:
+ return width * height * 2;
+ case _3DSTextureFormat.l8:
+ case _3DSTextureFormat.a8:
+ case _3DSTextureFormat.la4:
+ case _3DSTextureFormat.etc1a4:
+ return width * height;
+ case _3DSTextureFormat.l4:
+ case _3DSTextureFormat.a4:
+ case _3DSTextureFormat.etc1:
+ return width * height >> 1;
+ default:
+ throw new InvalidDataException("Invalid texture format on BCH!");
+ }
+ }
+
+ object IDataFormatReader.FromFile(string filename) => FromFile(filename);
+
+ object IDataFormatReader.FromStream(Stream stream) => FromStream(stream);
+ }
+}
diff --git a/PCK-Studio/Classes/IO/3DST/3DSTextureWriter.cs b/PCK-Studio/Classes/IO/3DST/3DSTextureWriter.cs
new file mode 100644
index 00000000..28864ed2
--- /dev/null
+++ b/PCK-Studio/Classes/IO/3DST/3DSTextureWriter.cs
@@ -0,0 +1,47 @@
+using System;
+using System.Drawing;
+using System.IO;
+using System.Text;
+using OMI;
+using OMI.Workers;
+using PckStudio.Classes._3ds;
+
+namespace PckStudio.Classes.IO._3DST
+{
+ internal class _3DSTextureWriter : IDataFormatWriter
+ {
+ private Image _image;
+ private _3DSTextureFormat _format;
+ public _3DSTextureWriter(Image image, _3DSTextureFormat format = _3DSTextureFormat.argb8)
+ {
+ _image = image;
+ _format = format;
+ }
+
+ public void WriteToFile(string filename)
+ {
+ using(var fs = File.OpenWrite(filename))
+ {
+ WriteToStream(fs);
+ }
+ }
+
+ public void WriteToStream(Stream stream)
+ {
+ using (var writer = new EndiannessAwareBinaryWriter(stream, Encoding.ASCII, leaveOpen: true, Endianness.LittleEndian))
+ {
+ writer.WriteString("3DST"); // 0
+ writer.Write(2); // 4 unknown
+ writer.Write((int)_format); // 8
+ writer.Write(_image.Width); // 12
+ writer.Write(_image.Height); // 16
+ writer.Write(0); // 20
+ writer.Write(0); // 24
+ writer.Write(0); // 28
+ _image.RotateFlip(RotateFlipType.RotateNoneFlipY);
+ byte[] buffer = TextureCodec.Encode(new Bitmap(_image), _format);
+ stream.Write(buffer, 0, buffer.Length);
+ }
+ }
+ }
+}
diff --git a/PCK-Studio/Classes/Utils/3DS/TextureCodec.cs b/PCK-Studio/Classes/IO/3DST/TextureCodec.cs
similarity index 96%
rename from PCK-Studio/Classes/Utils/3DS/TextureCodec.cs
rename to PCK-Studio/Classes/IO/3DST/TextureCodec.cs
index aa0b963a..2f208a2f 100644
--- a/PCK-Studio/Classes/Utils/3DS/TextureCodec.cs
+++ b/PCK-Studio/Classes/IO/3DST/TextureCodec.cs
@@ -2,14 +2,35 @@
using System.Drawing;
using System.Drawing.Imaging;
using System.Runtime.InteropServices;
-using PckStudio.Classes._3ds.Utils;
namespace PckStudio.Classes._3ds
{
+ ///
+ /// Format of the texture used on the PICA200.
+ ///
+ public enum _3DSTextureFormat
+ {
+ argb8 = 0,
+ rgb8 = 1,
+ rgba5551 = 2,
+ rgb565 = 3,
+ rgba4 = 4,
+ la8 = 5,
+ hilo8 = 6,
+ l8 = 7,
+ a8 = 8,
+ la4 = 9,
+ l4 = 0xa,
+ a4 = 0xb,
+ etc1 = 0xc,
+ etc1a4 = 0xd,
+ dontCare
+ }
+
class TextureCodec
{
- private static int[] tileOrder = { 0, 1, 8, 9, 2, 3, 10, 11, 16, 17, 24, 25, 18, 19, 26, 27, 4, 5, 12, 13, 6, 7, 14, 15, 20, 21, 28, 29, 22, 23, 30, 31, 32, 33, 40, 41, 34, 35, 42, 43, 48, 49, 56, 57, 50, 51, 58, 59, 36, 37, 44, 45, 38, 39, 46, 47, 52, 53, 60, 61, 54, 55, 62, 63 };
- private static int[,] etc1LUT = { { 2, 8, -2, -8 }, { 5, 17, -5, -17 }, { 9, 29, -9, -29 }, { 13, 42, -13, -42 }, { 18, 60, -18, -60 }, { 24, 80, -24, -80 }, { 33, 106, -33, -106 }, { 47, 183, -47, -183 } };
+ private static readonly int[] tileOrder = { 0, 1, 8, 9, 2, 3, 10, 11, 16, 17, 24, 25, 18, 19, 26, 27, 4, 5, 12, 13, 6, 7, 14, 15, 20, 21, 28, 29, 22, 23, 30, 31, 32, 33, 40, 41, 34, 35, 42, 43, 48, 49, 56, 57, 50, 51, 58, 59, 36, 37, 44, 45, 38, 39, 46, 47, 52, 53, 60, 61, 54, 55, 62, 63 };
+ private static readonly int[,] etc1LUT = { { 2, 8, -2, -8 }, { 5, 17, -5, -17 }, { 9, 29, -9, -29 }, { 13, 42, -13, -42 }, { 18, 60, -18, -60 }, { 24, 80, -24, -80 }, { 33, 106, -33, -106 }, { 47, 183, -47, -183 } };
private static class TextureConverter
{
diff --git a/PCK-Studio/Classes/IO/CSMB/CSMBFileReader.cs b/PCK-Studio/Classes/IO/CSMB/CSMBFileReader.cs
index 0e1313a1..6144150a 100644
--- a/PCK-Studio/Classes/IO/CSMB/CSMBFileReader.cs
+++ b/PCK-Studio/Classes/IO/CSMB/CSMBFileReader.cs
@@ -1,57 +1,66 @@
using System.IO;
using System.Text;
+using OMI;
+using OMI.Workers;
using PckStudio.Classes.FileTypes;
namespace PckStudio.Classes.IO.CSMB
{
- internal class CSMBFileReader : StreamDataReader
+ internal class CSMBFileReader : IDataFormatReader, IDataFormatReader
{
- public static CSMBFile Read(Stream stream)
- {
- return new CSMBFileReader().ReadFromStream(stream);
- }
-
- private CSMBFileReader() : base(false)
+ private CSMBFileReader()
{ }
- protected override CSMBFile ReadFromStream(Stream stream)
+ public CSMBFile FromFile(string filename)
{
- CSMBFile BinFile = new CSMBFile();
- ReadInt(stream);
- int NumOfParts = ReadInt(stream);
- for(int i = 0; i < NumOfParts; i++)
- {
- CSMBPart part = new CSMBPart();
- part.Name = ReadString(stream);
- part.Parent = (CSMBParentPart)ReadInt(stream);
- part.posX = ReadFloat(stream);
- part.posY = ReadFloat(stream);
- part.posZ = ReadFloat(stream);
- part.sizeX = ReadFloat(stream);
- part.sizeY = ReadFloat(stream);
- part.sizeZ = ReadFloat(stream);
- part.uvX = ReadInt(stream);
- part.uvY = ReadInt(stream);
- part.MirrorTexture = ReadBool(stream);
- part.HideWArmour = ReadBool(stream);
- part.Inflation = ReadFloat(stream);
- BinFile.Parts.Add(part);
- }
- int NumOfOffsets = ReadInt(stream);
- for (int i = 0; i < NumOfOffsets; i++)
- {
- CSMBOffset offset = new CSMBOffset();
- offset.offsetPart = (CSMBOffsetPart)ReadInt(stream);
- offset.VerticalOffset = ReadFloat(stream);
- BinFile.Offsets.Add(offset);
- }
- return BinFile;
+ throw new System.NotImplementedException();
}
- private string ReadString(Stream stream)
+ public CSMBFile FromStream(Stream stream)
{
- short strlen = ReadShort(stream);
- return ReadString(stream, strlen, Encoding.ASCII);
+ CSMBFile csmbFile = new CSMBFile();
+ using (var reader = new EndiannessAwareBinaryReader(stream, Encoding.ASCII, leaveOpen: true, Endianness.LittleEndian))
+ {
+ reader.ReadInt32();
+ int numOfParts = reader.ReadInt32();
+ for (int i = 0; i < numOfParts; i++)
+ {
+ CSMBPart part = new CSMBPart();
+ part.Name = ReadString(reader);
+ part.Parent = (CSMBParentPart)reader.ReadInt32();
+ part.posX = reader.ReadSingle();
+ part.posY = reader.ReadSingle();
+ part.posZ = reader.ReadSingle();
+ part.sizeX = reader.ReadSingle();
+ part.sizeY = reader.ReadSingle();
+ part.sizeZ = reader.ReadSingle();
+ part.uvX = reader.ReadInt32();
+ part.uvY = reader.ReadInt32();
+ part.MirrorTexture = reader.ReadBoolean();
+ part.HideWArmour = reader.ReadBoolean();
+ part.Inflation = reader.ReadSingle();
+ csmbFile.Parts.Add(part);
+ }
+ int numOfOffsets = reader.ReadInt32();
+ for (int i = 0; i < numOfOffsets; i++)
+ {
+ CSMBOffset offset = new CSMBOffset();
+ offset.offsetPart = (CSMBOffsetPart)reader.ReadInt32();
+ offset.VerticalOffset = reader.ReadSingle();
+ csmbFile.Offsets.Add(offset);
+ }
+ }
+ return csmbFile;
}
+
+ private string ReadString(EndiannessAwareBinaryReader reader)
+ {
+ ushort strlen = reader.ReadUInt16();
+ return reader.ReadString(strlen);
+ }
+
+ object IDataFormatReader.FromStream(Stream stream) => FromStream(stream);
+
+ object IDataFormatReader.FromFile(string filename) => FromFile(filename);
}
}
diff --git a/PCK-Studio/Classes/IO/CSMB/CSMBFileWriter.cs b/PCK-Studio/Classes/IO/CSMB/CSMBFileWriter.cs
index 5855c6e0..0481f3db 100644
--- a/PCK-Studio/Classes/IO/CSMB/CSMBFileWriter.cs
+++ b/PCK-Studio/Classes/IO/CSMB/CSMBFileWriter.cs
@@ -1,54 +1,58 @@
using System.IO;
using System.Text;
using PckStudio.Classes.FileTypes;
+using OMI.Workers;
+using OMI;
namespace PckStudio.Classes.IO.CSMB
{
- internal class CSMBFileWriter : StreamDataWriter
+ internal class CSMBFileWriter : IDataFormatWriter
{
CSMBFile _CSMB;
- public static void Write(Stream stream, CSMBFile file)
- {
- new CSMBFileWriter(file).WriteToStream(stream);
- }
- public CSMBFileWriter(CSMBFile csmb) : base(false)
+ public CSMBFileWriter(CSMBFile csmb)
{
_CSMB = csmb;
}
- protected override void WriteToStream(Stream stream)
+ public void WriteToFile(string filename)
{
- WriteInt(stream, 0);
- WriteInt(stream, _CSMB.Parts.Count);
- foreach(CSMBPart part in _CSMB.Parts)
+ using(var fs = File.OpenWrite(filename))
{
- WriteString(stream, part.Name);
- WriteInt(stream, (int)part.Parent);
- WriteFloat(stream, part.posX);
- WriteFloat(stream, part.posY);
- WriteFloat(stream, part.posZ);
- WriteFloat(stream, part.sizeX);
- WriteFloat(stream, part.sizeY);
- WriteFloat(stream, part.sizeZ);
- WriteInt(stream, part.uvX);
- WriteInt(stream, part.uvY);
- WriteBool(stream, part.MirrorTexture);
- WriteBool(stream, part.HideWArmour);
- WriteFloat(stream, part.Inflation);
- }
- WriteInt(stream, _CSMB.Offsets.Count);
- foreach (CSMBOffset offset in _CSMB.Offsets)
- {
- WriteInt(stream, (int)offset.offsetPart);
- WriteFloat(stream, offset.VerticalOffset);
+ WriteToStream(fs);
}
}
- private void WriteString(Stream stream, string s)
+ public void WriteToStream(Stream stream)
{
- WriteShort(stream, (short)s.Length);
- WriteString(stream, s, Encoding.ASCII);
+ using (var writer = new EndiannessAwareBinaryWriter(stream, Encoding.ASCII, leaveOpen: true, Endianness.LittleEndian))
+ {
+ writer.Write(0);
+ writer.Write(_CSMB.Parts.Count);
+ foreach (CSMBPart part in _CSMB.Parts)
+ {
+ writer.Write((short)part.Name.Length);
+ writer.WriteString(part.Name);
+ writer.Write((int)part.Parent);
+ writer.Write(part.posX);
+ writer.Write(part.posY);
+ writer.Write(part.posZ);
+ writer.Write(part.sizeX);
+ writer.Write(part.sizeY);
+ writer.Write(part.sizeZ);
+ writer.Write(part.uvX);
+ writer.Write(part.uvY);
+ writer.Write(part.MirrorTexture);
+ writer.Write(part.HideWArmour);
+ writer.Write(part.Inflation);
+ }
+ writer.Write(_CSMB.Offsets.Count);
+ foreach (CSMBOffset offset in _CSMB.Offsets)
+ {
+ writer.Write((int)offset.offsetPart);
+ writer.Write(offset.VerticalOffset);
+ }
+ }
}
}
}
diff --git a/PCK-Studio/Classes/IO/PCK/PCKAudioFileReader.cs b/PCK-Studio/Classes/IO/PCK/PCKAudioFileReader.cs
deleted file mode 100644
index 53d5a793..00000000
--- a/PCK-Studio/Classes/IO/PCK/PCKAudioFileReader.cs
+++ /dev/null
@@ -1,115 +0,0 @@
-using PckStudio.Classes.FileTypes;
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Text;
-
-namespace PckStudio.Classes.IO.PCK
-{
-
- public class InvalidAudioPckException : Exception
- {
- public InvalidAudioPckException(string message) : base(message)
- { }
- }
-
- internal class PCKAudioFileReader : StreamDataReader
- {
- private PCKAudioFile _file;
- private List LUT = new List();
- private List _OriginalAudioTypeOrder = new List();
-
-
- public static PCKAudioFile Read(Stream stream, bool isLittleEndian)
- {
- return new PCKAudioFileReader(isLittleEndian).ReadFromStream(stream);
- }
-
- private PCKAudioFileReader(bool isLittleEndian) : base(isLittleEndian)
- {
- }
-
- protected override PCKAudioFile ReadFromStream(Stream stream)
- {
- int pck_type = ReadInt(stream);
- if (pck_type > 0xf00000) // 03 00 00 00 == true
- throw new OverflowException(nameof(pck_type));
- if (pck_type > 1)
- throw new InvalidAudioPckException(nameof(pck_type));
- _file = new PCKAudioFile();
- ReadLookUpTable(stream);
- ReadCategories(stream);
- ReadCategorySongs(stream);
- return _file;
- }
-
- private void ReadLookUpTable(Stream stream)
- {
- int count = ReadInt(stream);
- LUT = new List(count);
- for (int i = 0; i < count; i++)
- {
- int index = ReadInt(stream);
- LUT.Insert(index, ReadString(stream));
- }
- }
-
- private void ReadCategories(Stream stream)
- {
- int categoryEntryCount = ReadInt(stream);
- for (; 0 < categoryEntryCount; categoryEntryCount--)
- {
- var parameterType = (PCKAudioFile.AudioCategory.EAudioParameterType)ReadInt(stream);
- var audioType = (PCKAudioFile.AudioCategory.EAudioType)ReadInt(stream);
- string name = ReadString(stream);
- // AddCategory puts the file's categories out of order and causes some songs to be put in the wrong categories
- // This is my simple fix for the issue.
- _OriginalAudioTypeOrder.Add(audioType);
- _file.AddCategory(parameterType, audioType, name);
- }
- }
-
- private void ReadCategorySongs(Stream stream)
- {
- List credits = new List();
- List creditIds = new List();
- foreach (var c in _OriginalAudioTypeOrder)
- {
- int audioCount = ReadInt(stream);
- for (; 0 < audioCount; audioCount--)
- {
- string key = LUT[ReadInt(stream)];
- string value = ReadString(stream);
- switch (key)
- {
- case "CUENAME":
- _file.GetCategory(c).SongNames.Add(value);
- break;
- case "CREDIT":
- credits.Add(value);
- break;
- case "CREDITID":
- creditIds.Add(value);
- _file.AddCreditId(value);
- break;
- default:
- throw new InvalidDataException(nameof(key));
- }
- }
- };
- foreach (var credit in credits.Zip(creditIds, (str, id) => (str, id)))
- {
- _file.SetCredit(credit.id, credit.str);
- }
- }
-
- private string ReadString(Stream stream)
- {
- int len = ReadInt(stream);
- string s = ReadString(stream, len, IsUsingLittleEndian ? Encoding.Unicode : Encoding.BigEndianUnicode);
- ReadInt(stream); // padding
- return s;
- }
- }
-}
diff --git a/PCK-Studio/Classes/IO/PCK/PCKAudioFileWriter.cs b/PCK-Studio/Classes/IO/PCK/PCKAudioFileWriter.cs
deleted file mode 100644
index 129861d7..00000000
--- a/PCK-Studio/Classes/IO/PCK/PCKAudioFileWriter.cs
+++ /dev/null
@@ -1,90 +0,0 @@
-using PckStudio.Classes.FileTypes;
-using System.Collections.Generic;
-using System.IO;
-using System.Text;
-
-namespace PckStudio.Classes.IO.PCK
-{
- internal class PCKAudioFileWriter : StreamDataWriter
- {
-
- private PCKAudioFile _file;
- private static readonly List LUT = new List
- {
- "CUENAME",
- "CREDIT",
- "CREDITID"
- };
-
- public static void Write(Stream stream, PCKAudioFile file, bool isLittleEndian)
- {
- new PCKAudioFileWriter(file, isLittleEndian).WriteToStream(stream);
- }
-
- private PCKAudioFileWriter(PCKAudioFile file, bool isLittleEndian) : base(isLittleEndian)
- {
- _file = file;
- }
-
- protected override void WriteToStream(Stream stream)
- {
- WriteInt(stream, _file.type);
- WriteLookUpTable(stream);
- WriteCategories(stream);
- WriteCategorySongs(stream);
- }
-
- private void WriteString(Stream stream, string s)
- {
- WriteInt(stream, s.Length);
- WriteString(stream, s, IsUsingLittleEndian ? Encoding.Unicode : Encoding.BigEndianUnicode);
- WriteInt(stream, 0); // padding
- }
-
- private void WriteLookUpTable(Stream stream)
- {
- WriteInt(stream, 3);
- for (int i = 0; i < 3; i++)
- {
- WriteInt(stream, i);
- WriteString(stream, LUT[i]);
- }
- }
-
- private void WriteCategories(Stream stream)
- {
- WriteInt(stream, _file.Categories.Length);
- foreach (var category in _file.Categories)
- {
- WriteInt(stream, (int)category.parameterType);
- WriteInt(stream, (int)category.audioType);
- WriteString(stream, category.Name);
- }
- }
-
- private void WriteCategorySongs(Stream stream)
- {
- bool addCredit = true;
- foreach (var category in _file.Categories)
- {
- WriteInt(stream, category.SongNames.Count + (addCredit ? _file.Credits.Count * 2 : 0));
- foreach (var name in category.SongNames)
- {
- WriteInt(stream, LUT.IndexOf("CUENAME"));
- WriteString(stream, name);
- }
- if (addCredit)
- {
- foreach (var credit in _file.Credits)
- {
- WriteInt(stream, LUT.IndexOf("CREDIT"));
- WriteString(stream, credit.Value);
- WriteInt(stream, LUT.IndexOf("CREDITID"));
- WriteString(stream, credit.Key);
- }
- }
- addCredit = false;
- }
- }
- }
-}
diff --git a/PCK-Studio/Classes/IO/PckAudio/PckAudioFileReader.cs b/PCK-Studio/Classes/IO/PckAudio/PckAudioFileReader.cs
new file mode 100644
index 00000000..66893c5f
--- /dev/null
+++ b/PCK-Studio/Classes/IO/PckAudio/PckAudioFileReader.cs
@@ -0,0 +1,140 @@
+using OMI;
+using OMI.Workers;
+using PckStudio.Classes.FileTypes;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Linq;
+using System.Text;
+
+namespace PckStudio.Classes.IO.PCK
+{
+
+ public class InvalidAudioPckException : Exception
+ {
+ public InvalidAudioPckException(string message) : base(message)
+ { }
+ }
+
+ internal class PckAudioFileReader : IDataFormatReader, IDataFormatReader
+ {
+ private PckAudioFile _file;
+ private Endianness _endianness;
+ private List LUT = new List();
+ private List _OriginalAudioTypeOrder = new List();
+
+ public PckAudioFileReader(Endianness endianness)
+ {
+ _endianness = endianness;
+ }
+
+ public PckAudioFile FromFile(string filename)
+ {
+ if(File.Exists(filename))
+ {
+ PckAudioFile file;
+ using(var fs = File.OpenRead(filename))
+ {
+ file = FromStream(fs);
+ }
+ return file;
+ }
+ throw new FileNotFoundException(filename);
+ }
+
+ public PckAudioFile FromStream(Stream stream)
+ {
+ using (var reader = new EndiannessAwareBinaryReader(stream,
+ _endianness == Endianness.BigEndian
+ ? Encoding.BigEndianUnicode
+ : Encoding.Unicode,
+ leaveOpen: true, _endianness))
+ {
+ int pck_type = reader.ReadInt32();
+ if (pck_type > 0xf00000) // 03 00 00 00 == true
+ throw new OverflowException(nameof(pck_type));
+ if (pck_type > 1)
+ throw new InvalidAudioPckException(nameof(pck_type));
+ _file = new PckAudioFile();
+ ReadLookUpTable(reader);
+ ReadCategories(reader);
+ ReadCategorySongs(reader);
+ }
+ return _file;
+ }
+
+ private void ReadLookUpTable(EndiannessAwareBinaryReader reader)
+ {
+ int count = reader.ReadInt32();
+ LUT = new List(count);
+ for (int i = 0; i < count; i++)
+ {
+ int index = reader.ReadInt32();
+ string value = ReadString(reader);
+ LUT.Insert(index, value);
+ }
+ }
+
+ private void ReadCategories(EndiannessAwareBinaryReader reader)
+ {
+ int categoryEntryCount = reader.ReadInt32();
+ for (; 0 < categoryEntryCount; categoryEntryCount--)
+ {
+ var parameterType = (PckAudioFile.AudioCategory.EAudioParameterType)reader.ReadInt32();
+ var audioType = (PckAudioFile.AudioCategory.EAudioType)reader.ReadInt32();
+ string name = ReadString(reader);
+ // AddCategory puts the file's categories out of order and causes some songs to be put in the wrong categories
+ // This is my simple fix for the issue.
+ _OriginalAudioTypeOrder.Add(audioType);
+ _file.AddCategory(parameterType, audioType, name);
+ }
+ }
+
+ private void ReadCategorySongs(EndiannessAwareBinaryReader reader)
+ {
+ List credits = new List();
+ List creditIds = new List();
+ foreach (var c in _OriginalAudioTypeOrder)
+ {
+ int audioCount = reader.ReadInt32();
+ for (; 0 < audioCount; audioCount--)
+ {
+ string key = LUT[reader.ReadInt32()];
+ string value = ReadString(reader);
+ switch (key)
+ {
+ case "CUENAME":
+ _file.GetCategory(c).SongNames.Add(value);
+ break;
+ case "CREDIT":
+ credits.Add(value);
+ break;
+ case "CREDITID":
+ creditIds.Add(value);
+ _file.AddCreditId(value);
+ break;
+ default:
+ throw new InvalidDataException(nameof(key));
+ }
+ }
+ };
+ foreach (var credit in credits.Zip(creditIds, (str, id) => (str, id)))
+ {
+ _file.SetCredit(credit.id, credit.str);
+ }
+ }
+
+ private string ReadString(EndiannessAwareBinaryReader reader)
+ {
+ int len = reader.ReadInt32();
+ string s = reader.ReadString(len);
+ reader.ReadInt32(); // padding
+ return s;
+ }
+
+ object IDataFormatReader.FromStream(Stream stream) => FromStream(stream);
+
+ object IDataFormatReader.FromFile(string filename) => FromFile(filename);
+ }
+}
diff --git a/PCK-Studio/Classes/IO/PckAudio/PckAudioFileWriter.cs b/PCK-Studio/Classes/IO/PckAudio/PckAudioFileWriter.cs
new file mode 100644
index 00000000..afed490a
--- /dev/null
+++ b/PCK-Studio/Classes/IO/PckAudio/PckAudioFileWriter.cs
@@ -0,0 +1,104 @@
+using OMI;
+using OMI.Workers;
+using PckStudio.Classes.FileTypes;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+
+namespace PckStudio.Classes.IO.PCK
+{
+ internal class PckAudioFileWriter : IDataFormatWriter
+ {
+
+ private PckAudioFile _file;
+ private Endianness _endianness;
+ private static readonly List LUT = new List
+ {
+ "CUENAME",
+ "CREDIT",
+ "CREDITID"
+ };
+
+ public PckAudioFileWriter(PckAudioFile file, Endianness endianness)
+ {
+ _file = file;
+ _endianness = endianness;
+ }
+
+ public void WriteToFile(string filename)
+ {
+ using(var fs = File.OpenWrite(filename))
+ {
+ WriteToStream(fs);
+ }
+ }
+
+ public void WriteToStream(Stream stream)
+ {
+ using (var writer = new EndiannessAwareBinaryWriter(stream,
+ _endianness == Endianness.BigEndian
+ ? Encoding.BigEndianUnicode
+ : Encoding.Unicode,
+ leaveOpen: true, _endianness))
+ {
+ writer.Write(_file.type);
+ WriteLookUpTable(writer);
+ WriteCategories(writer);
+ WriteCategorySongs(writer);
+ }
+ }
+
+ private void WriteString(EndiannessAwareBinaryWriter writer, string s)
+ {
+ writer.Write(s.Length);
+ writer.WriteString(s);
+ writer.Write(0); // padding
+ }
+
+ private void WriteLookUpTable(EndiannessAwareBinaryWriter writer)
+ {
+ writer.Write(3);
+ for (int i = 0; i < 3; i++)
+ {
+ writer.Write(i);
+ WriteString(writer, LUT[i]);
+ }
+ }
+
+ private void WriteCategories(EndiannessAwareBinaryWriter writer)
+ {
+ writer.Write(_file.Categories.Length);
+ foreach (var category in _file.Categories)
+ {
+ writer.Write((int)category.parameterType);
+ writer.Write((int)category.audioType);
+ WriteString(writer, category.Name);
+ }
+ }
+
+ private void WriteCategorySongs(EndiannessAwareBinaryWriter writer)
+ {
+ bool addCredit = true;
+ foreach (var category in _file.Categories)
+ {
+ writer.Write(category.SongNames.Count + (addCredit ? _file.Credits.Count * 2 : 0));
+ foreach (var name in category.SongNames)
+ {
+ writer.Write(LUT.IndexOf("CUENAME"));
+ WriteString(writer, name);
+ }
+ if (addCredit)
+ {
+ foreach (var credit in _file.Credits)
+ {
+ writer.Write(LUT.IndexOf("CREDIT"));
+ WriteString(writer, credit.Value);
+ writer.Write(LUT.IndexOf("CREDITID"));
+ WriteString(writer, credit.Key);
+ }
+ }
+ addCredit = false;
+ }
+ }
+ }
+}
diff --git a/PCK-Studio/Classes/IO/StreamDataReader.cs b/PCK-Studio/Classes/IO/StreamDataReader.cs
deleted file mode 100644
index 91e0fb97..00000000
--- a/PCK-Studio/Classes/IO/StreamDataReader.cs
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Copyright (c) 2022-present miku-666
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1.The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
-**/
-using PckStudio.Classes.FileTypes;
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace PckStudio.Classes.IO
-{
- public abstract class StreamDataReader
- {
- private static bool useLittleEndian;
- protected static bool IsUsingLittleEndian => useLittleEndian;
- protected abstract T ReadFromStream(Stream stream);
-
- protected StreamDataReader(bool useLittleEndian)
- {
- StreamDataReader.useLittleEndian = useLittleEndian;
- }
-
- protected static string ReadString(Stream stream, int length, Encoding encoding)
- {
- byte[] buffer = ReadBytes(stream, length << Convert.ToInt32(encoding is UnicodeEncoding));
- return encoding.GetString(buffer).TrimEnd('\0');
- }
-
- protected static byte[] ReadBytes(Stream stream, int count)
- {
- byte[] buffer = new byte[count];
- stream.Read(buffer, 0, count);
- return buffer;
- }
-
- protected static bool ReadBool(Stream stream)
- {
- return stream.ReadByte() != 0;
- }
-
- protected static ushort ReadUShort(Stream stream) => (ushort)ReadShort(stream);
- protected static short ReadShort(Stream stream)
- {
- byte[] bytes = ReadBytes(stream, 2);
- if (BitConverter.IsLittleEndian && !useLittleEndian)
- Array.Reverse(bytes);
- return BitConverter.ToInt16(bytes, 0);
- }
-
- protected static uint ReadUInt(Stream stream) => (uint)ReadInt(stream);
- protected static int ReadInt(Stream stream)
- {
- byte[] buffer = ReadBytes(stream, 4);
- if (BitConverter.IsLittleEndian && !useLittleEndian)
- Array.Reverse(buffer);
- return BitConverter.ToInt32(buffer, 0);
- }
-
- protected static ulong ReadULong(Stream stream) => (ulong)ReadLong(stream);
- protected static long ReadLong(Stream stream)
- {
- byte[] buffer = ReadBytes(stream, 8);
- if (BitConverter.IsLittleEndian && !useLittleEndian)
- Array.Reverse(buffer);
- return BitConverter.ToInt64(buffer, 0);
- }
-
- protected static float ReadFloat(Stream stream)
- {
- byte[] buffer = ReadBytes(stream, 4);
- if (BitConverter.IsLittleEndian && !useLittleEndian)
- Array.Reverse(buffer);
- return BitConverter.ToSingle(buffer, 0);
- }
- }
-}
diff --git a/PCK-Studio/Classes/IO/StreamDataWriter.cs b/PCK-Studio/Classes/IO/StreamDataWriter.cs
deleted file mode 100644
index 594621f0..00000000
--- a/PCK-Studio/Classes/IO/StreamDataWriter.cs
+++ /dev/null
@@ -1,89 +0,0 @@
-/* Copyright (c) 2022-present miku-666
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1.The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
-**/
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace PckStudio.Classes.IO
-{
- public abstract class StreamDataWriter
- {
- private static bool useLittleEndian;
- protected static bool IsUsingLittleEndian => useLittleEndian;
-
- protected StreamDataWriter(bool littleEndian)
- {
- useLittleEndian = littleEndian;
- }
-
- protected abstract void WriteToStream(Stream stream);
-
- protected static void WriteBool(Stream stream, bool state)
- {
- stream.WriteByte((byte)(state ? 1 : 0));
- }
-
- protected static void WriteUShort(Stream stream, ushort value) => WriteShort(stream, (short)value);
-
- protected static void WriteShort(Stream stream, short value)
- {
- byte[] bytes = BitConverter.GetBytes(value);
- if (BitConverter.IsLittleEndian && !useLittleEndian)
- Array.Reverse(bytes);
- WriteBytes(stream, bytes, 2);
- }
-
- protected static void WriteUInt(Stream stream, uint value) => WriteInt(stream, (int)value);
- protected static void WriteInt(Stream stream, int value)
- {
- byte[] buffer = BitConverter.GetBytes(value);
- if (BitConverter.IsLittleEndian && !useLittleEndian)
- Array.Reverse(buffer);
- WriteBytes(stream, buffer, 4);
- }
-
- protected static void WriteULong(Stream stream, ulong value) => WriteLong(stream, (long)value);
- protected static void WriteLong(Stream stream, long value)
- {
- byte[] buffer = BitConverter.GetBytes(value);
- if (BitConverter.IsLittleEndian && !useLittleEndian)
- Array.Reverse(buffer);
- WriteBytes(stream, buffer, 8);
- }
-
- protected static void WriteString(Stream stream, string s, Encoding encoding)
- => WriteBytes(stream, encoding.GetBytes(s));
-
- protected static void WriteBytes(Stream stream, byte[] bytes) => WriteBytes(stream, bytes, bytes.Length);
- protected static void WriteBytes(Stream stream, byte[] bytes, int count)
- {
- stream.Write(bytes, 0, count);
- }
-
- protected static void WriteFloat(Stream stream, float value)
- {
- byte[] buffer = BitConverter.GetBytes(value);
- if (BitConverter.IsLittleEndian && !useLittleEndian)
- Array.Reverse(buffer);
- WriteBytes(stream, buffer, 4);
- }
- }
-}
diff --git a/PCK-Studio/Classes/Misc/FileCacher.cs b/PCK-Studio/Classes/Misc/FileCacher.cs
new file mode 100644
index 00000000..e2fb623a
--- /dev/null
+++ b/PCK-Studio/Classes/Misc/FileCacher.cs
@@ -0,0 +1,51 @@
+using System;
+using System.IO;
+
+namespace PckStudio.Classes.Misc
+{
+ internal class FileCacher
+ {
+ private string _cacheDirectory;
+
+ public string CacheDirectory => _cacheDirectory;
+
+ public FileCacher(string cacheDirectory)
+ {
+ _cacheDirectory = cacheDirectory;
+ }
+
+ public bool HasFileCached(string filename)
+ {
+ string destinationFilepath = Path.Combine(_cacheDirectory, filename);
+ return File.Exists(destinationFilepath);
+ }
+
+ public string GetCachedFilepath(string filename)
+ {
+ if (HasFileCached(filename))
+ {
+ return Path.Combine(_cacheDirectory, filename);
+ }
+ return null;
+ }
+
+ ///
+ /// Caches data if the doesn't already exists in the
+ ///
+ /// Data to cache
+ /// Filename with extension
+ ///
+ public void Cache(byte[] data, string filename)
+ {
+ _ = filename ?? throw new ArgumentNullException("filename");
+ string destinationFilepath = Path.Combine(_cacheDirectory, filename);
+ if (!File.Exists(destinationFilepath))
+ {
+ using (FileStream fsDst = File.OpenWrite(destinationFilepath))
+ {
+ fsDst.Write(data, 0, data.Length);
+ }
+ }
+ }
+ }
+}
diff --git a/PCK-Studio/Classes/Misc/RichPresenceClient.cs b/PCK-Studio/Classes/Misc/RichPresenceClient.cs
index 27939801..d64dfbdf 100644
--- a/PCK-Studio/Classes/Misc/RichPresenceClient.cs
+++ b/PCK-Studio/Classes/Misc/RichPresenceClient.cs
@@ -10,12 +10,32 @@ namespace PckStudio.Classes.Misc
public static DiscordRpcClient Client;
public static readonly DateTime StartUpTime = DateTime.UtcNow;
+ private static readonly Assets _assets = new Assets()
+ {
+ LargeImageKey = "pcklgo",
+ LargeImageText = "PCK-Studio",
+ };
+
+ private static readonly Button[] _buttons = new Button[]
+ {
+ new Button()
+ {
+ Label = "Check it out.",
+ Url = Program.ProjectUrl,
+ }
+ };
+
public static void Initialize()
{
Client = new DiscordRpcClient(Settings.Default.RichPresenceId);
Client.Initialize();
}
+ public static void SetPresence(string details)
+ {
+ SetPresence(details, null);
+ }
+
public static void SetPresence(string details, string state)
{
Client?.SetPresence(new RichPresence()
@@ -23,16 +43,14 @@ namespace PckStudio.Classes.Misc
Details = details,
State = state,
Timestamps = new Timestamps() { Start = StartUpTime },
- Assets = new Assets()
- {
- LargeImageKey = "pcklgo",
- LargeImageText = "PCK-Studio",
- }
+ Assets = _assets,
+ Buttons = _buttons
});
}
public static void Deinitialize()
{
+ Client?.ClearPresence();
Client?.Dispose();
Client = null;
}
diff --git a/PCK-Studio/Classes/Models/SkinBox.cs b/PCK-Studio/Classes/Models/SkinBox.cs
new file mode 100644
index 00000000..e27587cd
--- /dev/null
+++ b/PCK-Studio/Classes/Models/SkinBox.cs
@@ -0,0 +1,64 @@
+using System;
+using System.Numerics;
+using System.Text.RegularExpressions;
+using System.Windows.Forms;
+
+namespace PckStudio.Classes.Models
+{
+ public class SkinBox
+ {
+ public string Type;
+ public Vector3 Pos;
+ public Vector3 Size;
+ public float U, V;
+ public bool HideWithArmor;
+ public bool Mirror;
+ public float Scale;
+ public SkinBox(string input)
+ {
+ try
+ {
+ string[] arguments = Regex.Split(input, @"\s+"); // split by whitespace
+
+ int old_length = arguments.Length - 1;
+
+ Array.Resize(ref arguments, 12);
+
+ for (int x = 11; x > old_length; x--)
+ {
+ arguments[x] = "0"; // set any missing arguments to '0'
+ }
+
+ Type = arguments[0].ToUpper(); // just in case a box has all lower, the editor still parses correctly
+
+ Pos = new Vector3(float.Parse(arguments[1]), float.Parse(arguments[2]), float.Parse(arguments[3]));
+ Size = new Vector3(float.Parse(arguments[4]), float.Parse(arguments[5]), float.Parse(arguments[6]));
+ U = float.Parse(arguments[7]);
+ V = float.Parse(arguments[8]);
+ HideWithArmor = Convert.ToBoolean(int.Parse(arguments[9]));
+ Mirror = Convert.ToBoolean(int.Parse(arguments[10]));
+ Scale = float.Parse(arguments[11]);
+ }
+ catch (FormatException fex)
+ {
+ MessageBox.Show($"A Format Exception was thrown\nFailed to parse BOX value\n{fex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ catch (IndexOutOfRangeException iex) // this should be MUCH more rare now
+ {
+ MessageBox.Show($"A box paramater was out of range\nFailed to parse BOX value\n{iex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ catch (Exception ex)
+ {
+ Type = string.Empty;
+ }
+ }
+
+ public ValueTuple ToProperty()
+ {
+ string value = $"{Type} {Pos.X} {Pos.Y} {Pos.Z} {Size.X} {Size.Y} {Size.Z} {U} {V} {Convert.ToInt32(HideWithArmor)} {Convert.ToInt32(Mirror)} {Scale}";
+ return new ValueTuple("BOX", value.Replace(',', '.'));
+ }
+ }
+}
diff --git a/PCK-Studio/Classes/Networking/Network.cs b/PCK-Studio/Classes/Networking/Network.cs
index 2b232564..f35575ac 100644
--- a/PCK-Studio/Classes/Networking/Network.cs
+++ b/PCK-Studio/Classes/Networking/Network.cs
@@ -5,6 +5,7 @@ using System.Windows.Forms;
namespace PckStudio.Classes.Networking
{
+ [Obsolete]
class Network
{
public static string Version = Application.ProductVersion;
diff --git a/PCK-Studio/Classes/Networking/Update.cs b/PCK-Studio/Classes/Networking/Update.cs
index 7c674e9d..4813ae45 100644
--- a/PCK-Studio/Classes/Networking/Update.cs
+++ b/PCK-Studio/Classes/Networking/Update.cs
@@ -7,6 +7,7 @@ using System.Windows.Forms;
namespace PckStudio.Classes.Networking
{
+ [Obsolete]
public enum UpdateResult
{
// Base Failure value
@@ -19,6 +20,7 @@ namespace PckStudio.Classes.Networking
UpdateFailure,
}
+ [Obsolete]
class UpdateOptions
{
public bool IsBeta { get; set; }
@@ -45,6 +47,7 @@ namespace PckStudio.Classes.Networking
}
}
+ [Obsolete]
static class Update
{
public static UpdateResult CheckForUpdate(UpdateOptions options)
diff --git a/PCK-Studio/Classes/Utils/3DS/3DSUtil.cs b/PCK-Studio/Classes/Utils/3DS/3DSUtil.cs
deleted file mode 100644
index 485420a7..00000000
--- a/PCK-Studio/Classes/Utils/3DS/3DSUtil.cs
+++ /dev/null
@@ -1,131 +0,0 @@
-using System;
-using System.Drawing;
-using System.IO;
-using System.Text;
-
-namespace PckStudio.Classes._3ds.Utils
-{
- ///
- /// Format of the texture used on the PICA200.
- ///
- public enum _3DSTextureFormat
- {
- argb8 = 0,
- rgb8 = 1,
- rgba5551 = 2,
- rgb565 = 3,
- rgba4 = 4,
- la8 = 5,
- hilo8 = 6,
- l8 = 7,
- a8 = 8,
- la4 = 9,
- l4 = 0xa,
- a4 = 0xb,
- etc1 = 0xc,
- etc1a4 = 0xd,
- dontCare
- }
-
- internal class _3DSUtil
- {
- private static string ReadString(Stream stream, int len)
- {
- byte[] buffer = new byte[len];
- stream.Read(buffer, 0, len);
- return Encoding.ASCII.GetString(buffer);
- }
-
- private static int ReadInt32(Stream stream)
- {
- byte[] buffer = new byte[4];
- stream.Read(buffer, 0, 4);
- return BitConverter.ToInt32(buffer, 0);
- }
-
- private static void WriteString(Stream stream, string s)
- {
- byte[] buffer = Encoding.ASCII.GetBytes(s);
- stream.Write(buffer, 0, buffer.Length);
- }
-
- private static void WriteInt32(Stream stream, int value)
- {
- byte[] buffer = BitConverter.GetBytes(value);
- stream.Write(buffer, 0, 4);
- }
-
- public static int CalcBufferSize(_3DSTextureFormat textureFormat, int width, int height)
- {
- switch (textureFormat)
- {
- case _3DSTextureFormat.argb8:
- return width * height * 4;
- case _3DSTextureFormat.rgb8:
- return width * height * 3;
- case _3DSTextureFormat.rgba5551:
- case _3DSTextureFormat.rgb565:
- case _3DSTextureFormat.rgba4:
- case _3DSTextureFormat.la8:
- case _3DSTextureFormat.hilo8:
- return width * height * 2;
- case _3DSTextureFormat.l8:
- case _3DSTextureFormat.a8:
- case _3DSTextureFormat.la4:
- case _3DSTextureFormat.etc1a4:
- return width * height;
- case _3DSTextureFormat.l4:
- case _3DSTextureFormat.a4:
- case _3DSTextureFormat.etc1:
- return width * height >> 1;
- default:
- throw new InvalidDataException("Invalid texture format on BCH!");
- }
- }
-
- public static Image GetImageFrom3DST(Stream stream)
- {
- if (ReadString(stream, 4) == "3DST")
- {
- const int offset = 32;
- stream.Seek(8L, SeekOrigin.Begin);
- _3DSTextureFormat format = ReadInt32(stream) switch
- {
- 0 => _3DSTextureFormat.argb8,
- 1 => _3DSTextureFormat.rgb8,
- 2 => _3DSTextureFormat.rgba5551,
- 3 => _3DSTextureFormat.rgb8,
- 4 => _3DSTextureFormat.rgba4,
- 9 => _3DSTextureFormat.la4,
- _ => _3DSTextureFormat.dontCare,
- };
- int width = ReadInt32(stream);
- int height = ReadInt32(stream);
- int bufferSize = CalcBufferSize(format, width, height);
- stream.Seek(offset, SeekOrigin.Begin);
- byte[] buffer = new byte[bufferSize];
- stream.Read(buffer, 0, bufferSize);
- var img = TextureCodec.Decode(buffer, width, height, format);
- img.RotateFlip(RotateFlipType.RotateNoneFlipY);
- return img;
- }
- return null;
- }
-
- public static void SetImageTo3DST(Stream stream, Image source, _3DSTextureFormat format = _3DSTextureFormat.argb8)
- {
- // TODO: fix Encoding
- WriteString(stream, "3DST"); // 0
- WriteInt32(stream, 2); // 4 unknown
- WriteInt32(stream, (int)format); // 8
- WriteInt32(stream, source.Width); // 12
- WriteInt32(stream, source.Height); // 16
- WriteInt32(stream, 0); // 20
- WriteInt32(stream, 0); // 24
- WriteInt32(stream, 0); // 28
- source.RotateFlip(RotateFlipType.RotateNoneFlipY);
- byte[] buffer = TextureCodec.Encode(new Bitmap(source), format);
- stream.Write(buffer, 0, buffer.Length);
- }
- }
-}
diff --git a/PCK-Studio/Classes/Utils/BedrockJSONtoCSM.cs b/PCK-Studio/Classes/Utils/BedrockJSONtoCSM.cs
deleted file mode 100644
index b9989707..00000000
--- a/PCK-Studio/Classes/Utils/BedrockJSONtoCSM.cs
+++ /dev/null
@@ -1,98 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Newtonsoft.Json;
-
-namespace PckStudio.Classes.Utils.ModelConversion
-{
- public class BedrockJSONtoCSM
- {
- public string JSONtoCSM(string JsonString)
- {
- dynamic jsonDe = JsonConvert.DeserializeObject(JsonString);
- string NewJSON = JsonConvert.SerializeObject(jsonDe["minecraft:geometry"]);
- JObject[] NewJObject = JsonConvert.DeserializeObject(NewJSON);
-
- string CSMData = "";
- foreach (JBone bone in NewJObject[0].bones)
- {
- int i = 0;
- string PARENT = bone.name;
- foreach (JCube Cube in bone.cubes)
- {
- string name = PARENT + " " + i;
-
- float PosXModifier = 0;
- float PosYModifier = 0;
- float PosZModifier = 0;
-
- switch (PARENT)
- {
- case "ARM0":
- PosXModifier = 5;
- PosYModifier = 22;
- break;
- case "ARM1":
- PosXModifier = -5;
- PosYModifier = 22;
- break;
- case "LEG0":
- PosXModifier = 1.9f;
- PosYModifier = 12;
- break;
- case "LEG1":
- PosXModifier = -1.9f;
- PosYModifier = 12;
- break;
- case "BODY":
- PosYModifier = 24;
- break;
- case "HEAD":
- PosYModifier = 24;
- break;
- }
-
-
- float PosX = Cube.origin[0] + PosXModifier;
- float PosY = Cube.origin[1] + PosYModifier;
- float PosZ = Cube.origin[2] + PosZModifier;
- float SizeX = Cube.size[0];
- float SizeY = Cube.size[1];
- float SizeZ = Cube.size[2];
- float UvX = Cube.uv[0];
- float UvY = Cube.uv[1];
-
- CSMData += name + "\n" + PARENT + "\n" + name + "\n" + PosX + "\n" + PosY + "\n" + PosZ + "\n" + SizeX + "\n" + SizeY + "\n" + SizeZ + "\n" + UvX + "\n" + UvY + "\n";
- i++;
- }
- }
- return CSMData;
- }
- }
-
- internal class WholeJSON
- {
- public string format_version = "1.12.0";
- public Dictionary entries = new Dictionary();
- }
-
- internal class JObject
- {
- public Dictionary description = new Dictionary();
- public JBone[] bones = { };
- }
- internal class JBone
- {
- public string name = "";
- public int[] pivot = {0, 0, 0};
- public JCube[] cubes = { };
- }
- internal class JCube
- {
- public float[] origin = new float[3];
- public float[] size = new float [3];
- public float[] uv = new float[2];
- }
-}
diff --git a/PCK-Studio/Classes/Utils/CSMtoBedrockJSON.cs b/PCK-Studio/Classes/Utils/CSMtoBedrockJSON.cs
deleted file mode 100644
index 93df0546..00000000
--- a/PCK-Studio/Classes/Utils/CSMtoBedrockJSON.cs
+++ /dev/null
@@ -1,105 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Newtonsoft.Json;
-
-namespace PckStudio.Classes.Utils.ModelConversion
-{
- public class CSMtoBedrockJSON
- {
- public string CSMtoJSON(string CSMString)
- {
- List CSMLIST = new List();
- CSMLIST.AddRange(CSMString.Split(new[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries));
- List> CSMS = SplitToSublists(CSMLIST, 11);
-
- JObject jobj = new JObject();
- List bones = new List();
- Dictionary> CubeList = new Dictionary>
- {
- {"HEAD", new List()},
- {"BODY", new List()},
- {"ARM0", new List()},
- {"ARM1", new List()},
- {"LEG0", new List()},
- {"LEG1", new List()}
- };
-
- foreach (List CSMItem in CSMS)
- {
- JCube NewCube = new JCube();
-
-
- float PosXModifier = 0;
- float PosYModifier = 0;
- float PosZModifier = 0;
-
- switch (CSMItem[1])
- {
- case "ARM0":
- PosXModifier = -5;
- PosYModifier = -22;
- break;
- case "ARM1":
- PosXModifier = 5;
- PosYModifier = -22;
- break;
- case "LEG0":
- PosXModifier = -1.9f;
- PosYModifier = -12;
- break;
- case "LEG1":
- PosXModifier = 1.9f;
- PosYModifier = -12;
- break;
- case "BODY":
- PosYModifier = -24;
- break;
- case "HEAD":
- PosYModifier = -24;
- break;
- }
- NewCube.origin[0] = float.Parse(CSMItem[3]) + PosXModifier;
- NewCube.origin[1] = float.Parse(CSMItem[4]) + PosYModifier;
- NewCube.origin[2] = float.Parse(CSMItem[5]) + PosZModifier;
- NewCube.size[0] = float.Parse(CSMItem[6]);
- NewCube.size[1] = float.Parse(CSMItem[7]);
- NewCube.size[2] = float.Parse(CSMItem[8]);
- NewCube.uv[0] = float.Parse(CSMItem[9]);
- NewCube.uv[1] = float.Parse(CSMItem[10]);
- CubeList[CSMItem[1]].Add(NewCube);
- }
- foreach (KeyValuePair> bone in CubeList)
- {
- JBone jb = new JBone();
- jb.name = bone.Key;
- jb.cubes = bone.Value.ToArray();
- bones.Add(jb);
- }
- jobj.bones = bones.ToArray();
- jobj.description.Add("identifier", "geometry.steve");
- jobj.description.Add("texture_width", 64);
- jobj.description.Add("texture_height", 64);
- jobj.description.Add("visible_bounds_width", 2);
- jobj.description.Add("visible_bounds_height", 3.5f);
- jobj.description.Add("visible_bounds_offset", new float[] { 0, 1.25f, 0 });
- WholeJSON WJ = new WholeJSON();
- WJ.entries.Add("format_version", "1.12.0");
- WJ.entries.Add("minecraft:geometry", new JObject[] { jobj });
- string JSONDATA = JsonConvert.SerializeObject(WJ.entries, Formatting.Indented);
- return JSONDATA;
- }
-
- public List> SplitToSublists(List source, int size)
- {
- return source
- .Select((x, i) => new { Index = i, Value = x })
- .GroupBy(x => x.Index / size)
- .Select(x => x.Select(v => v.Value).ToList())
- .ToList();
- }
- }
-
-}
diff --git a/PCK-Studio/Classes/Utils/SkinANIM.cs b/PCK-Studio/Classes/Utils/SkinANIM.cs
index 07c59546..58f56a2e 100644
--- a/PCK-Studio/Classes/Utils/SkinANIM.cs
+++ b/PCK-Studio/Classes/Utils/SkinANIM.cs
@@ -69,8 +69,8 @@ namespace PckStudio.Classes.Utils
DINNERBONE = 1 << 31, // 0x80000000
}
- public struct SkinANIM
- {
+ public class SkinANIM : ICloneable, IEquatable
+ {
private ANIM_EFFECTS _ANIM;
public static readonly Regex animRegex = new Regex(@"^0x[0-9a-f]{1,8}\b", RegexOptions.IgnoreCase);
@@ -78,11 +78,6 @@ namespace PckStudio.Classes.Utils
: this(ANIM_EFFECTS.NONE)
{
}
-
- public SkinANIM(string anim)
- : this(ParseString(anim))
- {
- }
public SkinANIM(ANIM_EFFECTS anim)
{
@@ -93,10 +88,10 @@ namespace PckStudio.Classes.Utils
public static bool IsValidANIM(string anim) => animRegex.IsMatch(anim ?? string.Empty);
- public static ANIM_EFFECTS ParseString(string anim)
- => IsValidANIM(anim)
- ? (ANIM_EFFECTS)Convert.ToInt32(anim.TrimEnd(' ', '\n', '\r'), 16)
- : ANIM_EFFECTS.NONE;
+ public static SkinANIM FromString(string value)
+ => IsValidANIM(value)
+ ? new SkinANIM((ANIM_EFFECTS)Convert.ToInt32(value.TrimEnd(' ', '\n', '\r'), 16))
+ : new SkinANIM();
public void SetANIM(ANIM_EFFECTS anim) => _ANIM = anim;
@@ -107,10 +102,16 @@ namespace PckStudio.Classes.Utils
public static implicit operator SkinANIM(ANIM_EFFECTS anim) => new SkinANIM(anim);
public static bool operator ==(SkinANIM a, ANIM_EFFECTS b) => a._ANIM == b;
-
public static bool operator !=(SkinANIM a, ANIM_EFFECTS b) => !(a == b);
+ public static bool operator ==(SkinANIM a, SkinANIM b) => a.Equals(b);
+ public static bool operator !=(SkinANIM a, SkinANIM b) => !a.Equals(b);
- public override bool Equals(object obj) => obj is SkinANIM a && a == _ANIM;
+ public bool Equals(SkinANIM other)
+ {
+ return _ANIM == other._ANIM;
+ }
+
+ public override bool Equals(object obj) => obj is SkinANIM a && Equals(a);
public override int GetHashCode() => (int)_ANIM;
@@ -134,5 +135,10 @@ namespace PckStudio.Classes.Utils
{
return (_ANIM & flag) != 0;
}
- }
+
+ public object Clone()
+ {
+ return MemberwiseClone();
+ }
+ }
}
diff --git a/PCK-Studio/Forms/Additional-Popups/AddFilePrompt.Designer.cs b/PCK-Studio/Forms/Additional-Popups/AddFilePrompt.Designer.cs
index 51d72dcc..50dbca23 100644
--- a/PCK-Studio/Forms/Additional-Popups/AddFilePrompt.Designer.cs
+++ b/PCK-Studio/Forms/Additional-Popups/AddFilePrompt.Designer.cs
@@ -122,7 +122,7 @@
this.Controls.Add(this.InputTextBox);
this.Controls.Add(this.OKButton);
this.Controls.Add(this.TextLabel);
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "AddFilePrompt";
diff --git a/PCK-Studio/Forms/Additional-Popups/AddFilePrompt.cs b/PCK-Studio/Forms/Additional-Popups/AddFilePrompt.cs
index e2b533f6..70b1b436 100644
--- a/PCK-Studio/Forms/Additional-Popups/AddFilePrompt.cs
+++ b/PCK-Studio/Forms/Additional-Popups/AddFilePrompt.cs
@@ -6,26 +6,27 @@ namespace PckStudio
{
public partial class AddFilePrompt : MetroForm
{
- ///
- /// Text entered only access when DialogResult == DialogResult.OK
- ///
- public string filepath => InputTextBox.Text;
- public int filetype => FileTypeComboBox.SelectedIndex;
+ ///
+ /// Text entered only valid when == ,
+ /// otherwise
+ ///
+ public string Filepath => DialogResult == DialogResult.OK ? InputTextBox.Text : string.Empty;
+ public int Filetype => FileTypeComboBox.SelectedIndex;
- public AddFilePrompt(string InitialText) : this(InitialText, -1)
+ public AddFilePrompt(string initialText) : this(initialText, -1)
{ }
- public AddFilePrompt(string InitialText, int maxChar)
+ public AddFilePrompt(string initialText, int maxChar)
{
InitializeComponent();
- InputTextBox.Text = InitialText;
+ InputTextBox.Text = initialText;
InputTextBox.MaxLength = maxChar < 0 ? short.MaxValue : maxChar;
- FormBorderStyle = FormBorderStyle.None;
}
private void OKBtn_Click(object sender, EventArgs e)
{
- if(FileTypeComboBox.SelectedIndex > -1) DialogResult = DialogResult.OK;
+ if(FileTypeComboBox.SelectedIndex > -1)
+ DialogResult = DialogResult.OK;
}
private void InputTextBox_KeyDown(object sender, KeyEventArgs e)
diff --git a/PCK-Studio/Forms/Additional-Popups/Animation/ChangeTile.cs b/PCK-Studio/Forms/Additional-Popups/Animation/ChangeTile.cs
index 4dbd756d..d09ace94 100644
--- a/PCK-Studio/Forms/Additional-Popups/Animation/ChangeTile.cs
+++ b/PCK-Studio/Forms/Additional-Popups/Animation/ChangeTile.cs
@@ -23,7 +23,7 @@ namespace PckStudio.Forms.Additional_Popups.Animation
InitializeComponent();
ImageList tiles = new ImageList();
tiles.ColorDepth = ColorDepth.Depth32Bit;
- tiles.Images.AddRange(AnimationUtil.tileImages);
+ tiles.Images.AddRange(AnimationResources.tileImages);
treeViewBlocks.ImageList = tiles;
treeViewItems.ImageList = tiles;
@@ -31,9 +31,9 @@ namespace PckStudio.Forms.Additional_Popups.Animation
{
int i = 0;
- if (AnimationUtil.tileData["blocks"] != null)
+ if (AnimationResources.tileData["blocks"] != null)
{
- foreach (JObject content in AnimationUtil.tileData["blocks"].Children())
+ foreach (JObject content in AnimationResources.tileData["blocks"].Children())
{
foreach (JProperty prop in content.Properties())
{
@@ -52,9 +52,9 @@ namespace PckStudio.Forms.Additional_Popups.Animation
}
}
}
- if (AnimationUtil.tileData["items"] != null)
+ if (AnimationResources.tileData["items"] != null)
{
- foreach (JObject content in AnimationUtil.tileData["items"].Children())
+ foreach (JObject content in AnimationResources.tileData["items"].Children())
{
foreach (JProperty prop in content.Properties())
{
diff --git a/PCK-Studio/Forms/Additional-Popups/Animation/FrameEditor.Designer.cs b/PCK-Studio/Forms/Additional-Popups/Animation/FrameEditor.Designer.cs
index 3c8a510f..290635f4 100644
--- a/PCK-Studio/Forms/Additional-Popups/Animation/FrameEditor.Designer.cs
+++ b/PCK-Studio/Forms/Additional-Popups/Animation/FrameEditor.Designer.cs
@@ -29,138 +29,138 @@ namespace PckStudio.Forms.Additional_Popups.Animation
///
private void InitializeComponent()
{
- this.components = new System.ComponentModel.Container();
- this.SaveBtn = new System.Windows.Forms.Button();
- this.label1 = new System.Windows.Forms.Label();
- this.label3 = new System.Windows.Forms.Label();
- this.CancelBtn = new System.Windows.Forms.Button();
- this.FrameTimeUpDown = new System.Windows.Forms.NumericUpDown();
- this.FrameList = new System.Windows.Forms.TreeView();
- this.TextureIcons = new System.Windows.Forms.ImageList(this.components);
- ((System.ComponentModel.ISupportInitialize)(this.FrameTimeUpDown)).BeginInit();
- this.SuspendLayout();
- //
- // SaveBtn
- //
- this.SaveBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.SaveBtn.ForeColor = System.Drawing.Color.White;
- this.SaveBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl;
- this.SaveBtn.Location = new System.Drawing.Point(12, 228);
- this.SaveBtn.Name = "SaveBtn";
- this.SaveBtn.Size = new System.Drawing.Size(75, 23);
- this.SaveBtn.TabIndex = 7;
- this.SaveBtn.Text = "Save";
- this.SaveBtn.UseVisualStyleBackColor = true;
- this.SaveBtn.Click += new System.EventHandler(this.SaveBtn_Click);
- //
- // label1
- //
- this.label1.AutoSize = true;
- this.label1.ForeColor = System.Drawing.Color.White;
- this.label1.ImeMode = System.Windows.Forms.ImeMode.NoControl;
- this.label1.Location = new System.Drawing.Point(19, 204);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(62, 13);
- this.label1.TabIndex = 10;
- this.label1.Text = "Frame Time";
- //
- // label3
- //
- this.label3.AutoSize = true;
- this.label3.ForeColor = System.Drawing.Color.White;
- this.label3.ImeMode = System.Windows.Forms.ImeMode.NoControl;
- this.label3.Location = new System.Drawing.Point(14, 13);
- this.label3.Name = "label3";
- this.label3.Size = new System.Drawing.Size(109, 13);
- this.label3.TabIndex = 12;
- this.label3.Text = "may/matt was here :3";
- //
- // CancelBtn
- //
- this.CancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel;
- this.CancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.CancelBtn.ForeColor = System.Drawing.Color.White;
- this.CancelBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl;
- this.CancelBtn.Location = new System.Drawing.Point(92, 228);
- this.CancelBtn.Name = "CancelBtn";
- this.CancelBtn.Size = new System.Drawing.Size(75, 23);
- this.CancelBtn.TabIndex = 13;
- this.CancelBtn.Text = "Cancel";
- this.CancelBtn.UseVisualStyleBackColor = true;
- this.CancelBtn.Click += new System.EventHandler(this.CancelBtn_Click);
- //
- // FrameTimeUpDown
- //
- this.FrameTimeUpDown.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(17)))), ((int)(((byte)(17)))), ((int)(((byte)(17)))));
- this.FrameTimeUpDown.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.FrameTimeUpDown.ForeColor = System.Drawing.SystemColors.Window;
- this.FrameTimeUpDown.Location = new System.Drawing.Point(87, 202);
- this.FrameTimeUpDown.Maximum = new decimal(new int[] {
+ this.components = new System.ComponentModel.Container();
+ this.SaveBtn = new System.Windows.Forms.Button();
+ this.label1 = new System.Windows.Forms.Label();
+ this.label3 = new System.Windows.Forms.Label();
+ this.CancelBtn = new System.Windows.Forms.Button();
+ this.FrameTimeUpDown = new System.Windows.Forms.NumericUpDown();
+ this.FrameList = new System.Windows.Forms.TreeView();
+ this.TextureIcons = new System.Windows.Forms.ImageList(this.components);
+ ((System.ComponentModel.ISupportInitialize)(this.FrameTimeUpDown)).BeginInit();
+ this.SuspendLayout();
+ //
+ // SaveBtn
+ //
+ this.SaveBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.SaveBtn.ForeColor = System.Drawing.Color.White;
+ this.SaveBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.SaveBtn.Location = new System.Drawing.Point(12, 228);
+ this.SaveBtn.Name = "SaveBtn";
+ this.SaveBtn.Size = new System.Drawing.Size(75, 23);
+ this.SaveBtn.TabIndex = 7;
+ this.SaveBtn.Text = "Save";
+ this.SaveBtn.UseVisualStyleBackColor = true;
+ this.SaveBtn.Click += new System.EventHandler(this.SaveBtn_Click);
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.ForeColor = System.Drawing.Color.White;
+ this.label1.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.label1.Location = new System.Drawing.Point(19, 204);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(62, 13);
+ this.label1.TabIndex = 10;
+ this.label1.Text = "Frame Time";
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.ForeColor = System.Drawing.Color.White;
+ this.label3.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.label3.Location = new System.Drawing.Point(14, 13);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(150, 13);
+ this.label3.TabIndex = 12;
+ this.label3.Text = "Select a frame and frame time:";
+ //
+ // CancelBtn
+ //
+ this.CancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ this.CancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.CancelBtn.ForeColor = System.Drawing.Color.White;
+ this.CancelBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.CancelBtn.Location = new System.Drawing.Point(92, 228);
+ this.CancelBtn.Name = "CancelBtn";
+ this.CancelBtn.Size = new System.Drawing.Size(75, 23);
+ this.CancelBtn.TabIndex = 13;
+ this.CancelBtn.Text = "Cancel";
+ this.CancelBtn.UseVisualStyleBackColor = true;
+ this.CancelBtn.Click += new System.EventHandler(this.CancelBtn_Click);
+ //
+ // FrameTimeUpDown
+ //
+ this.FrameTimeUpDown.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(17)))), ((int)(((byte)(17)))), ((int)(((byte)(17)))));
+ this.FrameTimeUpDown.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.FrameTimeUpDown.ForeColor = System.Drawing.SystemColors.Window;
+ this.FrameTimeUpDown.Location = new System.Drawing.Point(87, 202);
+ this.FrameTimeUpDown.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
- this.FrameTimeUpDown.Minimum = new decimal(new int[] {
+ this.FrameTimeUpDown.Minimum = new decimal(new int[] {
1,
0,
0,
0});
- this.FrameTimeUpDown.Name = "FrameTimeUpDown";
- this.FrameTimeUpDown.Size = new System.Drawing.Size(73, 20);
- this.FrameTimeUpDown.TabIndex = 15;
- this.FrameTimeUpDown.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
- this.FrameTimeUpDown.Value = new decimal(new int[] {
+ this.FrameTimeUpDown.Name = "FrameTimeUpDown";
+ this.FrameTimeUpDown.Size = new System.Drawing.Size(73, 20);
+ this.FrameTimeUpDown.TabIndex = 15;
+ this.FrameTimeUpDown.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+ this.FrameTimeUpDown.Value = new decimal(new int[] {
1,
0,
0,
0});
- //
- // FrameList
- //
- this.FrameList.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
- this.FrameList.ForeColor = System.Drawing.SystemColors.Window;
- this.FrameList.HideSelection = false;
- this.FrameList.ImageIndex = 0;
- this.FrameList.ImageList = this.TextureIcons;
- this.FrameList.Location = new System.Drawing.Point(12, 37);
- this.FrameList.Name = "FrameList";
- this.FrameList.SelectedImageIndex = 0;
- this.FrameList.ShowLines = false;
- this.FrameList.ShowRootLines = false;
- this.FrameList.Size = new System.Drawing.Size(155, 159);
- this.FrameList.TabIndex = 1;
- //
- // TextureIcons
- //
- this.TextureIcons.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit;
- this.TextureIcons.ImageSize = new System.Drawing.Size(32, 32);
- this.TextureIcons.TransparentColor = System.Drawing.Color.Transparent;
- //
- // FrameEditor
- //
- this.AcceptButton = this.SaveBtn;
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.CancelButton = this.CancelBtn;
- this.ClientSize = new System.Drawing.Size(178, 264);
- this.ControlBox = false;
- this.Controls.Add(this.FrameList);
- this.Controls.Add(this.FrameTimeUpDown);
- this.Controls.Add(this.CancelBtn);
- this.Controls.Add(this.label3);
- this.Controls.Add(this.label1);
- this.Controls.Add(this.SaveBtn);
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
- this.MaximizeBox = false;
- this.MinimizeBox = false;
- this.Name = "FrameEditor";
- this.Resizable = false;
- this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
- this.Style = MetroFramework.MetroColorStyle.Silver;
- this.Theme = MetroFramework.MetroThemeStyle.Dark;
- ((System.ComponentModel.ISupportInitialize)(this.FrameTimeUpDown)).EndInit();
- this.ResumeLayout(false);
- this.PerformLayout();
+ //
+ // FrameList
+ //
+ this.FrameList.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ this.FrameList.ForeColor = System.Drawing.SystemColors.Window;
+ this.FrameList.HideSelection = false;
+ this.FrameList.ImageIndex = 0;
+ this.FrameList.ImageList = this.TextureIcons;
+ this.FrameList.Location = new System.Drawing.Point(12, 37);
+ this.FrameList.Name = "FrameList";
+ this.FrameList.SelectedImageIndex = 0;
+ this.FrameList.ShowLines = false;
+ this.FrameList.ShowRootLines = false;
+ this.FrameList.Size = new System.Drawing.Size(155, 159);
+ this.FrameList.TabIndex = 1;
+ //
+ // TextureIcons
+ //
+ this.TextureIcons.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit;
+ this.TextureIcons.ImageSize = new System.Drawing.Size(32, 32);
+ this.TextureIcons.TransparentColor = System.Drawing.Color.Transparent;
+ //
+ // FrameEditor
+ //
+ this.AcceptButton = this.SaveBtn;
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.CancelButton = this.CancelBtn;
+ this.ClientSize = new System.Drawing.Size(178, 264);
+ this.ControlBox = false;
+ this.Controls.Add(this.FrameList);
+ this.Controls.Add(this.FrameTimeUpDown);
+ this.Controls.Add(this.CancelBtn);
+ this.Controls.Add(this.label3);
+ this.Controls.Add(this.label1);
+ this.Controls.Add(this.SaveBtn);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "FrameEditor";
+ this.Resizable = false;
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+ this.Style = MetroFramework.MetroColorStyle.Silver;
+ this.Theme = MetroFramework.MetroThemeStyle.Dark;
+ ((System.ComponentModel.ISupportInitialize)(this.FrameTimeUpDown)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
}
diff --git a/PCK-Studio/Forms/Additional-Popups/Animation/FrameEditor.cs b/PCK-Studio/Forms/Additional-Popups/Animation/FrameEditor.cs
index b3836f82..1369cae6 100644
--- a/PCK-Studio/Forms/Additional-Popups/Animation/FrameEditor.cs
+++ b/PCK-Studio/Forms/Additional-Popups/Animation/FrameEditor.cs
@@ -1,7 +1,7 @@
using System;
-using System.Drawing;
using MetroFramework.Forms;
using System.Windows.Forms;
+using System.Diagnostics;
namespace PckStudio.Forms.Additional_Popups.Animation
{
@@ -13,16 +13,12 @@ namespace PckStudio.Forms.Additional_Popups.Animation
public FrameEditor(ImageList texList)
{
InitializeComponent();
- label3.Text = "Select a frame and frame time:";
FrameList.ImageList = texList;
-
- int index = 0;
- foreach (Image frameTex in texList.Images)
+ for (int index = 0; index < texList.Images.Count; index++)
{
TreeNode frame = new TreeNode($"Frame {index}", index, index);
FrameList.Nodes.Add(frame);
- Console.WriteLine(index);
- index++;
+ Debug.WriteLine(index);
}
}
@@ -41,7 +37,8 @@ namespace PckStudio.Forms.Additional_Popups.Animation
private void CancelBtn_Click(object sender, EventArgs e)
{
- Close();
+ DialogResult = DialogResult.Cancel;
+ Close();
}
}
}
diff --git a/PCK-Studio/Forms/Additional-Popups/Animation/SetBulkSpeed.Designer.cs b/PCK-Studio/Forms/Additional-Popups/Animation/SetBulkSpeed.Designer.cs
index f38ca1c0..e7a23f35 100644
--- a/PCK-Studio/Forms/Additional-Popups/Animation/SetBulkSpeed.Designer.cs
+++ b/PCK-Studio/Forms/Additional-Popups/Animation/SetBulkSpeed.Designer.cs
@@ -29,108 +29,108 @@ namespace PckStudio.Forms.Additional_Popups.Animation
///
private void InitializeComponent()
{
- this.button1 = new System.Windows.Forms.Button();
- this.label1 = new System.Windows.Forms.Label();
- this.label3 = new System.Windows.Forms.Label();
- this.button2 = new System.Windows.Forms.Button();
- this.TimeUpDown = new System.Windows.Forms.NumericUpDown();
- ((System.ComponentModel.ISupportInitialize)(this.TimeUpDown)).BeginInit();
- this.SuspendLayout();
- //
- // button1
- //
- this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.button1.ForeColor = System.Drawing.Color.White;
- this.button1.ImeMode = System.Windows.Forms.ImeMode.NoControl;
- this.button1.Location = new System.Drawing.Point(55, 63);
- this.button1.Name = "button1";
- this.button1.Size = new System.Drawing.Size(75, 23);
- this.button1.TabIndex = 7;
- this.button1.Text = "Save";
- this.button1.UseVisualStyleBackColor = true;
- this.button1.Click += new System.EventHandler(this.button1_Click);
- //
- // label1
- //
- this.label1.AutoSize = true;
- this.label1.ForeColor = System.Drawing.Color.White;
- this.label1.ImeMode = System.Windows.Forms.ImeMode.NoControl;
- this.label1.Location = new System.Drawing.Point(9, 35);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(79, 13);
- this.label1.TabIndex = 10;
- this.label1.Text = "Animation Time";
- //
- // label3
- //
- this.label3.AutoSize = true;
- this.label3.ForeColor = System.Drawing.Color.White;
- this.label3.ImeMode = System.Windows.Forms.ImeMode.NoControl;
- this.label3.Location = new System.Drawing.Point(47, 13);
- this.label3.Name = "label3";
- this.label3.Size = new System.Drawing.Size(174, 13);
- this.label3.TabIndex = 12;
- this.label3.Text = "Frame Time must be greater than 0.";
- //
- // button2
- //
- this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.button2.ForeColor = System.Drawing.Color.White;
- this.button2.ImeMode = System.Windows.Forms.ImeMode.NoControl;
- this.button2.Location = new System.Drawing.Point(135, 63);
- this.button2.Name = "button2";
- this.button2.Size = new System.Drawing.Size(75, 23);
- this.button2.TabIndex = 13;
- this.button2.Text = "Cancel";
- this.button2.UseVisualStyleBackColor = true;
- this.button2.Click += new System.EventHandler(this.button2_Click);
- //
- // TimeUpDown
- //
- this.TimeUpDown.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(17)))), ((int)(((byte)(17)))), ((int)(((byte)(17)))));
- this.TimeUpDown.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.TimeUpDown.ForeColor = System.Drawing.SystemColors.Window;
- this.TimeUpDown.Location = new System.Drawing.Point(94, 33);
- this.TimeUpDown.Maximum = new decimal(new int[] {
+ this.saveButton = new System.Windows.Forms.Button();
+ this.label1 = new System.Windows.Forms.Label();
+ this.label3 = new System.Windows.Forms.Label();
+ this.cancelButton = new System.Windows.Forms.Button();
+ this.TimeUpDown = new System.Windows.Forms.NumericUpDown();
+ ((System.ComponentModel.ISupportInitialize)(this.TimeUpDown)).BeginInit();
+ this.SuspendLayout();
+ //
+ // saveButton
+ //
+ this.saveButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.saveButton.ForeColor = System.Drawing.Color.White;
+ this.saveButton.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.saveButton.Location = new System.Drawing.Point(55, 63);
+ this.saveButton.Name = "saveButton";
+ this.saveButton.Size = new System.Drawing.Size(75, 23);
+ this.saveButton.TabIndex = 7;
+ this.saveButton.Text = "Save";
+ this.saveButton.UseVisualStyleBackColor = true;
+ this.saveButton.Click += new System.EventHandler(this.saveButton_Click);
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.ForeColor = System.Drawing.Color.White;
+ this.label1.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.label1.Location = new System.Drawing.Point(9, 35);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(79, 13);
+ this.label1.TabIndex = 10;
+ this.label1.Text = "Animation Time";
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.ForeColor = System.Drawing.Color.White;
+ this.label3.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.label3.Location = new System.Drawing.Point(47, 13);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(174, 13);
+ this.label3.TabIndex = 12;
+ this.label3.Text = "Frame Time must be greater than 0.";
+ //
+ // cancelButton
+ //
+ this.cancelButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.cancelButton.ForeColor = System.Drawing.Color.White;
+ this.cancelButton.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.cancelButton.Location = new System.Drawing.Point(135, 63);
+ this.cancelButton.Name = "cancelButton";
+ this.cancelButton.Size = new System.Drawing.Size(75, 23);
+ this.cancelButton.TabIndex = 13;
+ this.cancelButton.Text = "Cancel";
+ this.cancelButton.UseVisualStyleBackColor = true;
+ this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click);
+ //
+ // TimeUpDown
+ //
+ this.TimeUpDown.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(17)))), ((int)(((byte)(17)))), ((int)(((byte)(17)))));
+ this.TimeUpDown.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.TimeUpDown.ForeColor = System.Drawing.SystemColors.Window;
+ this.TimeUpDown.Location = new System.Drawing.Point(94, 33);
+ this.TimeUpDown.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
- this.TimeUpDown.Name = "TimeUpDown";
- this.TimeUpDown.Size = new System.Drawing.Size(162, 20);
- this.TimeUpDown.TabIndex = 15;
- this.TimeUpDown.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
- //
- // SetBulkSpeed
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(264, 94);
- this.ControlBox = false;
- this.Controls.Add(this.button2);
- this.Controls.Add(this.label3);
- this.Controls.Add(this.label1);
- this.Controls.Add(this.button1);
- this.Controls.Add(this.TimeUpDown);
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
- this.MaximizeBox = false;
- this.MinimizeBox = false;
- this.MinimumSize = new System.Drawing.Size(266, 96);
- this.Name = "SetBulkSpeed";
- this.Resizable = false;
- this.Style = MetroFramework.MetroColorStyle.Silver;
- this.Theme = MetroFramework.MetroThemeStyle.Dark;
- ((System.ComponentModel.ISupportInitialize)(this.TimeUpDown)).EndInit();
- this.ResumeLayout(false);
- this.PerformLayout();
+ this.TimeUpDown.Name = "TimeUpDown";
+ this.TimeUpDown.Size = new System.Drawing.Size(162, 20);
+ this.TimeUpDown.TabIndex = 15;
+ this.TimeUpDown.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+ //
+ // SetBulkSpeed
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(264, 94);
+ this.ControlBox = false;
+ this.Controls.Add(this.cancelButton);
+ this.Controls.Add(this.label3);
+ this.Controls.Add(this.label1);
+ this.Controls.Add(this.saveButton);
+ this.Controls.Add(this.TimeUpDown);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.MinimumSize = new System.Drawing.Size(266, 96);
+ this.Name = "SetBulkSpeed";
+ this.Resizable = false;
+ this.Style = MetroFramework.MetroColorStyle.Silver;
+ this.Theme = MetroFramework.MetroThemeStyle.Dark;
+ ((System.ComponentModel.ISupportInitialize)(this.TimeUpDown)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
}
#endregion
- private System.Windows.Forms.Button button1;
+ private System.Windows.Forms.Button saveButton;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label3;
- private System.Windows.Forms.Button button2;
+ private System.Windows.Forms.Button cancelButton;
private System.Windows.Forms.NumericUpDown TimeUpDown;
}
}
\ No newline at end of file
diff --git a/PCK-Studio/Forms/Additional-Popups/Animation/SetBulkSpeed.cs b/PCK-Studio/Forms/Additional-Popups/Animation/SetBulkSpeed.cs
index 3d0590fd..af34f4b6 100644
--- a/PCK-Studio/Forms/Additional-Popups/Animation/SetBulkSpeed.cs
+++ b/PCK-Studio/Forms/Additional-Popups/Animation/SetBulkSpeed.cs
@@ -6,19 +6,20 @@ namespace PckStudio.Forms.Additional_Popups.Animation
{
public partial class SetBulkSpeed : MetroForm
{
- public int time => (int)TimeUpDown.Value;
- public SetBulkSpeed(TreeView treeView)
+ public int Ticks => (int)TimeUpDown.Value;
+
+ public SetBulkSpeed()
{
InitializeComponent();
}
- private void button1_Click(object sender, EventArgs e)
+ private void saveButton_Click(object sender, EventArgs e)
{
- if (time < 0) return;
+ if (Ticks < 0) return;
DialogResult = DialogResult.OK;
}
- private void button2_Click(object sender, EventArgs e)
+ private void cancelButton_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
}
diff --git a/PCK-Studio/Forms/Additional-Popups/CreateTexturePack.Designer.cs b/PCK-Studio/Forms/Additional-Popups/CreateTexturePack.Designer.cs
index 1bd906e4..242f1dcd 100644
--- a/PCK-Studio/Forms/Additional-Popups/CreateTexturePack.Designer.cs
+++ b/PCK-Studio/Forms/Additional-Popups/CreateTexturePack.Designer.cs
@@ -116,7 +116,7 @@
this.Controls.Add(this.InputTextBox);
this.Controls.Add(this.OKButton);
this.Controls.Add(this.TextLabel);
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "CreateTexturePack";
diff --git a/PCK-Studio/Forms/Additional-Popups/CreateTexturePack.cs b/PCK-Studio/Forms/Additional-Popups/CreateTexturePack.cs
index 348ceea4..5a2946d4 100644
--- a/PCK-Studio/Forms/Additional-Popups/CreateTexturePack.cs
+++ b/PCK-Studio/Forms/Additional-Popups/CreateTexturePack.cs
@@ -9,19 +9,18 @@ namespace PckStudio
///
/// Text entered only access when DialogResult == DialogResult.OK
///
- public string packName => InputTextBox.Text;
- public string packRes => metroComboBox1.Text;
+ public string PackName => InputTextBox.Text;
+ public string PackRes => metroComboBox1.Text;
- public CreateTexturePack(string InitialText)
+ public CreateTexturePack()
{
InitializeComponent();
- InputTextBox.Text = InitialText;
- FormBorderStyle = FormBorderStyle.None;
}
private void OKBtn_Click(object sender, EventArgs e)
{
- if (metroComboBox1.SelectedIndex < 0) return;
+ if (metroComboBox1.SelectedIndex < 0)
+ return;
DialogResult = DialogResult.OK;
}
}
diff --git a/PCK-Studio/Forms/Additional-Popups/CreateTexturePack.resx b/PCK-Studio/Forms/Additional-Popups/CreateTexturePack.resx
index cdfe0893..8c770886 100644
--- a/PCK-Studio/Forms/Additional-Popups/CreateTexturePack.resx
+++ b/PCK-Studio/Forms/Additional-Popups/CreateTexturePack.resx
@@ -308,2222 +308,2508 @@
- AAABAAYAEBAAAAEAIABoBAAAZgAAACAgAAABACAAqBAAAM4EAAAwMAAAAQAgAKglAAB2FQAAQEAAAAEA
- IAAoQgAAHjsAAICAAAABACAAKAgBAEZ9AAAAAAAAAQAgAOOBAABuhQEAKAAAABAAAAAgAAAAAQAgAAAA
- AAAABAAAwg4AAMIOAAAAAAAAAAAAAO3t7QCTk5MA4ODgf8/Pz+DMzMzcysrK3MnJydzHx8fcxsbG3MTE
- xNzDw8PcwcHB3MLCwuDX19d/bWxtAOzs7AD7+/sAAAAAANfX15y6urr/tbW1/7Ozs/+xsbH/r6+v/6ys
- rP+qqqr/qKio/6Wlpf+np6f/ysrKnAAAAAD6+voA/Pz8AAAAAADZ2dmcwMDA/7u7u/+3t7f/tra2/7e3
- t/+0tLT/r6+v/62trf+rq6v/q6ur/8zMzJwAAAAA+vr6APz8/AAAAAAA3t7enL+/v/++vr7/v7+//7q6
- uv+ZmZn/oqKi/7q6uv+2trb/sbGx/7a2tv/Qz8+cAAAAAPv7+wD9/f0AAAAAAObm5pyenp7/pKSk/8zM
- zP+Wlpb/cnJy/29vb/+fn5//lJSU/4SFhf+4uLj/0tLSnAAAAAD7+/sA/f39AAAAAADp6emcnJyc/4aG
- hv++vr7/l5eX/5ubm/+srKz/pKSk/2ZmZv+ZmZn/v76+/9TU1JwAAAAA+/v7AP39/QAAAAAA7OzsnJ2d
- nf9paWn/bGxs/5CQkP+Wlpb/1dXV/6ampv8+Pj7/ubm5/729vf/V1dWcAAAAAPv7+wD9/f0AERERAO/u
- 7pyhoaH/paWl/35+fv+MjIz/np6e/7i4uP+oqKj/W1tb/6CgoP/BwcH/1tbWnAAAAAD7+/sA/f39AC8v
- LwDx8fGcpKSk/3l5ef9ubm7/lZWV/3d3d/9zc3P/pKSk/5GRkf+EhIT/w8PD/9nZ2ZwAAAAA+/v7AP39
- /QBDQ0MA7+/vnNXV1f+0tLT/vr6+/9LS0v+ysrL/ubm5/87Ozv/Kysr/wsLC/8nJyf/c3NycAAAAAPz8
- /AD9/f0AW1tbAO/v75zl5eX/5OTk/+Hh4f/d3d3/3d3d/9rb2v/V1dX/0tLS/9DQ0P/Q0ND/4+PjlG5u
- bwD6+voA/v7+AHd3dwDy8vKc6eno/+Xl5f/j4+P/4eHh/97e3v/f39//4+Pj/+Hh4f/g4OD/5+fnze/v
- 7zDs7OwA8fHxAP7+/gCVlZQA9fX1nO3t7f/q6ur/6Ojo/+bm5v/j4+P/5OTk/+fn5//n5+f/7OzszPPz
- 8zHu7u4A+vr6AAAAAAD+/v4AtLS0APj4+Jzy8vL/7+/v/+3t7f/r6+v/6Ojo/+jo6P/s7Oz/8PDwy/X1
- 9TDy8vIA+/v7AAAAAAAAAAAA/f39ANbW1QD7+/uc9/f3//T09P/y8vL/8PDw/+3t7f/u7u7/8vLyyfT0
- 9C7u7u4A/f39AAAAAAAAAAAAAAAAAO/v7wD///8A+vr6f/v7++D6+vrc+Pj43Pf399z19fXe9fX1xvPz
- 8zX5+fkA4+TkAAAAAAAAAAAAAAAAAAAAAADAAwAAwAMAAMADAADAAwAAwAMAAMADAADAAwAAwAMAAMAD
- AADAAwAAwAMAAMADAADABwAAwA8AAMAfAADAPwAAKAAAACAAAABAAAAAAQAgAAAAAAAAEAAAwg4AAMIO
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOvr6wDo6Ogd7OzsnOnp6bLo6Oix6Ojosejo6LHn5+ex5+fnsefn
- 57Hm5uax5ubmsebm5rHl5eWx5eXlseXl5bHk5OSx5OTkseTk5LHj4+Ox4+PjsePj47Hj4+Oy6enpnOjo
- 6B7q6uoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8vLyAPPz80fb29v4w8PD/8HBwf/AwcD/v7/A/7+/
- v/++vr7/vb29/7y8vP+7u7v/urq6/7m5uf+4uLj/t7e3/7a2tv+1tbX/tLS0/7Ozs/+ysrL/srGx/7Gx
- sf/Q0ND48PHwR+7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADy8vIA9fX1SdPT0/m2trb/tbW1/7S0
- tP+zsrP/sbGx/7CwsP+vr6//rq6u/62trf+srKz/qqqq/6mpqf+oqKj/p6en/6ampv+lpaX/pKSk/6Kj
- o/+hoaH/oKCg/8XFxfnx8fFJ7e3tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPLy8gD19fVJ1dXV+bm5
- uf+4uLj/t7e3/7a2tv+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/rays/6urq/+qqqr/qamp/6io
- qP+np6f/pqam/6SlpP+kpKT/x8fH+fLy8knu7u4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8/PzAPb2
- 9knW1tb5vLy8/7q6uv+5ubn/uLi4/7e3t/+2trb/tbW0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62t
- rf+rq6v/qqqq/6mpqf+oqKj/p6en/6ampv/IyMj58vLySe7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AADz8/MA9vb2SdjY2Pm+vr7/vLy8/7u7u/+6urr/ubm5/7i4uP+3t7f/trW2/7S0tP+zs7P/srKy/7Gx
- sf+wsLD/r6+v/62trf+tra3/q6ur/6qqqv+pqan/qKio/8rKyvny8vJJ7+/vAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAPT09AD29vZJ2dnZ+cPDw//Ozs7/zc3N/8DAwP+8vLz/u7u7/7q6uv/ExMT/zMzM/8vL
- y//Kysr/xMTE/7e3t/+/v7//xMTE/7a2tv+3t7f/w8PD/7q6uv+srKz/y8vL+fPz80nw8PAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAA9PT0APf390na29v50tLS/6Kiov+vr6//0NDQ/76+vv+9vb3/ycnJ/729
- vf96enr/cnJy/3Nzc/+ioqL/1tbW/7S0tP+Xl5f/0tLS/8jIyP+Kior/xcXF/7e3t//MzMz58/PzSfDw
- 8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD19fUA9/f3Sdzc3PnZ2dn/XFxc/3Z2dv/Z2dn/wMDA/7+/
- v//U1NT/ZmZm/yIiIv9fX1//Pz8//zU1Nf/h4eH/jo6O/0ZGRv/o6Oj/lZWV/zs7O//Kysr/tbW1/87O
- zvnz8/NJ8PDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPX19QD39/dJ3d7d+dra2v9cXFz/dnZ2/9ra
- 2v/CwsL/wcHB/9XV1f9aWlr/XFxc/+7u7v+oqKj/NTU1/+Li4v+Pj4//SEhI/+rq6v9MTEz/i4uL/8rK
- yv+ysrL/0M/Q+fT09Enx8fEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vX2APj4+Enf39/53Nzc/1xc
- XP94eHj/5OTl/9DQ0P/Ly8v/19fX/1tbW/9aWlr/4+Pj/6ampv86Ojr/4+Li/4+Pj/9LS0v/tLS0/zw8
- PP/Jycn/vLy8/7S0tP/R0dH59PT0SfHx8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vYA+Pj4SeHg
- 4fnd3t3/XV1d/1NTU/+srKz/p6en/8fHx//l5eX/W1tb/1paWv/d3d3/zs3O/7S0tP/i4uL/jo6O/0VF
- Rf9dXV3/gYGB/9DQ0P+4uLj/t7e3/9PT0/n09PRJ8vLyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb2
- 9wD4+PhJ4uLi+d/f3/9fX1//FxcX/zg4OP8hISH/SUlJ/+rq6v9cXFz/W1tb/9jY2P/Jycn/y8zL/9PT
- 0/+Pj4//GRkZ/zg4OP/Gxsf/w8PD/7q6uv+5ubn/0tPT+fT09Enx8fEAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAA9/f3APn5+Unj4+P54eHh/11dXf9vb2//4+Pj/4iIiP8wMDD/5ubm/11dXf9bW1v/2dnZ/8jI
- yP/Jycn/09PT/5CQkP8HBwf/PDw8/9TU1P/CwsL/vLy8/7i4uP/R0dH59PT0SfHx8QAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAD39/cA+fn5SeXl5fni4uL/XV1d/3R0dP/j4+P/jIyM/zExMf/n5+f/XV1d/1tb
- W//f39//2NjY/9DQ0P/j4+P/j4+P/zs7O/9GRkb/mZmZ/9HR0f+7u7v/t7e3/9LS0vn09PRJ8vLyAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AD5+flJ5ubm+eTk5P9dXV3/dHR0/+Hh4f+Li4v/MTEx/+fn
- 5/9dXV3/W1tb/+np6f+vr6//TExM/+bm5v+RkZH/S0tL/5KSkv9MTEz/1dXV/76+vv+5urr/1NTU+fX1
- 9Uny8vIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+Pj4APn5+Uno6Oj55ubm/11dXf92dnb/7u7u/4+P
- j/8xMTH/6Ojo/11dXf9cXFz/9PTz/6qqqv81NTX/5ubm/5GRkf9JSUn/3Nzc/zU1Nf+ioqL/zc3N/7y8
- vP/W1tb59fX1SfLy8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4+PgA+vr6Senp6fnn5+f/X19f/yws
- LP9jY2P/ODg4/zs7O//r6+v/bGxs/yMjI/9jY2P/QkJC/zc3N//n5+f/kZGR/0dHR//x8fH/c3Nz/0xM
- TP/V1dX/wcHB/9fX1/n19fVJ8/PzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPn5+QD6+vpJ6+vr+ebm
- 5v+7u7v/k5OT/5KSkv+SkpL/urq6/+np6f/Ly8v/lZWV/5GRkf+RkZH/srKy/+Tk5P/IyMj/rq6u/+Li
- 4v/MzMz/oqKi/9bW1v/FxcX/2dnZ+fX29Unz8/MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+fn5APr6
- +kns7Oz54eHh/+jo6P/q6ur/6enp/+jo6P/j4+P/2tra/9/f3//l5eX/5OTk/+Pj4//e3t7/1NTU/9jY
- 2P/Z2tn/zs7O/9DQ0P/X19f/zc3N/8XFxf/a2tr59vb2SfP09AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAD6+voA+/v7Se7u7vni4uL/4eHh/+Dg4P/e3t7/3d3d/9zc3P/b29v/2tra/9nZ2f/Y2Nj/1tbW/9XV
- 1f/S0tL/zs7O/83Nzf/MzMz/ysrK/8nJyf/Ix8f/x8fH/9zc3Pn39/ZJ9PT0AAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAPr6+gD7+/tJ7+/v+eXl5f/k5OT/4uLi/+Hh4f/g4OD/39/f/97e3v/d3d3/3Nzc/9ra
- 2v/Z2dn/2dnZ/9fX1//W1tb/1NXU/9PT0//S0tL/0dHR/9DQ0P/S0tL/5ubm8vf39z/19fUAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAA+/v7APv7+0nx8fH55+fn/+bm5v/l5eX/5OTk/+Pj4//h4eH/4ODg/9/f
- 3//e3t7/3d3d/9zc3P/h4eH/4+Pj/+Li4v/h4eH/4ODg/9/f3//e3t7/4ODg/+vr6/fy8vKB6ejoCOvr
- 6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7+/sA/Pz8SfLy8vnq6un/6Ojo/+fn5//m5ub/5eXl/+Tk
- 5P/j4+P/4uLi/+Dg4P/f39//3t7e/+Pj4//l5eX/5OTk/+Pj4//i4uL/4eHh/+Pj4//t7e338/Pzf+rq
- 6gjt7e0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD8/PxJ9PT0+ezs7P/r6+v/6urq/+jo
- 6P/n5+f/5ubm/+Xl5f/k5OT/4+Pj/+Li4v/h4OH/5eXl/+fn5//m5ub/5eXl/+Tk5P/l5eX/7u7u9/T0
- 9H7s7OwI7+/vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/Pz8AP39/Un19fX57u7u/+3t
- 7f/s7Oz/6+vr/+rq6v/p6en/5+fn/+bm5v/l5eX/5OTk/+Pj4//n5+f/6enp/+jo6P/n5+f/6Ojo//Dw
- 8Pb19fV87e3tB/Dw8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8/PwA/f39Sff3
- 9/nx8fH/8PDw/+/v7//t7u3/7Ozs/+vr6//q6ur/6enp/+jo6P/n5uf/5uXl/+np6f/q6ur/6enp/+rq
- 6v/x8fL29vb2e/Dw8Afy8vIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39
- /QD9/f1J+Pj4+fPz8//y8vL/8fHx//Dw8P/v7+//7u7u/+zt7P/r6+v/6urq/+np6f/o6Oj/6+vr/+zs
- 7P/t7e3/8/Pz9vf493ry8vIH9PT0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAA/f39AP39/Un6+vr59vb2//T09f/z8/P/8vLy//Hx8f/w8PD/7+/v/+7u7v/t7e3/6+vr/+rq
- 6v/t7e3/8PDw//T09PXz8/N49PT0Bvb29gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAD+/v4A/v7+Sfv7+/n4+Pj/9/f3//b29v/19fX/8/Pz//Ly8v/x8fH/8PDw/+/v
- 7//u7u7/7e3t//Dw8P/29vX18vLyd9jY2Abi4uIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPv7+wD6+vpH/Pz8+Pv7+//6+vr/+fn5//j4+P/39/f/9vb2//X1
- 9f/09fX/8/T0//Pz8//y8vL/9vb28/Ly8nTZ2dkF4+PjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7u7uAOrq6h74+Pic/v7+sv39/bH9/f2x/f39sfz8
- /LH8/Pyx/Pz8sfv7+7H7+/ux+/v7sfv7+7P09fRy3NzcB+Tk5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AA
- AA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AA
- AB/wAAA/8AAAf/AAAP/wAAH/8AAD//AAB//wAA//8AAf/ygAAAAwAAAAYAAAAAEAIAAAAAAAACQAAMIO
- AADCDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIeHhwD///8A5eXlNPLy8n729vaB9fX1gfX1
- 9YH19fWB9fX1gfX19YH19fWB9fX1gfX19YH09PSB9PT0gfT09IH09PSB9PT0gfT09IH09PSB8/PzgfPz
- 84Hz8/OB8/PzgfPz84Hz8/OB8/PzgfPz84Hz8/OB8/PzgfLy8oHy8vKB8vLygfPz84Hw8PB+5eXlNP//
- /wCHh4cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANra2gDa29sK7+/vtuXl
- 5f/a2tr/2dnZ/9jY2P/Y2Nj/2NjY/9fX1//X19f/19fX/9bW1v/W1tb/1dXV/9XV1f/V1dX/1NTU/9TU
- 1P/U1NT/09PT/9PT0//T0tP/0tLS/9LS0v/R0dH/0dHR/9DQ0P/Q0ND/0NDQ/8/Pz//Pz8//z8/O/8/P
- z//e3t7/7O3tttzc3ArZ2dkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPr6
- +gD///8Q7u7uzc3Nzf+5ubn/uLi4/7e3t/+3t7b/tra2/7W1tf+0tLT/tLS0/7Ozs/+ysrL/srKy/7Gx
- sf+wsLD/r6+v/66urv+urq7/ra2t/6ysrP+srKz/q6ur/6qqqv+qqqr/qamp/6ioqP+nqKf/p6en/6am
- pv+lpaX/pKSk/6SkpP+9vb3/6enpzf///xD5+fkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAPv7+wD///8Q7e3tzcrJyv+2trb/tbW1/7S0tf+0tLT/s7Oz/7Kysv+ysbH/sbGx/7Cw
- sP+vr6//rq6v/66urv+tra3/rKys/6urq/+rqqv/qqqq/6mpqf+oqKj/qKeo/6enp/+mpqb/paWl/6Wl
- pf+kpKT/o6Oj/6Kiov+hoqL/oaCh/6CgoP+4uLj/5+fnzf///xD6+voAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPv7+wD///8Q7u7uzcvLy/+4uLj/t7e3/7e3t/+2trb/tbW1/7S0
- tP+ztLT/s7Oz/7Kysv+xsbH/sLCx/7CwsP+vr6//rq6u/62urv+tra3/rKys/6urq/+qqqr/qqmq/6mp
- qf+oqKj/p6en/6enpv+mpqb/paWl/6SkpP+kpKT/o6Oj/6Kiov+6urr/5+fnzf///xD6+voAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPv7+wD///8Q7u7uzczMzP+6urr/ubm5/7i4
- uP+3uLf/t7e3/7a2tv+1tbX/tLS0/7S0tP+zs7P/srKy/7Gxsf+xsbH/sLCw/6+vr/+urq7/rq6u/62t
- rf+srKz/q6ur/6qqqv+qqqr/qamp/6ioqP+np6f/p6en/6ampv+lpaX/pKSk/6SkpP+7u7v/6Ojozf//
- /xD6+voAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD///8Q7u7uzc3N
- zf+7u7v/u7u7/7q6uv+5ubn/uLi4/7i4uP+3t7f/tra2/7W1tf+0tLT/tLS0/7Ozs/+ysrL/sbGx/7Gx
- sf+wsLD/r6+v/66urv+urq7/ra2t/6ysrP+rq6v/qqqq/6qqqv+pqan/qKio/6enp/+np6f/pqam/6Wl
- pf+8vLz/6Ojozf///xD6+voAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8
- /AD///8Q7+/vzc/Pz/+9vb3/vLy8/7u7u/+7u7v/urq6/7m5uf+4uLj/uLi4/7e3t/+2trb/tbW1/7S0
- tP+0tLT/s7Oz/7Kysv+xsbH/sbGx/7CwsP+vr6//rq6u/66urv+tra3/rKys/6urq/+qqqv/qqqq/6mp
- qf+oqKj/p6en/6enp/++vb7/6enpzf///xD6+voAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAPz8/AD///8Q7+/vzdDQ0P++vr7/vr69/729vf+8vLz/u7u7/7u7u/+6urr/ubm5/7m4
- uP+4uLj/t7e3/7a2tv+1tbX/tLS0/7OztP+zs7P/srKy/7Gxsf+xsbH/sLCw/6+vr/+urq7/rq6u/62t
- rf+srKz/q6ur/6qqqv+qqqr/qamp/6ioqP+/vr//6enpzf///xD6+voAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD///8Q8PDwzdHR0f/AwMD/wsLC/8XFxf/ExMT/wMDA/7y8
- vP+7u7v/u7u7/7q6uv+5ubn/ubm5/7y8vP++vr7/vr6+/729vf+8vL3/vLy8/7i4uP+zs7P/s7Oz/7e3
- t/+4uLj/tbS1/6+vr/+vr6//s7Oz/7W1tf+ysrL/rKys/6qqqv/AwMD/6urqzf///xD7+/sAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD///8Q8PDwzdLS0v/FxcX/1tXW/9/f
- 3//g4OD/1dTU/8LCwv+9vb3/vLy8/7y8u/+8vLz/x8fH/9zc3P/f39//3d3d/93d3f/d3d3/3d3d/9nZ
- 2f/CwsL/xMTF/9fX1//b29v/09PT/7y8vP/AwMD/1tbW/9nZ2f/U1NT/vr6+/62trf/BwcH/6urqzf//
- /xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD///8Q8PHwzdPT
- 0//Nzc3/2tra/2BgYP94eHj/5eXl/8nJyf++vr7/vr6+/729vf/DwsL/3t7e/6Ojo/9OTk7/RERE/0VF
- Rf9ERET/TU1N/6Wlpf/e3d3/3t7e/5GRkf9PT0//zMzM/9LT0//b29v/l5eX/0tLS/++vr7/zs7O/7Cw
- sP/CwsL/6urqzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8
- /AD///8Q8fHxzdTU1P/Q0ND/2NjY/yMjI/9FRUX/5+fn/8zMzP/AwMD/v8DA/76+vv/Jycn/29vb/zQ0
- NP8CAgL/ICAg/yMjI/8hISH/AwMD/z4+Pv/j5OP/6urq/2xsbP8LCwv/w8PD/+Xl5f/Y2Nj/Ly8v/y4u
- Lv/W1tb/xcXF/6+vr//Dw8P/6+vrzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAPz8/AD///8Q8fHxzdXV1f/R0tH/2NjY/yMjI/9FRUX/5+jn/83Nzf/CwsL/wcHB/8DA
- wP/MzMz/1tbW/yUlJf8hISH/z8/P/9/f3//T09P/Jycn/zc3N//l5eX/7e3t/2xsbP8LCwv/xsbG//j4
- +P+enp7/BgYG/4aGhv/d3d3/uLi4/7CwsP/ExMT/6+vrzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD///8Q8fLxzdfX1//T09P/2NjY/yMjI/9FRUX/6Ojo/87O
- zv/Dw8P/w8PD/8LCwv/Nzc3/1tbW/yUlJf8lJSX/2tra/+Li4v/h4eH/Kysr/zc3N//l5eX/7e3t/2xs
- bP8LCwv/y8vL//b29v9JSUn/KSkp/9PT0//Kysr/tLS0/7Kysv/Gxcb/6+vrzf///xD7+/sAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD///8Q8vLyzdjY2P/U1NT/2dnZ/yMj
- I/9FRUX/6enp/9HR0f/Gxsb/xsbG/8TExP/Ozs7/19fX/yUlJf8lJSX/1tbW/9vb2//e3t7/Kysr/zc3
- N//m5ub/7e3u/2xsbP8LCwv/z8/P/8PDw/8ODg7/fHx8/+Hh4f+8vL3/tLS0/7S0tP/Hx8f/7Ozszf//
- /xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD///8Q8vLyzdnZ
- 2f/W1db/2dnZ/yMjI/9GRkb/8/Pz/+fn5//h4eH/39/f/9XV1f/U1NT/19fX/yUlJf8lJSX/1tbW/9ra
- 2v/f39//U1NT/11dXf/m5ub/7O3s/2xsbP8LCwv/ycnJ/2NjY/8cHBz/ycnJ/9HR0f+4uLj/tra2/7W1
- tf/IyMj/7Ozszf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8
- /QD///8Q8/Pzzdra2v/X19f/2tra/yUlJf8pKSn/lpaW/5eXl/+VlZX/oqKi/9fX1//m5ub/2tra/yQk
- JP8lJSX/19fX/9TU1P/b29v/3d3d/93d3f/c3dz/5+fn/21sbf8ODg7/n5+f/x0dHf90dHT/4+Pj/8LC
- wv+4uLj/uLi4/7e3t//Jycn/7e3tzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAP39/QD///8Q8/Pzzdvc2//Y2Nj/2tra/ycnJ/8AAAD/AQEB/wEBAf8BAQH/AAAA/2Zm
- Zv/x8fH/3t7e/yQkJP8lJSX/2NjY/9DQ0P/IyMf/zMzL/8rKyv/Jycj/4uLi/21tbf8LCwv/SkpK/xgY
- GP/Dw8P/1tbW/7y8vP+6urr/ubm5/7m5uf/Kysr/7Ozszf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q9PT0zd3d3f/Z2dn/29vb/yQkJP8tLS3/oqKi/6Wl
- pf+NjY3/CwsL/zw8PP/s7Oz/4ODg/yQkJP8lJSX/2NjY/9DR0f/ExMT/xMTE/8PDw//FxcX/4uPj/25u
- bv8AAAD/AAAA/1hYWP/o6Oj/ycnJ/7y8vP+8vLz/u7u7/7m5uf/HyMj/7Ozszf///xD7+/sAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q9PT0zd7e3v/b29v/29vb/yMj
- I/9GRkb/7+/v/+np6f/Pz8//ExMT/zo6Ov/t7e3/4ODg/yQkJP8lJSX/2NjY/9LS0v/IyMj/ysrK/8nJ
- yf/Jycn/5OPj/25ubv8CAgL/FRUV/zs7O//e3t7/z8/P/76+vv+9vb3/u7u7/7a2tv/Hx8f/7Ozszf//
- /xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q9PT0zd/f
- 3//c3Nz/3Nzc/yMjI/9ERET/4+Pj/9XV1f/Gxsb/ExMT/zo6Ov/t7e3/4ODg/yQkJP8lJSX/2dnZ/9bW
- 1v/Z2dn/5+fn/+bm5v/a2tr/5+fn/21tbf8ODg7/enp6/w8PD/+YmJj/4eHh/8TExP+9vr7/uLm4/7a2
- tv/Jycj/7Ozszf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39
- /QD///8Q9fX1zeDg4P/d3d3/3Nzc/yMjI/9ERET/4+Pj/9TU1P/Gxsb/ExMT/zo6Ov/t7e3/4eHh/yQk
- JP8lJSX/2dnZ/97e3v/k5OT/jo6O/5SUlP/o6Oj/7u7u/21tbf8MDAz/ubm5/zY2Nv8/Pz//4uLi/87O
- zv+7u7v/ubm5/7i4uP/Kysr/7e3tzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAP39/QD///8Q9fX1zeHh4f/f39//3d3d/yMjI/9ERET/4+Pj/9TU1P/Gxsb/ExMT/zo6
- Ov/u7u7/4eHh/yQkJP8lJSX/2tra/+Li4v/g4OD/Kysr/zc3N//o6Oj/8fHx/21tbf8LCwv/zs7O/42N
- jf8KCgr/q6ur/93d3f+/vr//urq6/7q6uv/Ly8v/7e3tzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q9fX1zePj4v/g4OD/3d3d/yMjI/9FRUX/6Ojo/97e
- 3v/Kysr/ExMT/zo6Ov/u7u7/4eHh/yQkJP8lJSX/3t7e/+rq6v/k5OT/Kysr/zc3N//p6en/8vLy/21t
- bf8LCwv/zs7O/9vb2/8dHR3/SUlJ/+Dg4P/Kysr/vLy8/7u7u//MzMz/7u7uzf///xD7+/sAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q9vb2zeTk5P/h4uH/3t7e/yQk
- JP8/Pz//3d3d/93d3f/AwMD/ERER/zs7O//u7u7/4uLi/yUlJf8hISH/0NDQ/+Li4v/V1dX/Jycn/zg4
- OP/p6en/8vLy/21tbf8LCwv/ysrK//39/f9paWn/BwcH/6qqqv/c3Nz/wMDA/729vf/Ozs7/7u7uzf//
- /xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q9vb2zeXl
- 5f/j4+P/3t7e/ycnJ/8HBwf/IiIi/yMjI/8eHh7/AAAA/09PT//x8fH/6Ofn/zg4OP8CAgL/ICAg/yMj
- I/8hISH/AwMD/0BAQP/p6en/8fHx/21tbf8LCwv/x8fH//b29v+3t7f/CgoK/1JSUv/i4uL/ysrK/7+/
- v//Pz8//7u7uzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39
- /QD///8Q9vb3zebm5v/j4+P/5ubm/4WFhf9tbW3/bW1t/21tbf9tbW3/cXFx/8DAwP/t7e3/7e3t/7Ky
- sv9ubm7/bW1t/21tbf9tbW3/bW1t/7CwsP/p6en/6urq/6qqqv91dXX/19fX/+Tk5P/i4uL/ioqK/319
- ff/b29v/0NDQ/8HBwf/Q0ND/7+/vzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAP39/QD///8Q9/f3zefn5//g4OD/6enp//Py8//09PT/8/Pz//Pz8//z8/P/8fHy/+rq
- 6v/d3d3/3t7e/+rq6v/w8PD/8fHx//Hw8f/w8PD/7+/v/+jo6P/Z2dn/29vb/+np6f/s7Oz/4uLi/9LS
- 0v/X19f/5+jo/+np6f/d3d3/ysrK/8LCwv/S0tL/7+/vzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q9/f3zenp6f/g4OD/4eHh/+Li4v/h4eH/4eHh/+Dg
- 4P/f39//3t7e/9zc3P/a2tr/2dnZ/9ra2v/b29v/29vb/9ra2v/Z2dn/2NjY/9bW1v/T09P/0tLS/9HR
- 0f/Q0ND/zs7O/8rKyv/Kysr/zMzM/8zMzP/Jycn/xsbG/8XFxf/T09P/8PDwzf///xD7+/sAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q+Pj4zerq6v/i4uL/4eHh/+Dg
- 4P/f39//39/f/97e3v/d3d3/3dzc/9zc3P/b29v/29ra/9rZ2v/Z2dn/2NjY/9fX1//W1tb/1dXV/9XV
- 1f/U09P/0NDP/83Nzf/Nzc3/zMzM/8zLzP/Ky8r/ycnJ/8jIyP/IyMj/x8fH/8bGxv/U1NT/8PDwzf//
- /xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q+Pj4zevr
- 6//k5OT/4+Pj/+Li4v/h4eH/4OHh/+Dg4P/f39//3t7e/93d3f/d3d3/3Nzc/9vb2//b29v/2tra/9nZ
- 2f/Y2Nj/2NjY/9bW1v/S0tL/0NDQ/8/Pz//Ozs7/zc7O/83Nzf/MzMz/y8vL/8rKy//Kycn/yMjI/8jI
- yP/X19f/8vLyzf///xD8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39
- /QD///8Q+fn5zezs7P/l5eX/5eXl/+Tk5P/j4+P/4uLi/+Li4f/g4eH/4ODg/9/f3//e3t7/3t7e/93d
- 3f/c3Nz/29vb/9vb2//a2tr/2tra/9ra2v/Z2dn/2NjY/9jY2P/X19f/1tbW/9XV1f/V1dX/1NTU/9PT
- 0//T0tP/0tLS/9XV1f/n5+f/9PT0uPf39wr19fUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAP39/QD///8Q+fn5ze7t7f/n5+f/5ubm/+bl5f/l5eX/5OTk/+Pj4//i4+P/4uLi/+Hh
- 4f/g4OD/39/f/97e3//e3t7/3d3d/9zc3P/b29v/3Nzc/+Pj4//j4+P/4uLi/+Li4v/h4eH/4eHh/+Dg
- 4P/g4OD/39/f/97e3v/e3t7/4eHh/+zs7f/09PTO6+vrNP///wDBwcEAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD///8Q+fn5ze/v7//p6ej/6Ojo/+fn5//m5ub/5ubm/+Xl
- 5f/k5OT/4+Pj/+Pj4//i4uL/4eHh/+Dg4P/f39//39/f/97e3v/d3d3/3t7e/+Tk5P/k5OT/5OTk/+Pj
- 4//i4uL/4uLi/+Hh4f/h4eH/4ODg/+Dg4P/i4uL/7e3t//T09M7t7e0y////ALS0tAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD///8Q+vr6zfDw8P/q6ur/6enp/+np
- 6f/o6Oj/5+fn/+bm5v/m5ub/5eXl/+Tk5P/j4+P/4+Pj/+Li4v/h4eH/4ODg/9/f3//f39//39/f/+Xl
- 5f/l5eX/5eXl/+Tk5P/k5OT/4+Pj/+Li4v/i4uL/4eHh/+Tk5P/u7u7/9fX1zO7u7jH///8Azc3NAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD///8Q+vr6zfHx
- 8f/s7Oz/6+vr/+rq6v/p6en/6enp/+jo6P/n5+f/5ubm/+bm5v/l5eX/5OTk/+Pj4//j4+P/4uLi/+Hh
- 4f/g4OD/4eHh/+bm5v/m5+b/5ubm/+Xl5f/l5eX/5OTk/+Tk5P/j4+P/5ubm/+/v7//19fXL7u7uMf//
- /wDExMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+
- /gD///8Q+/v7zfLy8v/t7e3/7e3t/+zs7P/r6+v/6urq/+np6f/p6en/6Ojo/+fn5//m5ub/5ubm/+Xl
- 5f/k5OT/4+Pj/+Pj4//i4uL/4uLi/+jo6P/o6Oj/5+fn/+bm5//m5ub/5eXl/+Xl5f/n5+f/8PDw//b2
- 9srw8PAv////ALCwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAP7+/gD///8Q+/v7zfP08//v7+//7u7u/+3t7f/t7e3/7Ozs/+vr6//q6ur/6enp/+np
- 6f/o6Oj/5+fn/+bn5//m5ub/5eXl/+Tk5P/k4+T/5OTk/+np6f/p6en/6Ojo/+jo6P/n5+f/5+fn/+np
- 6f/x8fH/9/f3yfLx8S7///8Az8/PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD///8Q+/v7zfX19f/w8PH/8PDw/+/v7//u7u7/7u7u/+3t
- 7f/s7Oz/6+vr/+rq6v/q6ur/6enp/+jo6P/n5+f/5+fn/+bm5v/l5eX/5uXm/+rq6v/q6ur/6urp/+np
- 6f/o6Oj/6urq//Ly8v/39/fI8vLyLf///wDGxsYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD///8Q/Pz8zfb29v/y8vL/8fHx//Hw
- 8f/w8PD/7+/v/+7v7v/u7u7/7e3t/+zs7P/r7Oz/6uvr/+rq6v/p6en/6Ojo/+fo6P/n5+f/5+fn/+vr
- 6//r6+v/6+vr/+rq6v/s7Oz/8/Pz//j4+Mf09PQs/Pz8AN/f3wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD///8Q/Pz8zff3
- 9//09PT/8/Pz//Ly8v/y8fL/8fHx//Dw8P/v7+//7+7v/+7u7v/t7e3/7ezs/+zs7P/r6+v/6urq/+np
- 6f/o6Oj/6enp/+zt7f/t7e3/7Ozs/+7u7v/19fX/+fn5xvX19Sv///8A1NTTAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+
- /gD///8Q/Pz8zfj4+P/29vb/9fX1//T09P/z8/P/8vLy//Hy8v/x8fH/8PDw/+/v8P/v7+//7u7u/+3t
- 7f/s7ez/7Ozs/+vr6//q6ur/6urq/+7u7v/u7u7/8PDw//b29v/09PTF8vLyK/n5+QDKysoAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAP7+/gD///8Q/f39zfn5+f/39/f/9vb3//b29v/19fX/9PT0//Pz8//z8vL/8vLy//Hx
- 8f/w8PD/8PDw/+/v7//u7u7/7e3t/+3t7f/s7Oz/7Ozs/+/v7//x8fH/9/f3//Pz88Tj4uMp9PT0ALW1
- tQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v8Q/f39zfv6+v/5+fn/+Pj4//f39//29/f/9vb2//X1
- 9f/09PT/8/Pz//Py8//y8vL/8fHx//Dw8P/v8PD/7+/v/+7u7v/t7e3/7e3t//Ly8v/3+Pf/9PT0w+Li
- 4ij4+PgAlpaWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD9/f0Q/f39zfz8/P/6+vr/+vr6//n5
- +f/4+Pj/+Pj4//f39//29vb/9fX1//T19P/09PT/8/Pz//Ly8//y8vL/8fHx//Dw8P/v8PD/8fHx//j4
- +P/09PTC5OTjKPPz8wCvr68AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANvb2wDW1tYK9vb2tv39
- /f/9/f3//Pz8//z8/P/8/Pz/+/v7//v7+//7+/v/+vr6//r6+v/5+vr/+fn5//n5+f/4+Pj/+Pj4//j4
- +P/3+Pj/+fn5//T09MDk5OQm9PT0AK6urgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIeH
- hwD///8A5ubmNPf3937+/v6B/v7+gf7+/oH+/v6B/v7+gf7+/oH+/v6B/f39gf39/YH9/f2B/f39gf39
- /YH9/f2B/f39gf39/YH9/f2B+vr6fObm5ij9/f0AfX19AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+AAAAAH8AAPwA
- AAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/
- AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwA
- AAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/
- AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwA
- AAAAPwAA/AAAAAA/AAD8AAAAAH8AAPwAAAAA/wAA/AAAAAH/AAD8AAAAA/8AAPwAAAAH/wAA/AAAAA//
- AAD8AAAAH/8AAPwAAAA//wAA/AAAAH//AAD8AAAA//8AAPwAAAH//wAA/AAAA///AAD8AAAH//8AAPwA
- AA///wAA/gAAH///AAAoAAAAQAAAAIAAAAABACAAAAAAAABAAADCDgAAwg4AAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDw8MAvLy8Atvb2zL29vZT+/v7Uvr6+lL6+vpS+vr6Uvr6
- +lL6+vpS+vr6Uvr6+lL6+vpS+vr6Uvr6+lL6+vpS+vr6Uvr6+lL6+vpS+vr6Uvr6+lL6+vpS+fr5Uvn5
- +VL5+flS+fn5Uvn5+VL5+flS+fn5Uvn5+VL5+flS+fn5Uvn5+VL5+flS+fn5Uvn5+VL5+flS+fn5Uvn5
- +VL5+flS+Pn5Uvj5+VL5+flS+fn5UvX19VPc29wyvLy8AsPCwwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8/PzAOHh4UDx8fHf7u7u+erq
- 6vjp6en46enp+Onp6fjp6en46enp+Onp6Pjo6Oj46Ojo+Ojo6Pjo6Oj46Ojo+Ofo6Pjn5+f45+fn+Ofn
- 5/jn5+f45+fn+Ofn5/jm5ub45ubm+Obm5vjm5ub45ubm+Obm5vjl5eX45eXl+OXl5fjl5eX45eXl+OTl
- 5fjk5OT45OTk+OTk5Pjk5OT45OTk+OPk4/jj4+P44+Pj+OTk5Pjp6ur57/Dw3+Hh4UHy8vIAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPn5
- +QDx8fF97Ozs/9XV1f/Jycn/yMjI/8fHx//Hx8f/xsfG/8bGxv/Gxsb/xcXF/8XFxf/FxMX/xMTE/8TE
- xP/Dw8P/w8PD/8LCwv/CwsL/wsLC/8HBwf/BwcH/wMDA/8DAwP+/v7//v7+//7+/v/++vr7/vr6+/76+
- vv+9vb3/vb29/7y8vP+8vLz/u7u7/7u7u/+6urr/urq6/7q6uv+5ubn/ubm5/7i4uP+5ubn/yMjI/+bm
- 5v/w8PB99vb2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAADz8vMA+Pj4f+Xk5P/ExMT/tra2/7a1tf+1tbX/tbW0/7S0tP+zs7P/s7Oz/7Ky
- sv+ysrL/sbGx/7Gwsf+wsLD/r6+v/6+vr/+urq//rq6u/62trf+sraz/rKys/6urq/+rq6v/qqqq/6qq
- qv+pqan/qamp/6ioqP+oqKj/p6en/6anpv+mpqb/paWl/6Wlpf+kpaT/o6Sk/6Ojo/+ioqL/oqKi/6Gh
- of+hoaH/oKGh/7Kysv/c3Nz/9vb2f+7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8vLyAPj4+H/k5OT/w8PD/7a2tv+2trb/tbW1/7S0
- tP+0tLT/s7Oz/7Ozs/+ysrL/srGx/7Gxsf+xsbH/sLCw/6+vr/+vr6//rq6u/66urv+tra3/ra2t/6ys
- rP+rq6v/q6qr/6qqqv+qqqr/qamp/6ipqP+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+kpaT/pKSk/6Oj
- o/+jo6P/oqKi/6Kiov+hoaH/oKCg/6CgoP+wsLD/2tra//X19X/t7e0AAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPLy8gD4+Ph/5OTk/8TE
- xf+4uLj/t7e3/7a2tv+2trb/tbW1/7W0tf+0tLT/tLSz/7Ozs/+ysrP/srKy/7Gxsf+xsbH/sLCw/7Cw
- sP+vr6//rq6u/66urv+tra7/ra2t/6ysrP+rq6v/q6ur/6qqqv+qqqr/qamp/6mpqf+oqKj/p6eo/6en
- p/+np6b/pqam/6Wlpf+kpaT/pKSk/6SkpP+jo6P/oqKj/6Kiov+hoaH/sbGx/9vb2//19fV/7e3tAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AADz8vMA+Pj4f+Tk5f/FxcX/ubm5/7i4uP+4uLj/t7e3/7e3t/+2trb/tbW1/7S0tf+0tLT/tLS0/7Oz
- s/+zsrL/srKy/7Gxsf+xsbH/sLCw/6+wr/+vr6//r66u/66urv+urq3/ra2t/6ysrP+sq6v/q6ur/6qq
- qv+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+jo6P/o6Oj/7Ky
- sv/b29v/9fX1f+7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAA8/LzAPj4+H/l5eX/xsbG/7q6uv+5ubn/ubm5/7i4uP+4uLj/t7e3/7e3
- t/+2trb/tbW1/7S1tf+0tLT/tLS0/7Ozs/+ysrL/srKy/7Gxsf+xsbH/sLCw/7CwsP+vr6//rq+u/66u
- rv+urq7/ra2t/6ysrP+srKv/q6ur/6qqqv+qqqr/qamp/6mpqf+oqKj/qKeo/6enp/+np6f/pqam/6Wl
- pf+lpaX/pKSk/6SkpP+ztLP/3Nzc//X19X/u7u4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPz8wD4+Ph/5eXl/8fHx/+7u7v/u7u7/7q6
- uv+6ubn/ubm5/7i4uP+4uLj/uLe3/7e3t/+2trb/tbW1/7W1tf+0tLT/tLS0/7Ozs/+zsrP/srKy/7Gx
- sf+xsbH/sLGx/7CwsP+vr6//rq+u/66urv+urq7/ra2t/6ysrP+srKz/q6ur/6qqqv+qqqr/qqqq/6mp
- qf+oqKj/qKeo/6enp/+np6f/pqam/6alpv+lpaX/tLS0/9zc3P/19fV/7u7uAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADz8/MA+Pj4f+bm
- 5v/JyMj/vLy8/7y8vP+7u7v/u7u7/7q6uv+5urr/ubm5/7i4uP+4uLj/t7i3/7e3t/+2trb/tbW1/7W1
- tf+0tLT/tLS0/7Ozs/+zs7P/srKy/7Gxsf+xsbH/sLCx/7CwsP+vr6//r6+v/66urv+urq7/ra2t/62t
- rP+srKz/q6ur/6qqqv+qqqr/qqqq/6mpqf+oqKj/qKio/6enp/+np6f/pqam/7W1tf/d3d3/9vb2f+/v
- 7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAA8/PzAPn5+X/m5ub/ycnJ/76+vv+9vb3/vLy8/7y8vP+7u7v/u7u7/7q6uv+6urr/ubm5/7i4
- uP+4uLj/uLi4/7e3t/+2trb/tbW2/7W1tf+0tLT/tLS0/7Ozs/+zs7P/srKy/7Gxsf+xsbH/sbGx/7Cw
- sP+vr6//r6+v/66urv+urq7/ra2t/62srP+srKz/q6ur/6qqq/+qqqr/qqqq/6mpqf+oqKj/qKio/6en
- p/+2trb/3d3d//b29n/v7+8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPz8wD5+fl/5+fn/8rKyv+/vr7/vr6+/76+vv+9vb3/vLy8/7y8
- vP+7u7v/u7u7/7q6uv+6urr/ubm5/7m4uP+4uLj/uLi4/7e3t/+2trb/tbW1/7W1tf+0tLT/tLS0/7Oz
- s/+zsrP/srKy/7Gxsf+xsbH/sbGx/7CwsP+vr6//rq6u/66urv+urq7/ra2t/62trf+srKz/q6ur/6qq
- qv+qqqr/qqqq/6mpqf+pqan/t7e3/97e3v/29vZ/7+/vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADz8/MA+fn5f+fn5//Ly8v/wMDA/8C/
- v//AwMD/wcHB/8HBwf+/v7//vb29/7y8vP+7u7v/u7u7/7u6uv+6urr/ubm5/7m4uf+4uLj/urq6/7q6
- uv+5urn/ubm5/7i4uP+4uLj/uLe4/7e3t/+0tbT/srKy/7Kysv+ysrL/tLS0/7S0tP+zsrL/sLCw/66u
- rv+urq7/r6+v/7CwsP+wsLD/rq6u/6ysrP+qqqr/qqqq/7i4uP/e3t7/9vb2f/Dw8AAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9PT0APn5
- +X/o6Oj/zMzM/8LCwv/Hx8f/0tLS/9nY2P/Y2Nj/0NDQ/8XFxf++vr7/vb29/7y8vP+7u7v/u7u7/7q7
- uv+7vLv/w8PD/83Nzf/T09P/1NTU/9TU1P/U1NT/09PT/9PT0//Q0ND/x8bH/7q6uv+2trb/wcHB/83N
- zf/Q0ND/zMzM/7+/v/+zs7P/tLW0/8LBwv/MzMz/zs7O/8nJyf+8vLz/r6+v/6urq/+5ubn/39/f//f3
- 93/w8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAPT09AD5+fl/6Ojo/83Nzf/FxcX/1tbW/+Hh4f/V1dX/2NjY/+Xl5f/U1NT/wsLB/76+
- vv+9vb3/vb29/7y8vP+8vLz/xsbG/9vb2//p6en/2tra/9TU1P/U1NT/1NTU/9TU1P/U09P/3t7e/+Xl
- 5f/Pz8//xsbG/9jZ2f/X19f/0tLS/93d3f/Y2Nj/wMDA/8bGxv/e3t7/2NjY/9HR0f/b29v/1dXV/7m5
- uf+tra3/urq6/9/f3//39/d/8PDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD09PQA+fn5f+np6f/Ozs7/ycnJ/+Li4v+3t7f/ISEh/zc3
- N//b29v/39/f/8XFxf+/v7//vr6+/76+vv+9vb3/wMDA/9XU1f/l5eX/dnZ2/ycnJ/8dHR3/Hh4e/x4e
- Hv8eHh7/HR0d/zY2Nv+rq6v/5eXl/9nZ2f/l5eX/XFxc/xcXF/+Kior/6urq/87Ozv/a2tr/z8/P/zc3
- N/8gICD/qKio/+Hh4f+8vLz/rq6u/7u7u//f39//9/f3f/Dw8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9fX1APn5+X/p6en/z8/P/8vL
- yv/l5uX/sLCw/wMDA/8dHR3/2dnZ/+Li4v/Hx8f/wMDA/8DAwP+/v7//vr6+/8TExP/f39//w8PD/xIS
- Ev8AAAD/AgIC/wMDA/8DAwP/AwMD/wEBAf8AAAD/S0tL/+rq6v/j4+P/6enp/0dHR/8AAAD/fHx8/+/v
- 7//b29v/6urr/4WFhf8AAAD/Li4u/9vb2//X19f/uLe3/6+ur/+8vLz/4ODg//f393/w8PAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPX1
- 9QD5+fl/6enp/9DQ0P/MzMz/5ubm/7CwsP8DAwP/HR0d/9nZ2f/i4uL/yMjI/8HCwv/BwcH/wMHB/7+/
- wP/FxcX/4+Pj/6+vsP8FBQX/AwMD/4KCgv+2trb/sbGx/7e3t/9XV1f/AAAA/0VFRf/s7Oz/5+fn/+rq
- 6v9HR0f/AAAA/3x8fP/19fX/6+vr/93d3f81NTX/AAAA/3t7e//p6en/x8fH/7Ozs/+wsLD/vb29/+Dg
- 4f/39/d/8PDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAD19fUA+fn5f+rq6v/R0dH/zc3N/+fn5/+wsLD/AwMD/x0dHf/Z2dn/4+Pj/8nJ
- yf/CwsP/wsLC/8LCwv/BwcH/x8fH/+Pj4/+wsLD/BQUF/wUFBf+1tbX/9/f3/+7u7v/8/Pz/enp6/wAA
- AP9FRUX/7e3t/+fn5//q6ur/R0dH/wAAAP98fHz//Pz8//r6+v+lpaX/AwMD/yMjI//Q0ND/29vb/7y8
- vP+xsbH/sbGx/76+vv/h4eH/9/f3f/Hx8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9fX1APr6+n/q6ur/0tLS/87Ozv/n5+f/sLCw/wMD
- A/8dHR3/2dnZ/+Tk5P/Kysr/xMTE/8PDw//Dw8P/wsLC/8jIyP/k5OT/sLCw/wUFBf8FBQX/sLCw/+fn
- 5//b29v/8fHx/3h4eP8AAAD/RUVF/+3t7f/o6Oj/6urq/0dHR/8AAAD/fX19///////z8/P/S0tL/wAA
- AP98fHz/6urq/8rKyv+2trb/s7Oy/7Kysv+/v7//4eHh//f393/x8fEAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPX19QD6+vp/6+vr/9PT
- 0//Pz8//6Ojo/7Gxsf8DAwP/HR0d/9nZ2f/k5OT/y8vL/8XFxf/FxcX/xMTE/8PDw//Iycj/5OTk/7Cw
- sP8FBQX/BQUF/6+vr//k5OT/1tfX//Dw8P94eHj/AAAA/0VFRf/t7e3/6Ojo/+rq6v9HR0f/AAAA/319
- ff//////xMTE/w8PD/8ZGRn/zc3N/97e3v+/v7//tLS0/7S0tP+0s7T/wMDA/+Li4v/39/d/8fHxAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAD29vYA+vr6f+zr7P/U1NT/0NDQ/+jo6f+xsbH/AwMD/x0dHf/a2tr/6urq/9XV1f/Q0ND/0NDQ/87O
- zv/Jycn/y8vL/+Xl5f+wsLD/BQUF/wUFBf+wsLD/5eXl/9fX1//w7/D/eHh4/wAAAP9FRUX/7e3t/+jo
- 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
- fP/39/f/7u7u/+Pj4/83Nzf/AAAA/1xcXP/r6+v/1dXV/8LCwv+/v7//ysrK/+bm5v/4+Ph/8/PzAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAD5+fkA+/v7f/Ly8v/j4+P/4ODg/+/v7//Gxsb/S0tL/0dHR/9HR0f/R0dH/0dHR/9HR0f/RkZG/1hY
- WP/Nzc3/8PDw/+vr6//v7+//jIyM/0ZGRv9HR0f/R0dH/0dHR/9HR0f/R0dH/0xMTP+2trb/7u7u/+bl
- 5f/t7e3/e3t7/0JCQv+fn5//8PDw/+Li4v/t7e3/pKSk/0VFRf9bW1v/2NjY/93d3f/Gxsb/wcHB/8vL
- y//m5ub/+Pj4f/Pz8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAA+fn5APv7+3/z8/P/5OTk/+Dg4P/o6Oj/8vLy//Pz8//z8/P/8/Pz//Pz
- 8//z8/P/8/Pz//Ly8v/y8vL/7+/v/+Li4v/e3t7/6Ojo//Lx8v/x8fH/8vLy//Ly8v/y8fL/8fHx//Hx
- 8f/w8PD/7u7u/+Dg4P/b29v/5+fn/+/v7//w8PD/7u7u/+Pj4//V1dX/3Nzd/+zs7P/u7u7/7e3t/+jo
- 6P/W1tb/xcXF/8LBwv/MzMz/5+fn//j4+H/z8/MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPn5+QD7+/t/8/Pz/+Xl5f/f39//4uLi/+fn
- 5//q6ur/6urq/+rq6v/p6en/6enp/+np6f/o6Oj/5uXm/+Dg4P/a2tr/2dnZ/9zc3P/h4eH/5eXl/+bm
- 5v/l5eX/5eXl/+Tk5f/k5OT/4uLi/9zc3P/V1dX/09PT/9nZ2f/e3t7/3t7e/9vc2//T09P/y8vL/87O
- zv/X19f/29vb/9vb2//V1dX/y8vL/8TExP/Dw8P/zc3N/+fn5//4+Ph/8/PzAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5+fkA+/v7f/T0
- 8//m5ub/4eHh/+Dg4P/g4OD/4ODg/+Dg4P/f39//39/f/97e3v/d3t3/3d3d/9zc3P/b29v/2tra/9nZ
- 2f/Z2dn/2dnZ/9nZ2f/Z2dn/2NjY/9fY1//X19f/1tbW/9bW1v/U1NT/09PT/9LS0v/Q0ND/z87O/87O
- zv/Nzc3/y8vL/8rKyf/Jycn/ysrK/8rKyv/Jycn/yMjI/8bGxv/FxcX/xcXF/87Ozv/o6Oj/+Pn4f/T0
- 9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAA+vr6APz8/H/09PT/5+fn/+Li4v/h4uH/4eHh/+Dg4P/f39//39/f/97e3v/e3t7/3d3d/93c
- 3P/c3Nz/3Nzc/9vb2//b29v/2tra/9nZ2f/Z2dn/2NjY/9jY2P/X19f/1tbW/9bW1f/V1dX/1dXV/9TU
- 1P/R0dH/zs7O/83Nzf/Nzc3/zMzM/8zMzP/Ly8v/ysrK/8nKyf/Jycn/yMjI/8fHyP/Hx8f/x8fH/8bG
- xv/Pz9D/6Ojp//n5+X/09PQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPr6+gD8/Px/9fX1/+jo6P/j4+P/4+Pj/+Li4v/i4uL/4eHh/+Dg
- 4P/f4OD/39/f/9/f3//e3t7/3d3d/93d3f/c3Nz/3Nzc/9vb2//b29v/2tra/9nZ2f/Z2dn/2NnY/9jY
- 2P/X19f/1tbX/9bW1v/T09P/0NDQ/9DQz//Pz8//zs7O/83Nzf/Nzc3/zc3N/8zMzP/Ly8v/ysrL/8rK
- yv/Jycn/yMjI/8jIyP/Hx8f/0NDR/+np6f/5+fl/9PT0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7+/sA/Pz8f/X19f/p6en/5OTk/+Tk
- 5P/j4+P/4+Pj/+Li4v/i4uL/4eHh/+Dg4P/f4OD/39/f/9/f3//e3t7/3t3e/93d3f/c3Nz/3Nzc/9vb
- 2//b29v/2tra/9na2f/Z2dn/2dnZ/9jY2P/V1dX/0tLS/9LS0v/R0dH/0NDQ/8/Pz//Pz8//zs7O/83N
- zf/Nzc3/zM3M/8zMzP/Ly8v/y8rL/8rKyv/Jycn/ycnJ/9XV1f/t7e3/+vr6f/f39wAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+/v7APz8
- /H/19fX/6urq/+bm5v/l5eX/5eXk/+Tk5P/j4+P/4+Pj/+Li4v/i4uL/4eHh/+Dg4P/g4OD/39/f/9/f
- 3//e3t7/3d7e/93d3f/c3Nz/3Nzc/9vb2//b29v/2tra/9nZ2f/b29v/29zc/9vb2//b29r/2tra/9rZ
- 2f/Z2dn/2NnY/9jY2P/X19f/19fX/9bW1v/W1tb/1dXV/9XV1f/U1NT/1NTU/9nZ2f/n5+f/9PT0+PT0
- 9GL29vYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAPv7+wD8/Px/9vb2/+vr6//n5+f/5ubm/+bm5v/l5eX/5eXl/+Tk5P/j4+P/4+Pj/+Li
- 4//i4uL/4eHh/+Dg4P/g4OD/39/f/9/f3//e3t7/3t3e/93d3f/c3Nz/3Nzc/9vc2//b29v/397e/+Tk
- 4//j4+P/4+Li/+Li4v/i4uL/4eHh/+Hh4f/h4eH/4ODg/+Dg4P/f39//39/f/97e3v/e3t7/3t7e/+Li
- 4v/t7e3/9fX19+/v74PNzc0J3d3dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7+/sA/Pz8f/b29v/s7Oz/6Ojo/+fn5//n5+f/5ubm/+bm
- 5v/l5eX/5eXl/+Tk5P/j4+P/4+Pj/+Lj4//i4uL/4eHh/+Dg4P/g4OD/39/f/9/f3//e3t7/3t7e/93d
- 3f/c3N3/3Nzc/9/f3//k5OT/5OTk/+Tj4//j4+P/4uLi/+Li4v/h4eL/4eHh/+Hh4f/h4OD/4ODg/+Dg
- 4P/f39//39/f/+Pj4//t7e3/9fX19/Dw8IDOzs4J3t7eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+/v7AP39/X/39/f/7e3t/+np
- 6f/p6en/6Ojo/+fn5//n5+f/5ubm/+bm5v/l5eX/5eXl/+Tk5P/j4+P/4+Pj/+Lj4//i4uL/4eHh/+Hh
- 4f/g4OD/39/f/9/f3//e3t//3t7e/93d3f/g4OD/5eXl/+Xl5f/k5OT/5OTk/+Pj5P/j4+P/4uLi/+Li
- 4v/i4uH/4eHh/+Hh4f/g4OD/4ODg/+Tk5P/u7u7/9vb29/Hx8YDS0tII39/fAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPv7
- +wD9/f1/9/f3/+7u7v/q6ur/6urp/+np6f/p6en/6Ojo/+jn6P/n5+f/5ubm/+bm5v/l5eX/5eXl/+Tk
- 5P/k4+P/4+Pj/+Pj4//i4uL/4eHh/+Hh4f/g4OD/39/f/9/f3//e3t7/4eHh/+bm5v/l5uX/5eXl/+Xl
- 5f/k5OT/5OTk/+Tk5P/j4+P/4uLi/+Li4v/i4uL/4uLi/+bm5v/u7u7/9vb29vLy8n7T09MI4ODgAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAD8/PwA/f39f/j4+P/v7+//7Ozs/+vr6//q6ur/6urq/+np6f/p6en/6Ojo/+jo
- 6P/n5+f/5+bn/+bm5v/l5uX/5eXl/+Tk5P/j5OT/4+Pj/+Pj4//i4uL/4eHi/+Hh4f/g4OD/39/f/+Li
- 4v/n5+f/5ubm/+bm5v/m5eb/5eXl/+Xl5f/k5OT/5OTk/+Tk5P/j4+P/4+Pj/+fn5//v7+//9vb29vLy
- 8n3X19cI4ODgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/Pz8AP39/X/4+Pj/8PDw/+3t7f/t7e3/7Ozs/+vr
- 6//q6+r/6urq/+np6f/p6en/6Ojo/+jo6P/n5+f/5ufm/+bm5v/m5ub/5eXl/+Tk5P/k5OT/4+Pj/+Pj
- 4//i4uL/4uHi/+Hg4f/j4+P/6Ojo/+fn5//n5+f/5ubm/+bm5v/m5ub/5eXl/+Xl5f/k5OT/5OTk/+jo
- 6P/w8PD/9/f39vPz83vY2NgH4uLiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD9/f1/+fn5//Hx
- 8f/u7u7/7e3t/+3t7f/t7e3/7Ozs/+vr6//r6+v/6urq/+np6f/p6en/6Ojo/+jo6P/n5+f/5ubn/+bm
- 5v/m5ub/5eXl/+Tk5P/k5OT/4+Pj/+Pj4//i4uL/5eXl/+np6f/o6Oj/6Ojo/+jo6P/n5+f/5ubm/+bm
- 5v/m5ub/5ubm/+np6f/w8fD/9/f39fPz83rZ2dkH4uLiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAD8/PwA/f39f/n5+f/y8vL/7+/v/+/v7//u7u7/7e3u/+3t7f/t7e3/7Ozs/+vr6//r6+v/6urq/+np
- 6f/p6en/6eno/+jo6P/n5+f/5ufn/+bm5v/m5ub/5eXl/+Xl5P/k5OT/4+Pj/+bm5v/p6un/6enp/+np
- 6f/o6Oj/6Ojo/+jn6P/n5+f/5+fn/+rq6v/x8fH/+Pj49fX19Xjc3NwG5eXlAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAA/Pz8AP39/X/5+fn/8/Pz//Dw8P/w8PD/8O/w/+/v7//u7u7/7u7u/+3t
- 7f/t7e3/7Ozs/+vr6//r6+v/6urq/+np6f/p6en/6ejp/+jo6P/n5+f/5+fn/+bm5v/m5ub/5eXl/+Tk
- 5P/n5+f/6urq/+rq6v/q6ur/6enp/+np6f/o6Oj/6Ojo/+vr6//y8vL/+Pj49PX19Xfd3d0G5eXlAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD9/f1/+vr6//T09P/y8vL/8fHx//Dw
- 8P/w8PD/8O/w/+/v7//u7u7/7u7u/+3t7f/t7e3/7Ozs/+zs6//r6+v/6urq/+np6f/p6en/6enp/+jo
- 6P/n5+f/5+fn/+bm5v/m5ub/6Ojo/+vs6//r6+v/6urq/+rq6v/q6er/6enp/+zs7P/z8vP/+Pj49Pb2
- 9nXf398G6OjnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/f39f/v6
- +//19fX/8/Pz//Lz8v/y8vL/8fHx//Hw8P/w8PD/8PDw/+/v7//u7u7/7u7u/+3t7f/t7e3/7Ozs/+zs
- 7P/r6+v/6urq/+np6v/p6en/6enp/+jo6P/o5+f/5+fn/+np6f/s7Oz/7Ozs/+zs7P/r6+v/6+vr/+3t
- 7v/z8/P/+fn59Pb29nXf398G6OjoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAA/f39AP39/X/7+/v/9vb2//T09P/z8/P/8/Pz//Pz8//y8vL/8fHx//Hw8f/w8PD/8PDw/+/v
- 7//v7u//7u7u/+3t7f/t7e3/7ezs/+zs7P/r6+v/6urq/+rq6v/p6en/6enp/+jo6P/q6ur/7e3t/+3t
- 7f/s7Oz/7Ozt/+/v7//19fX/+fn58/j4+HPk5OQF7OzsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD9/f1/+/v7//f39//29vX/9fX1//T09P/z8/P/8/Pz//Pz
- 8v/y8vL/8fHx//Hx8f/w8PD/8PDw/+/v7//u7+//7u7u/+3t7f/t7e3/7O3s/+zs7P/r6+v/6urq/+rq
- 6v/p6en/6+vr/+7u7v/u7e7/7u7u//Hx8f/29vb/9/f38vLy8nLr6+sF7OzsAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/v7+f/z8/P/4+Pj/9/f3//b2
- 9v/19vb/9fX1//T09P/z8/P/8/Pz//Pz8//y8vL/8fHx//Hx8f/w8PD/8PDw/+/v7//v7+//7u7u/+7t
- 7f/t7e3/7O3s/+zs7P/r6+v/6urq/+zs7P/v7+//7+/v//Ly8v/39/f/9/f38ujo6G+0tLQFy8vLAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+
- /n/8/Pz/+fn5//j4+P/39/f/9/f3//b29v/19vb/9fX1//T09P/09PT/8/Pz//Pz8//y8vL/8fHy//Hx
- 8f/w8PD/8PDw/+/v7//v7+//7u7u/+3t7f/t7e3/7e3t/+zs7P/t7e3/8PDw//Pz8//4+Pj/9/f38ujo
- 6G+0tLQFy8vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAP3+/QD+/v5//f39//r6+v/5+fn/+Pn5//j4+P/39/f/9/f3//b29v/29vb/9fX1//T0
- 9P/09PT/8/Pz//Pz8//y8vL/8vHy//Hx8f/w8PD/8PDw/+/v7//v7+//7u7u/+7t7v/t7e3/7+/v//T0
- 9P/4+Pj/9/f38ejo6G2wsLAEy8vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+f/39/f/7+/v/+vr6//r6+v/5+fn/+Pn4//j4
- +P/39/f/9/f3//f29//29vb/9fX1//T09f/09PT/8/Pz//Pz8//y8vP/8vLy//Hx8f/x8fD/8PDw/+/w
- 8P/v7+//7+/v//Py8v/5+fn/+Pj48ejo6GyxsbEEy8vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////APX19X39/f3//f39//z8
- /P/8+/z/+/v7//v7+//6+vr/+vr6//r6+v/5+fn/+fn5//j4+P/4+Pj/9/f3//f39//29/f/9vb2//b2
- 9v/19vX/9fX1//T09P/09PT/9PT0//T09f/4+Pj/+Pj48enp6WusrKwEy8vLAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT0
- 9ADi4uJB9/f33/39/fn+/v74/v79+P39/fj9/f34/f39+P39/fj9/f34/f39+P39/fj8/Pz4/Pz8+Pz8
- /Pj8/Pz4/Pz8+Pz8/Pj8/Pz4+/v7+Pv7+/j7+/v4+/v7+Pv7+/j7+/v5+Pj46+np6Wmtra0Ey8vLAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAADBwcEAubm5Atzc3DL4+PhT/v7+Uv7+/lL+/v5S/v7+Uv7+/lL+/v5S/v7+Uv7+
- /lL+/v5S/v7+Uv7+/lL+/v5S/v7+Uv7+/lL+/v5S/v7+Uv7+/lL+/v5S/v7+Uv7+/lL+/v5S/v7+U/Dw
- 8EDBwcEGysrKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+A
- AAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAA
- Af//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+A
- AAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAA
- Af//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+A
- AAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAA
- Af//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+A
- AAAAAAP//4AAAAAAB///gAAAAAAP//+AAAAAAB///4AAAAAAP///gAAAAAB///+AAAAAAP///4AAAAAB
- ////gAAAAAP///+AAAAAB////4AAAAAP////gAAAAB////+AAAAAP////4AAAAB/////gAAAAP////+A
- AAAB/////4AAAAP/////gAAAB/////+AAAAP////KAAAAIAAAAAAAQAAAQAgAAAAAAAAAAEAwg4AAMIO
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3d3AAAA
- AADCwsIfx8fHa/X19X/8/Px/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7
- +3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7
- +3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+vr6f/r6+n/6+vp/+vr6f/r6
- +n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6
- +n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6
- +n/6+vp/+fr6f/r6+n/5+vp/+fr6f/n6+n/6+vl/+vr6f/n6+n/7+/t/9fX1f8fGxmvCwsIfAAAAAHp6
- egAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJiYgDa2toAzMzMMe/v78Xz8/P99vb2//T09P/z8/P/8vLy//Ly
- 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vHy//Lx
- 8f/y8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx
- 8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8PHw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw
- 8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw/+/w
- 8P/v8O//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v
- 7//v7+//7+/v//Hx8f/09PT/8vLz/e/v78bMzMwx29raAGFhYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoaGhAHd3
- dwrh4eGp+vr6//Pz8//s7Oz/5ubm/+Pj4//i4uL/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Hh
- 4f/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/g4eH/4eDh/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/9/f
- 4P/f39//39/f/9/f3//f39//39/f/9/f3//e397/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e
- 3v/e3t7/3t3d/97d3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3dzc/9zc3P/c3Nz/3Nzc/9zc
- 3P/c3Nz/3Nzc/9zc3P/c3Nz/29zb/9vc3P/b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb
- 2v/a2tr/2tra/9ra2v/a2tr/2tra/9ra2v/a2tr/2tra/9ra2v/b29v/39/f/+bm5v/w8PD/+fn5/+Hh
- 4al4eHgKoaGhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADU1NQAzs7OG+rq6uH19fX/6urq/9/f4P/X19f/0dLR/9DQ
- 0P/P0M//z8/P/8/Pz//Pz8//z8/P/87Pzv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/83Ozf/Nzc3/zc3N/83N
- zf/Nzc3/zc3N/83NzP/MzMz/zMzM/8zMzP/LzMz/y8vL/8vLy//Ly8v/y8vK/8vKyv/Kysr/ysrK/8rK
- yv/Kysr/ysrK/8rKyv/Kysr/ysrK/8nJyv/Jycn/ycnJ/8nJyf/Jycn/yMnJ/8jIyP/IyMj/yMjI/8jI
- x//Ix8j/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/xsfH/8bGxv/Gxsb/xsbG/8bGxv/FxcX/xcXF/8XF
- xf/ExcT/xMTE/8TExP/ExMT/xMTE/8TExP/ExMT/xMPD/8PDw//Dw8P/w8PD/8PDwv/DwsL/wsLC/8LC
- wv/CwsL/wsLC/8TExP/Ly8v/1tbW/+Pk4//y8vL/6erq4c7OzhvU1NQAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+
- /gD///8c+vr64/Dw8P/i4uL/1NXV/8jIyP/BwcH/wMDA/8DAwP/AwL//v7+//7+/v/+/vr7/vr6+/76+
- vv++vr7/vr6+/76+vv+9vb3/vb29/729vf+8vLz/vLy8/7y8vP+8vLz/u7y8/7u7u/+7u7v/u7u7/7u7
- uv+7u7r/urq6/7q6uv+6urn/ubm5/7m5uf+5ubn/uLm5/7i4uf+4uLj/uLi4/7i4uP+3uLj/t7e3/7e3
- t/+3t7b/t7a2/7a2tv+2trb/tbW2/7W1tv+1tbX/tbW1/7W1tf+1tbX/tbW1/7W0tP+0tLT/tLS0/7O0
- s/+zs7T/s7Oz/7Ozs/+zsrP/s7Ky/7Kysv+ysrL/srKx/7Gysf+xsbH/sLCx/7CwsP+wsLD/sLCw/6+v
- r/+vr6//r6+v/6+vr/+vr6//r6+v/6+vrv+urq7/rq6u/66urf+trq3/rq6u/7e3t//Hx8f/2dnZ/+vr
- 6//5+fnj////HP39/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/Pz8AP39/Rz5+fnj7e3t/93d3f/MzMz/vr6+/7e3
- t/+2trb/tra2/7a2tv+2tbX/tbW1/7W1tf+0tbT/tLS0/7S0tP+0tLT/s7Oz/7Ozs/+zs7P/s7Kz/7Ky
- sv+ysrL/srKy/7Kysf+xsbH/sbCx/7CwsP+wsLD/sLCw/7CwsP+wsK//r7Cw/6+vr/+vr6//rq6v/66u
- rv+urq7/rq2u/62trf+tra3/ra2s/6ysrP+srKz/rKys/6usq/+rq6v/q6ur/6uqqv+qqqr/qqqq/6mq
- qv+pqar/qamp/6mpqf+pqan/qamp/6mpqf+oqKj/qKio/6inqP+np6f/p6en/6anpv+mpqb/pqam/6am
- pv+mpqb/pqam/6alpf+lpaX/pKWk/6SkpP+kpKT/o6Oj/6Ojo/+jo6P/o6Kj/6Kiov+ioqL/oqKi/6Ki
- ov+hoaH/oaGh/6Ghof+hoaH/qamp/7y8vP/S0tL/5+fn//b29uP8/fwc+/v7AAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAD8/PwA/f39HPn5+ePs7Oz/29ra/8nJyf+7u7v/tba1/7W1tf+1tbX/tLS0/7S0tP+0tLT/tLS0/7S0
- s/+0s7P/s7Oz/7Ozsv+ysrP/srKy/7Gxsv+xsbL/sbGx/7Gxsf+xsbH/sbGx/7CwsP+wsLD/r6+w/6+v
- r/+vr6//rq6u/66urv+urq7/rq6u/66urv+ura7/ra2t/62trf+trKz/rKys/6usq/+rq6v/q6ur/6qr
- q/+qqqr/qqqq/6qqqv+qqqr/qqqq/6mpqv+pqan/qaip/6ioqP+oqKj/p6in/6enp/+np6f/p6en/6em
- p/+npqf/pqam/6ampv+lpqb/paal/6WlpP+kpaT/pKSk/6SkpP+kpKT/pKSk/6Oko/+jo6P/oqOj/6Ki
- ov+ioqL/oaKh/6Ghof+hoaH/oKCh/6CgoP+goKD/oKCg/6CgoP+foKD/n6Cf/5+fn/+mpqb/uLi4/8/P
- z//l5eX/9vb24/39/Rz7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD9/f0c+fn54+zs7P/b2tr/ycnJ/7y7
- vP+2trb/tra1/7a1tf+1tbX/tbW1/7W0tf+0tLT/tLS0/7S0tP+0tLT/s7Oz/7Ozs/+zs7P/srKy/7Ky
- sv+ysrL/sbGx/7Gxsf+xsbH/sbGx/7Gxsf+wsbD/sLCw/7CwsP+wr6//r6+v/6+urv+urq7/rq6u/66u
- rv+urq7/ra2u/62trf+tra3/rays/6ysrP+srKz/rKur/6urq/+rq6v/qqqr/6qqqv+qqqr/qqqq/6qq
- qv+pqar/qamp/6mpqf+oqKj/qKio/6iop/+np6f/p6en/6enp/+np6f/p6en/6amp/+mpqb/pqal/6Wl
- pf+lpaX/paSl/6SkpP+kpKT/pKSk/6SkpP+ko6T/o6Oj/6Ojo/+io6P/oqKi/6Kiov+ioaL/oaGh/6Gh
- of+goKD/oKCg/6CgoP+goKD/oKCg/6enp/+4uLj/zs7O/+Xl5f/29vbj/f39HPv7+wAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAA/Pz8AP39/Rz5+fnj7Ozs/9vb2//Kysr/vLy8/7e3t/+2t7f/tra2/7a2tv+2tbX/tbW1/7W1
- tf+0tLT/tLS0/7S0tP+0tLT/tLS0/7SztP+zs7P/s7Oz/7Kysv+ysrL/srKy/7Gxsf+xsbH/sbGx/7Gx
- sf+xsbH/sLCw/7CwsP+wsLD/r6+v/6+vr/+vr6//rq6u/66urv+urq7/rq6u/66urf+tra3/ra2t/6yt
- rf+srKz/rKys/6yrq/+rq6v/q6ur/6uqqv+qqqr/qqqq/6qqqv+qqqr/qaqq/6mpqf+pqan/qaip/6io
- qP+np6j/p6en/6enp/+np6f/p6en/6enp/+np6b/pqam/6ampv+lpaX/paWl/6SlpP+kpaT/pKSk/6Sk
- pP+kpKT/pKSk/6Oko/+jo6P/o6Oi/6Kiov+ioqL/oqKi/6Ghof+hoaH/oaCg/6CgoP+goKD/p6en/7i4
- uP/Pz8//5eXl//b29uP9/f0c+/v7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8/PwA/f39HPn5+ePs7Oz/29vb/8rK
- yv+9vb3/uLi4/7e4uP+3t7f/t7e3/7a2tv+1trb/tba2/7W1tf+1tbX/tbS0/7W0tP+0tLT/tLS0/7S0
- tP+0tLP/s7Oz/7Oys/+ysrP/srKy/7Kxsv+xsbL/sbGx/7Gxsf+xsbH/sbCx/7Cwsf+wsLD/sK+w/6+v
- r/+vr6//r6+v/66urv+urq7/rq6u/66urv+urq7/ra2t/62trf+tra3/rKys/6ysrP+sq6v/q6ur/6ur
- qv+rq6r/qquq/6qqqv+qqqr/qqqq/6mqqv+pqan/qamp/6moqf+oqKj/qKeo/6enp/+np6f/p6en/6en
- p/+npqf/pqen/6ampv+mpqX/paal/6Wlpf+lpaX/pKSk/6SkpP+kpKT/pKSk/6SkpP+jo6P/o6Oj/6Kj
- o/+ioqL/oqKi/6Kiof+hoaH/oaGh/6Ghof+np6j/ubm5/8/Pz//l5eX/9vb24/39/Rz7+/sAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAPz8/AD9/f0c+fn54+zs7f/b29v/y8vL/76+vv+4uLj/uLi4/7i4uP+4t7f/t7e3/7e2
- t/+2trb/tra2/7a2tv+1tbX/tbS1/7W0tf+0tLT/tLS0/7S0tP+0tLT/tLO0/7Ozs/+zs7P/s7Kz/7Ky
- sv+ysrL/sbGx/7Gxsf+xsbH/sbGx/7Gxsf+wsbH/sLCw/7CwsP+wr7D/r6+v/6+vr/+vrq7/rq6u/66u
- rv+urq7/rq6u/62trv+tra3/ra2s/6ysrP+srKz/rKyr/6urq/+rq6v/qqqr/6qqqv+qqqr/qqqq/6qq
- qv+qqqr/qqmp/6mpqf+pqKn/qKio/6inqP+op6j/p6en/6enp/+np6f/p6en/6empv+mpqb/pqal/6Wl
- pf+lpaX/pKWl/6SkpP+kpKT/pKSk/6SkpP+kpKT/pKOk/6Ojo/+jo6P/oqKj/6Giov+hoqL/oaGh/6io
- qP+5ubn/z9DP/+bm5v/29vbj/f39HPv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/Pz8AP39/Rz5+fnj7e3t/9zc
- 3P/Ly8v/vr6+/7i4uf+4uLj/uLi4/7i4uP+3uLj/uLe4/7e3t/+3t7f/tre2/7a2tv+2trX/tbW1/7W1
- tf+0tbX/tLS0/7S0tP+0tLT/tLS0/7S0tP+ztLP/s7Oz/7Ozsv+zsrL/srKy/7Kysf+xsbH/sbGx/7Gx
- sf+xsbH/sLGw/7CwsP+vsLD/r7Cv/6+vr/+vr6//rq6v/66urv+urq7/rq6u/62urv+trq3/ra2t/62t
- rf+srKz/rKys/6yrq/+sq6v/q6ur/6qrqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6mpqf+pqan/qKip/6io
- qP+oqKj/p6in/6enp/+np6f/p6en/6enp/+npqb/pqam/6ampv+lpqX/paWl/6Slpf+lpKX/pKSk/6Sk
- pP+kpKT/pKSk/6SjpP+jo6P/o6Oj/6Kiov+ioqL/qaip/7m5uf/Qz8//5ubm//b29uP9/f0c+/v7AAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAD8/PwA/f39HPn5+ePt7e3/3Nzc/8zMzP+/v7//ubm5/7m5uf+4ubj/uLi4/7i4
- uP+4uLj/uLi4/7i3uP+3t7f/t7e3/7a3tv+2trb/tra2/7W2tf+1tbX/tbW0/7S0tP+0tLT/tLS0/7S0
- tP+ztLT/tLOz/7Ozs/+zs7P/srKy/7Kysv+ysbL/sbGx/7Gxsf+xsbH/sbGx/7CxsP+wsLD/r7Cw/7Cw
- sP+vr6//r66v/6+urv+vrq7/rq6u/66urv+urq7/ra2t/62trf+tra3/rKys/6ysrP+srKz/q6ur/6ur
- q/+rqqv/qqqq/6qqqv+qqqr/qqqq/6qqqf+pqan/qamp/6ipqP+oqKj/qKin/6eop/+np6f/p6en/6en
- p/+np6f/pqen/6ampv+mpqb/pqWm/6Wlpf+lpaX/pKWk/6SkpP+kpKT/pKSk/6SkpP+jo6P/o6Oj/6Oj
- o/+pqqn/urq6/9DQ0P/m5ub/9vb24/39/Rz7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD9/f0c+fn54+3t
- 7f/c3Nz/zMzM/7+/v/+6urr/urm6/7m5uf+5ubn/ubi5/7i4uP+4uLj/uLi4/7i4uP+3uLf/t7e3/7e3
- t/+2trf/tra2/7a2tv+1tbb/tbW1/7S1tP+0tbT/tLS0/7S0tP+0tLT/tLS0/7O0s/+zs7P/s7Oz/7Ky
- sv+ysrL/srGx/7Gxsf+xsbH/sbGx/7Gxsf+xsLD/sLCw/7CwsP+vr7D/r6+v/6+vr/+urq//rq6u/66u
- rv+urq7/rq6u/66trv+tra3/ra2t/62srf+srKz/rKys/6yrq/+rq6v/q6qr/6qqqv+qqqr/qqqq/6qq
- qv+qqqr/qamp/6mpqf+pqaj/qKio/6ioqP+oqKj/p6eo/6enp/+np6f/p6en/6enpv+mp6b/pqam/6al
- pf+lpaX/paWl/6SlpP+kpKT/pKSk/6SkpP+kpKT/pKSk/6qqqv+6u7r/0NDQ/+bm5v/29vbj/f39HPv7
- +wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAA/Pz8AP39/Rz5+fnj7e3t/93d3f/MzMz/wMDA/7q7u/+6urr/urq6/7q6
- uv+5ubn/ubm5/7i4uf+4uLj/uLi4/7i4uP+4uLj/t7e4/7e3t/+3t7f/t7a3/7a2t/+2tbb/tbW2/7W1
- tf+1tbX/tLS0/7S0tP+0tLT/tLS0/7S0tP+zs7T/s7Oz/7Ozsv+ysrL/srKy/7Kxsv+xsbH/sbGx/7Gx
- sf+xsbH/sbGx/7CwsP+wsLD/sK+w/6+vr/+vr6//rq+u/66urv+urq7/rq6u/66urv+urq3/ra2t/62t
- rf+traz/rKys/6ysrP+rq6v/q6ur/6urq/+qqqr/qqqq/6qqqv+qqqr/qqqq/6qpqf+pqan/qamp/6io
- qP+oqKj/qKeo/6enp/+np6f/p6en/6enp/+np6b/pqam/6ampv+mpqb/paWl/6Wlpf+lpKX/pKSk/6Sk
- pP+kpKT/q6ur/7u8u//R0dH/5ubm//b29uP9/f0c+/v7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8/PwA/f39HPn5
- +ePt7e3/3d3d/83Nzf/AwcD/u7u7/7u7u/+7u7v/uru6/7q6uv+5urn/urm5/7m5uf+5ubn/uLi4/7i4
- uP+4uLj/uLi4/7i4uP+4t7f/t7e3/7e2t/+2trb/tra2/7W2tf+1tbX/tbW1/7S1tP+0tLT/tLS0/7S0
- tP+0s7T/tLSz/7Ozs/+zs7P/srKy/7Kysv+xsrH/sbGx/7Gxsf+xsbH/sbGx/7Gxsf+wsLH/sLCw/6+w
- sP+vr6//r6+v/6+vrv+urq7/rq6u/66urv+urq7/rq6u/62trf+tra3/rK2s/6ysrP+srKz/q6yr/6ur
- q/+qq6v/q6qq/6qqqv+qqqr/qqqq/6qqqv+qqqn/qamp/6mpqf+oqKj/qKio/6eoqP+np6f/p6en/6en
- p/+np6f/p6en/6anpv+mpqb/pqWm/6Wlpf+lpaX/paWl/6SlpP+rq6v/vLy8/9HR0f/m5ub/9vb24/39
- /Rz7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD+/f4c+fn54+3t7f/d3d3/zc3O/8HBwf+7u7z/u7u7/7u7
- u/+7u7v/u7u7/7u6uv+6urr/urq6/7m5uf+5ubn/ubm5/7m4uP+4uLj/uLi4/7i4uP+4t7j/t7e3/7e3
- t/+2t7b/tra2/7a2tv+2tbb/tbW1/7W0tf+1tLT/tLS0/7S0tP+0tLT/tLS0/7Ozs/+zs7P/s7Oy/7Ky
- sv+ysrL/sbKy/7Gysf+xsbH/sbGx/7Gxsf+xsbH/sbCw/7CwsP+wsLD/r7Cv/6+vr/+ur67/rq6u/66u
- rv+urq7/rq6u/66trv+tra3/ra2t/62srf+srKz/rKys/6usq/+rq6v/q6ur/6urqv+qqqr/qqqq/6qq
- qv+qqqr/qqmp/6mpqf+pqan/qKio/6ioqP+oqKj/p6en/6enp/+np6f/p6en/6enp/+mp6b/pqam/6al
- pv+lpaX/paWl/6yrq/+8vLz/0dHR/+fn5//29vbj/f39HPv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP/+
- /xz5+fnj7e3t/97e3f/Ozs7/wcLB/7y8vP+8vLz/vLy7/7u7u/+7u7v/u7u7/7u7u/+7urr/urq6/7q6
- uv+5ubr/ubm5/7m5uf+4ubj/uLi4/7i4uP+4uLj/uLi4/7e4t/+3t7f/t7e3/7a2tv+2trb/tba1/7W1
- tf+1tbX/tbW0/7S0tP+0tLT/tLS0/7S0tP+0s7T/s7Oz/7Ozs/+zsrL/srKy/7Gysv+xsbL/sbGx/7Gx
- sf+xsbH/sbGx/7Cwsf+wsLD/sLCw/6+vr/+vr6//rq+v/66vrv+urq7/rq6u/66urv+urq3/ra2t/62t
- rf+tra3/rKys/6ysrP+sq6z/q6ur/6urqv+rqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+pqan/qamp/6io
- qP+oqKj/qKin/6enp/+np6f/p6en/6enp/+np6f/pqan/6ampv+mpqb/rKys/728vf/S0tL/5+fn//b2
- 9uP9/f0c+/v7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/v7+HPn5+ePu7u7/3t7e/8/Oz//DwsL/vb29/728
- vf+8vLz/vLy8/7u7u/+7u7v/u7u7/7u7u/+7urv/u7q7/7q6uv+5urr/ubq5/7m5uf+5uLn/uLi4/7i4
- uP+4uLj/uLi4/7i4uP+4uLf/t7e3/7e3t/+2t7b/tra2/7a2tf+1trX/tbW1/7W0tf+0tLT/tLS0/7S0
- tP+0tLT/s7Oz/7Ozs/+zs7P/srKz/7Kysv+ysrH/sbGx/7Gxsf+xsbH/sbGx/7Gxsf+xsLH/sLCw/7Cw
- sP+wr7D/r6+v/6+vr/+urq7/rq6u/66urv+urq7/rq6u/62urf+tra3/ra2t/62srf+srKz/rKys/6ur
- q/+rq6v/qqur/6qqqv+qqqr/qqqq/6qqqv+qqqn/qamp/6mpqf+oqan/qKio/6ioqP+np6f/p6en/6en
- p/+np6f/p6en/6enp/+tra3/vb29/9LS0v/n5+f/9vb24/39/Rz7+/sAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39
- /QD+/v4c+fn54+7u7v/e3t7/z8/P/8PDw/++vr7/vb29/729vf+8vL3/vLy8/7y8vP+8u7v/u7u7/7u7
- u/+7u7v/u7u7/7u7uv+6urr/urq6/7m6uf+5ubn/ubi5/7i4uP+4uLj/uLi4/7i4uP+4uLj/t7e4/7e3
- t/+3t7f/tra3/7a2tv+2trb/tbW2/7W1tf+1tbT/tLS0/7S0tP+0tLT/tLS0/7O0tP+zs7P/s7Oz/7Kz
- sv+ys7L/srKy/7Kxsv+xsbH/sbGx/7Gxsf+xsbH/sLGw/7CwsP+wsLD/r6+v/6+vr/+ur6//r66u/66u
- rv+urq7/rq6u/66urv+tra3/ra2t/62trf+srKz/rKys/6usq/+rq6v/q6ur/6uqq/+qqqr/qqqq/6qq
- qv+qqqr/qqqq/6mpqf+pqan/qamo/6ioqP+oqKj/p6en/6enp/+np6f/p6en/66urv++vb7/09LS/+fn
- 5//29vbj/f39HPv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+/hz5+fnj7u7u/9/f3//Pz8//w8PD/76+
- vv++vr7/vb2+/729vf+9vb3/vL28/7y8vP+8vLz/u7y7/7u7u/+7u7v/u7u7/7u7u/+7u7v/uru6/7q6
- uv+6urr/ubm5/7m5uf+4uLj/uLi4/7i4uP+4uLj/uLi4/7i3t/+3t7f/t7e3/7a2t/+2trb/tra2/7W1
- tv+1tbX/tbS1/7S0tP+0tLT/tLS0/7S0tP+0tLT/s7O0/7Ozs/+zsrL/srKy/7Kysv+ysbH/sbGx/7Gx
- sf+xsbH/sbGx/7CxsP+wsLD/sLCw/6+vsP+vr6//r6+v/6+urv+urq7/rq6u/66urv+trq7/rq6t/62t
- rf+tra3/rK2s/6ysrP+srKz/q6ur/6urq/+qqqv/qqqq/6qqqv+qqqr/qqqq/6qpqv+pqan/qamp/6mp
- qP+oqKj/p6io/6eoqP+nqKj/rq6u/76+vv/T09P/5+fn//b29uP9/f0c+/v7AAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAD9/f0A/v7+HPn5+ePu7u7/39/f/9DP0P/Dw8T/vr6+/76+vv++vr7/vr6+/76+vv+9vb3/vb29/729
- vP+8vLz/vLy8/7u7vP+7u7v/u7u7/7u7u/+7u7v/uru7/7q6uv+6urr/urm5/7m5uf+5ubn/ubi4/7i4
- uP+4uLj/uLi4/7i4uP+4uLj/t7e3/7e3t/+2t7b/tra2/7a2tv+1tbX/tbW1/7W1tf+0tLT/tLS0/7S0
- tP+0tLT/tLS0/7Ozs/+zs7P/s7Oz/7Kysv+ysrL/srKy/7Gxsf+xsbH/sbGx/7Gxsf+xsLH/sLCw/7Cw
- sP+wsK//r6+v/6+vr/+urq7/rq6u/66urv+urq7/rq6u/62urf+tra3/ra2t/6ysrP+srKz/q6ys/6us
- q/+rq6v/q6qr/6qqqv+qqqr/qqqq/6qqqv+qqqr/qaqp/6mpqf+oqan/qKio/6ioqP+urq7/vr6+/9PT
- 0//n6Oj/9vf34/39/Rz7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD+/v4c+fn54+7u7v/f39//0NDQ/8TE
- xP+/v7//v7++/76+vv++vr7/vr6+/76+vv++vr7/vb69/729vf+9vbz/vLy8/7y8vP+8vLz/u7u7/7u7
- u/+7u7v/u7u7/7u7u/+6urr/urq6/7m6uv+6ubn/ubm5/7m4uP+4uLn/uLi4/7i4uP+4uLj/uLe4/7e3
- t/+3t7f/t7e2/7a2tv+2trb/tbW1/7W1tf+1tbX/tLW0/7S0tP+0tLT/tLS0/7S0tP+0s7P/s7Oz/7Oz
- s/+ysrL/srKy/7Gysv+xsbH/sbGx/7Gxsf+xsbH/sbGx/7CwsP+wsLD/sK+w/6+vr/+vr6//r66u/66u
- rv+urq7/rq6u/66urv+ura7/rq2t/62trf+sraz/rKys/6ysrP+rq6v/q6ur/6urqv+qqqr/qqqq/6qq
- qv+qqqr/qqqq/6qpqf+pqan/qamp/66ur/++v7//09PT/+jo6P/39/fj/f39HPv7+wAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAA/f39AP7+/hz5+fnj7u7u/9/g3//Q0dH/xcXF/8DAwP+/v7//v7+//7+/vv++vr7/vr6+/76+
- vv++vr7/vr6+/76+vf+9vb3/vb29/728vP+8vLz/vLy8/7u7vP+7u7v/u7u7/7u7u/+7urv/u7q6/7q6
- uv+6urn/ubm5/7m5uf+4uLn/ubi5/7i4uP+4uLj/uLi4/7i3t/+3t7f/t7e3/7a3t/+2trb/tra2/7W2
- tv+1tbX/tbW1/7W0tf+0tLX/tLS0/7S0tP+0tLT/tLO0/7Ozs/+zs7P/srOy/7Kysv+ysrL/sbKx/7Gx
- sf+xsbH/sbGx/7Gxsf+wsLD/sLCw/7CwsP+vr6//r6+v/66urv+urq7/rq6u/66urv+urq7/rq6t/62t
- rf+tra3/rayt/6ysrP+srKz/rKus/6urq/+rq6v/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqar/r6+v/7+/
- wP/U09T/6Ojo//f39+P9/f4c/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/v7+HPn5+ePu7u7/4ODg/9HR
- 0f/FxcX/wcDB/8DAwP/AwMD/wMDA/8HBwf/CwsL/w8PD/8PDw//Dw8P/wsPD/8HBwf/Av8D/vr2+/729
- vf+8vL3/vLy8/7y8vP+7u7v/u7u7/7u7u/+7u7v/u7u7/7u6uv+6urr/urq5/7m6uf+5ubn/ubi5/7i4
- uP+5ubn/urq7/7y8vP+8vLz/vLy8/7y8vP+8vLz/u7y7/7u7u/+7u7v/u7u7/7q7u/+6urv/urq6/7q6
- uv+5ubr/uLi4/7e3t/+1tbX/s7Oz/7Kysv+ysrL/srKy/7Kysv+0tLT/tbW2/7a2tv+2trb/tra2/7W1
- tf+0tLT/srKy/6+wsP+vr67/rq6u/66urv+urq7/r6+v/7Gxsf+ysrL/s7Oz/7Kzsv+ysrL/srGy/7Cw
- sP+urq7/q6ys/6qqqv+qqqr/qqqq/6qqqv+wsK//wMDA/9TU1P/o6Oj/9/f34/7+/hz8/PwAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAP39/QD+/v4c+vr64+/v7//g4OD/0dLS/8XGxv/BwcH/wcDB/8LCwv/FxcX/ysrK/83N
- zf/Pz8//z8/Q/8/Pz//Ozs7/zMvM/8jIyP/Dw8P/v7+//729vf+9vb3/vLy8/7y8vP+8vLz/u7u7/7u7
- u/+7u7v/u7u7/7u7uv+7u7r/urq6/7q6uv+6urn/vLy8/8DAwP/ExMT/x8fH/8nJyf/Kysr/ysrK/8nJ
- yf/Jycn/ycnJ/8nJyf/Jycn/ycjJ/8jIyP/IyMj/yMjI/8fHx//FxcX/wsLC/729vf+4uLf/tLS0/7Oz
- s/+0tLT/ubi4/76+vv/CwsL/xMTE/8XFxf/FxcX/xMTD/8HBwf+8vLz/tra2/7Gxsf+vr6//r6+v/7Ky
- sv+4uLj/vb29/8DAwP/CwsL/w8LD/8LCwv/BwcH/vb29/7m5uf+ys7L/ra2t/6urq/+qqqv/qqqq/7Gw
- sP/AwMD/1NTU/+jo6P/39/fj/v7+HPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+/hz6+vrj7+/v/+Dg
- 4P/S0tL/xsbG/8LCwv/DwsL/x8fH/87Ozv/U1NX/2tra/93d3f/f39//397e/93c3f/Z2dn/1NTT/8zM
- zP/ExMT/v7+//769vv+9vb3/vb29/728vf+8vLz/vLu8/7y7u/+7u7v/u7u7/7u7u/+7u7v/u7u7/76+
- vv/FxcX/zMzM/9LS0v/W1tb/2dnZ/9vb2v/b29v/29vb/9vb2//a29r/2tra/9ra2v/a2tr/2tra/9ra
- 2v/a2tr/2NjY/9XW1v/R0dH/ysrK/8LCwv+5ubn/tbW2/7q6uv/Dw8P/y8vL/9LS0v/W1tb/19fX/9fX
- 1//V1dX/0dHR/8rKyv/CwcH/uLi4/7Gxsf+zs7P/vLy7/8XFxf/MzMz/0tLS/9XV1f/W1tb/1dXV/9PT
- 0//Pz8//yMfH/76+vv+0tLT/ra2t/6urq/+rq6v/sbGx/8HAwf/U1NT/6Ojo//f39+P+/v4c/Pz8AAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAD9/f0A/v7+HPr6+uPv7+//4OHh/9LS0v/Gx8b/wsLC/8bFxv/Nzc3/19fX/+Dh
- 4P/p6en/7u7u//Dv8P/v7+//7u7u/+jo6P/f39//1tbW/8vLy//CwsL/vr6+/76+vv++vb7/vb29/729
- vf+8vbz/vLy8/7y8vP+7vLv/u7u7/7u7u/++vr//xsbG/9DQ0P/Z2dn/4eHh/+fn5//r6+v/7u7u/+7u
- 7v/u7u7/7u7u/+7u7v/u7u7/7u7u/+7u7v/u7u7/7u3t/+3t7f/s7Oz/5+fn/+Hh4f/Z2dn/zs7O/8PD
- w/++vr7/w8PD/87Ozv/a2tr/5OTk/+rq6v/s7Oz/7Ozs/+rp6v/i4uL/2djZ/83Nzf/AwMD/t7e3/7u7
- u//Hx8b/0tLT/93d3f/m5ub/6urq/+vr6//r6+v/6Ojo/+Hh4f/X19f/ysrK/7y8vP+xsbL/rKys/6ys
- rP+xsrL/wcHB/9TU1P/o6On/9/f34/7+/hz8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD+/v4c+vr64+/v
- 7//h4eH/0tPS/8fHx//DxMP/ycnJ/9PT0//f39//6+vr/+fn5//d3d3/3t7e/97e3v/g4OD/8fHx/+rq
- 6v/e3t7/0dHR/8XGxf+/v7//vr6+/76+vv++vr7/vr6+/769vf+9vb3/vb29/7y8vP+8vLz/vb29/8TE
- xf/Qz9D/2tvb/+bm5v/x8fH/+vr6/+zs7P/d3d3/3d3d/93d3f/e3d7/3d7e/97e3v/e3t7/3t7e/93e
- 3f/d3d3/3d3d/+Hh4f/19fX/8vLy/+fn5//a29v/zs7P/8nJyf/MzMz/19jY/+fn5//k5OT/29vb/93d
- 3f/d3d3/39/f/+7u7v/m5ub/1tbW/8fHx/+/v7//xMTE/9LS0f/g4OD/7u7u/+np6f/c3Nz/3d3d/93d
- 3P/e3t7/7e3t/+Pj4//R0dH/wcLC/7W1tf+ura7/rK2s/7Kysv/BwcH/1dXV/+np6f/39/fj/v7+HPz8
- /AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+/hz6+vrj8PDv/+Hi4f/T09P/yMjI/8XFxP/Ly8v/19fX/+Tk
- 5P/29vb/i4uL/xcXF/8cHBz/Ghoa/zMzM//g4OD/8/Pz/+Pj4//V1dX/yMjI/8DAwP++v77/vr6+/76+
- vv++vr7/vr6+/769vv+9vb3/vb29/729vf/BwMH/y8rL/9jY2P/l5eX/8/Pz/9zc3P+Ghob/S0tL/xoa
- Gv8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8bGxv/JSUl/3d3d//W1tb/8fHx/+bm
- 5v/Z2dn/09PT/9XV1f/f39//8/Pz/4qKiv8XFxf/HBwc/xoaGv8zMzP/39/f//Dw8P/d3d3/zc3N/8fH
- x//MzM3/29vb/+zs7P/s7Oz/WVlZ/xkZGf8cHBz/GRkZ/z09Pf/i4uH/6urq/9XV1f/DxMT/tra2/6+v
- rv+tra3/s7Oz/8LCwf/V1dX/6enp//f39+P+/v4c/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/v7+HPr6
- +uPw8PD/4uLi/9TT1P/Iycn/xcXF/83Nzf/Z2dn/5+fn//n5+f9+fn7/AAAA/wAAAP8AAAD/Ghoa/93d
- 3f/29vb/5ubm/9fX1//Kysn/wcHB/7+/v/+/v7//v7+//76+vv++vr7/vr6+/76+vv++vr7/vr6+/8TE
- xP/Qz9D/3t7e/+7u7v/r6+v/UVFR/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
- AP8AAAD/AAAA/wAAAP8AAAD/AQEB/y0tLf/V1dX/8fHx/+Hh4f/c3Nv/3Nzc/+Tk5P/39/f/fn5+/wAA
- AP8AAAD/AAAA/xoaGv/d3d3/9PT0/+Hh4f/T09P/z8/P/9TU1P/j4+P/9vb2/6ysrP8KCgr/AAAA/wAA
- AP8AAAD/fHx8//f39//n5+f/1NTU/8PDwv+1tbX/rq6u/66urv+0s7P/wsLC/9XW1f/p6en/9/f34/7+
- /hz8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD+/v4c+vr64/Dw8P/i4uL/1NTU/8nKyf/Gxsb/zs7O/9ra
- 2v/o6Oj/+vr6/35+fv8AAAD/AAAA/wAAAP8aGhr/3d3d//b39//n5+f/2NjY/8vLy//CwsL/wMDA/8DA
- wP+/v8D/v7+//7+/v/++vr7/vr6+/76+vv+/v7//xsbG/9PT0//i4uL/9PT0/9HR0f8XFxf/AAAA/wAA
- AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/4KC
- gv/39/f/6Ojo/+Hh4f/h4eH/5+fn//j4+P9+fn7/AAAA/wAAAP8AAAD/Ghoa/93d3f/09PT/4uPj/9jY
- 2P/X19f/3Nzc/+vr6//s7Oz/SEhI/wAAAP8AAAD/AAAA/yEhIf/S0tL/9PT0/+Hh4f/Q0ND/v7+//7Ky
- sv+urq7/rq6u/7S0tP/Dw8P/1tbW/+np6f/39/fj/v7+HPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+
- /hz6+vrj8PDw/+Li4v/V1dX/ysrK/8fHxv/Ozs7/2tra/+np6f/6+vr/fn5+/wAAAP8AAAD/AAAA/xoa
- Gv/e3t3/9/f3/+fn5//Y2Nn/y8vL/8LCwv/BwcH/wMHB/8DAwP/AwMD/v8DA/7+/v/+/v7//vr6+/7/A
- wP/IyMj/1tXW/+Xl5f/4+Pj/iIiI/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
- AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/dnZ2//r6+v/s7Ov/5OTk/+Tj5P/o6Oj/+Pj4/35+
- fv8AAAD/AAAA/wAAAP8aGhr/3d3d//T09P/m5ub/39/f/97e3v/j4+P/8/Pz/9XV1f8YGBj/AAAA/wAA
- AP8AAAD/bm5u//b29v/r6+v/2tra/8nJyf+6urr/sbGx/6+vr/+vrq//tLS0/8PDw//W1tb/6enp//f3
- 9+P+/v4c/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- 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
- x//l5eX/4uLi/+Dg4P/f39//39/f/9/f3//f39//39/f/97e3v/u7u7//Pz8//T09P/q6ur/4uLi/+Dg
- 4P/j4+P/6+vr//r6+v9+fn7/AAAA/wAAAP8AAAD/AAAA/35+fv/6+vr/6Ojo/9nZ2f/Q0ND/z8/P/9fX
- 1//h4OH/6Ojo/+7u7v/w8O//8PDw/+/v7//r6+v/5OTk/9zc3P/b29v/39/f/+jo6P/5+fn/fn5+/wAA
- AP8AAAD/AAAA/xoaGv/g4OD/9fX1/0tLS/8AAAD/AAAA/wAAAP99fX3/+Pj4/+vr6//c3Nz/zc7N/8HB
- wf+5urr/uLm4/7i4uP+4uLj/uLi4/7i4uP+4t7j/t7e4/7e3t/+8vLz/ycnJ/9ra2v/r6+v/+Pj44/39
- /Rz8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD+/v4c+vr64/Ly8v/m5ub/29vb/9LS0v/Pz8//1dXV/+Df
- 4P/s7Oz/+/v7/35+fv8AAAD/AAAA/wAAAP8DAwP/GBgY/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwc
- HP8cHBz/Ghoa/0tLS/+Hh4f/3d3d//X19f/q6uv/5+fn/+jo6P/t7e3/+vr7/35+fv8AAAD/AAAA/wAA
- AP8AAAD/fn5+//r6+v/o6Oj/2dnZ/83Nzf/Kysr/z8/P/9bW1v/b29v/3t7e/+Dg3//g4OD/3t7e/9zc
- 3P/X19f/0tLS/9PU0//a2tr/5+fn//n5+f9+fn7/AAAA/wAAAP8AAAD/Ghoa/+Li4v+urq7/CgoK/wAA
- AP8AAAD/IyMj/9nZ2f/19fX/5OXl/9bW1v/Hx8f/vb29/7m6uv+6ubn/ubm5/7m4uf+4uLj/uLi4/7i4
- uP+4t7j/uLi4/7y8vP/Jycn/2tra/+zs7P/4+Pjj/f39HPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+
- /hz7+/vj8vLy/+fn5//c29v/0tLS/9DQ0P/W1tb/4ODg/+zs7P/7+/v/fn5+/wAAAP8AAAD/AAAA/wAA
- AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9RUVH/7Ozs//Ly
- 8v/s7Oz/7Ozs/+/v7//7+/v/fn5+/wAAAP8AAAD/AAAA/wAAAP9+fn7/+vr6/+jp6f/a2tr/zczN/8XG
- xv/IyMj/zMzM/8/Pz//R0dH/0tLR/9HR0f/R0dH/z8/P/8zMzP/Kysn/zc3N/9jY2P/n5+f/+fn5/35+
- fv8AAAD/AAAA/wAAAP8bGxv/3t7e/3BwcP8AAAD/AAAA/wAAAP9tbW3/+fn5/+3t7f/e3t7/0NDQ/8PC
- w/+7u7v/urq6/7q6uv+6ubr/urm5/7m5uf+4ubn/uLi4/7i4uP+4uLj/vL29/8rKyv/a29v/6+vr//j4
- +OP+/v4c/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/v7+HPv7++Py8/P/5+fn/9zc3P/T09P/0NDQ/9bX
- 1//g4OD/7Ozs//v7+/9+fn7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
- AP8AAAD/AAAA/wAAAP8AAAD/AAAA/xcXF//S0tL/9/f3//Dw8P/v7+//8fHx//v7+/9+fn7/AAAA/wAA
- AP8AAAD/AAAA/35+fv/6+vr/6enp/9ra2v/Nzc3/xcXF/8TExP/FxcX/x8bG/8fHx//Hx8b/xsbG/8bG
- xv/GxcX/xMTE/8TEw//Ly8v/2NjY/+fn5//5+fn/fn5+/wAAAP8AAAD/AAAA/x0dHf+8vLz/JCQk/wAA
- AP8AAAD/CgoK/6mpqf/4+Pj/5+fn/9jY2P/Kysr/v7+//7u7u/+7u7v/u7u6/7u6u/+6urr/urq6/7m5
- uf+5ubn/ubm4/7i4uf+9vr7/ysrK/9rZ2v/q6ur/+Pj44/7+/hz8/PwAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39
- /QD+/v4c+/v74/Pz8//n5+f/3Nzc/9PT0//R0dH/19fX/+Hg4f/s7Oz/+/v7/35+fv8AAAD/AAAA/wAA
- AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/4mJ
- if/7+/v/8vLy//Hx8f/y8/P//Pz8/35+fv8AAAD/AAAA/wAAAP8AAAD/fn5+//r6+v/p6en/29ra/87O
- zv/Gxsb/xcTE/8TExP/ExMT/xMTD/8PDw//Dw8P/wsLC/8LCwv/CwsL/w8PD/8vLy//Y2Nj/5+fn//n5
- +f9+fn7/AAAA/wAAAP8AAAD/EBAQ/zs7O/8CAgL/AAAA/wAAAP9JSUn/7e3t//Dw8P/h4eH/0tLT/8XF
- xf++vb3/vLu8/7u7u/+7u7v/u7u7/7u7u/+6u7r/urq6/7q6uv+5ubn/ubm5/76+vv/Jycn/2NjY/+rq
- 6v/4+Pjj/v7+HPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+/hz7+/vj8/Pz/+jn6P/c3dz/1NTU/9LR
- 0v/X19f/4eHh/+3s7P/8+/v/fn5+/wAAAP8AAAD/AAAA/w0NDf9vb2//gICA/39/f/9+fn7/fn5+/35+
- fv9/f3//goKC/0BAQP8AAAD/AAAA/wAAAP8AAAD/fn5+//z8/P/z8/P/8fHx//Pz8//8/Pz/fn5+/wAA
- AP8AAAD/AAAA/wAAAP9+fn7/+vr6/+np6f/b29v/zs7O/8bGxv/FxcX/xcXF/8TExP/ExMT/xMTE/8PD
- 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
- AP8aGhr/3d3d//f39//q6ur/5OTl/+Tk5P/o6Oj/9fX1/9fX1/8iIiL/AAAA/wAAAP8AAAD/ICAg/9XV
- 1f/y8vL/4eHh/9TU1P/Iycj/wcLC/8HBwf/AwMD/xMXE/9DQ0P/f39//7e7t//n5+eP9/f0c/Pz8AAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAD9/f0A/v7+HPz8/OP29vb/7u7u/+fm5//g4OD/3t7e/+Hh4v/o6Oj/7+/v//r6
- +v+9vb3/e3t7/319ff99fX3/fX19/319ff99fX3/fX19/319ff99fX3/fX19/319ff99fX3/fX19/319
- ff94eHj/ra2t/+/v7//29vb/7u7u/+np6f/n5+f/6Ojo/+3u7v/19vb/7+/v/62trf94eHj/fX19/319
- ff99fX3/fX19/319ff99fX3/fX19/319ff99fX3/fX19/319ff95eXn/goKC/+Dg4P/5+fn/7u7u/+bm
- 5v/i4uL/5OPj/+rq6v/39/f/vLy8/3t7e/99fX3/fX19/4mJif/n5+f/8/T0/+bm5v/f39//3t7e/+Li
- 4//t7e3/9vb2/7Gxsf97e3v/fX19/319ff99fX3/xcXF//Py8v/i4uL/1dXV/8nKyv/CwsL/wcHB/8HB
- wf/FxcX/0NDQ/9/f3//u7u7/+fn54/39/Rz8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD+/v4c/Pz84/b2
- 9v/v7+//5+fn/+Dh4f/f39//4eHh/+fm5v/t7e3/9PP0//v7+///////////////////////////////
- //////////////////////////////////////////////7+/v/7+/v/9fX1/+7u7v/o6Oj/4uLi/9/g
- 4P/i4uL/5+fn/+7u7v/09PT/+/v7//39/f//////////////////////////////////////////////
- //////////////7+/v/8+/v/9vb2/+/v7//n5+f/4ODg/93d3f/f3t//5ubm/+/v7//5+fn/////////
- /////////f39//X19f/s7O3/4eHh/9nZ2f/X19f/29vc/+Xl5f/v7+//+fn5//79/f/+/v7//v7+//39
- /f/29vb/6+vr/9/f3//T09P/ycnI/8LCwv/BwcH/wcHB/8bFxf/Q0dD/39/f/+7u7v/5+fnj/f39HPz8
- /AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+/hz8/Pzj9vb2/+/v7//n5+f/4eHh/9/f3//g4OD/5OTk/+np
- 6f/u7u7/8vLy//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X1
- 9f/19PX/8/Pz//Dw8P/s7Oz/6Ojn/+Li4v/d3d3/2tra/9zc3P/h4eH/5ubm/+vr6//v7+//8vHy//Pz
- 8//09PT/9PT0//T09P/z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8vLy/+/v7//r6+v/5ubm/+Dg
- 4P/Z2dr/19fX/9rZ2f/g4OH/5+jo/+3t7f/w8PD/8fHx//Dw8P/u7+7/6+vr/+Tk5P/b29v/09PT/9DQ
- 0P/U1NT/3Nzc/+Tk5P/q6ur/7u3u/+/v7//v7+//7e3t/+np6f/i4uL/2dnZ/8/Pz//Hxsb/wsLD/8LC
- wv/CwsL/xsbG/9HR0f/g4OD/7u7u//n5+eP9/f0c/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/v7+HPz8
- /OP39vb/7+/v/+jo6P/h4uL/39/f/9/f3//i4uH/5eXl/+jp6P/r6+v/7e3t/+7u7v/u7u7/7u7u/+3t
- 7v/t7e3/7e3t/+3t7f/t7e3/7e3t/+zs7P/s7Oz/7Ozs/+vr6//q6ur/6Ojo/+Xl5f/h4eH/3d3d/9nZ
- 2v/Z2Nj/2dnZ/9zc3P/g4OD/4+Pj/+bm5v/o6Oj/6unp/+rq6v/q6ur/6urq/+rp6f/p6en/6enp/+np
- 6f/p6en/6Onp/+jo6P/n5+f/5eXl/+Li4v/e3t7/2dnZ/9TU1P/S0tL/1dXV/9rb2v/f39//4+Pj/+Tk
- 5P/k5OT/5OTj/+Li4v/f39//2tva/9TU1P/Nzc3/ysrK/83Ozf/U1NT/2dra/97e3v/g4OH/4uLi/+Li
- 4v/g4OD/3d3d/9jY1//R0dH/ycnK/8TFxf/Dw8P/w8PD/8PDwv/Hx8f/0tLS/+Dg4P/u7u7/+fn54/39
- /Rz8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD+/v4c/Pz84/f39v/v8O//6Ojo/+Li4v/g4OD/39/f/9/g
- 4P/h4eH/4+Pk/+Xl5f/m5ub/5ubm/+bm5v/m5ub/5ubm/+Xl5f/l5eX/5eXl/+Xl5f/l5OT/5OTk/+Tk
- 5P/k5OT/5OTk/+Li4v/h4eH/397f/9zc3P/a2tn/2dnZ/9nZ2f/Z2Nn/2dnZ/9ra2v/c3N3/3t7e/+Dg
- 4P/h4eH/4eHh/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/39/f/9/f3//e39//3t7e/97e3v/c3Nz/2tra/9fX
- 1//U09T/0tLS/9LS0v/S0tL/1dXV/9jX1//Y2Nj/2NfY/9jY2P/Y2Nf/19fW/9XV1f/S0tL/zc3N/8rK
- yv/IyMj/ycnJ/8zMzf/Q0ND/09PT/9XU1f/V1dX/1dXV/9TU1P/S0dH/zs7O/8rKyv/Gxcb/xMXE/8TE
- xP/ExMT/w8PD/8fHx//S0tL/4ODg/+7u7v/5+fnj/f39HPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+
- /hz8/Pzj9/f3//Dw8P/p6en/4+Pj/+Hg4P/g4OD/3+Dg/9/g4P/g4OD/4eHg/+Hh4f/h4eH/4OHg/+Dg
- 4P/g4OD/4ODg/9/g4P/f4N//39/f/97e3v/e3t7/3t7e/97e3v/e3t7/3d3d/9zc3P/b29v/2tra/9ra
- 2v/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2tr/2tra/9ra2v/a2tr/2trZ/9nZ2f/Z2dn/2dnY/9jY
- 2P/Y2Nj/19fY/9fX1//X19f/19fX/9bW1v/V1dT/09TT/9PT0v/S0tL/0tLS/9LS0v/S0tL/0NDQ/8/P
- z//Qz8//z8/P/8/Pz//Oz87/zc7N/8zMzP/Kysr/ycnJ/8nJyf/Jycn/ycjJ/8rKyv/Ly8v/zMvL/8vL
- y//Ly8v/ysrL/8rJyf/IyMj/xsbG/8XGxv/FxcX/xcXF/8XFxP/ExMT/yMjI/9PT0v/h4eD/7u/v//n5
- +eP9/f0c/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/v3+HPz8/OP39/f/8PDw/+np6f/k5OT/4eLh/+Hh
- 4f/h4OD/4ODg/9/g4P/f3+D/39/f/9/f3//f39//39/f/97e3v/e3t7/3t7e/97d3f/d3d3/3N3d/9zc
- 3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nvb/9vb2//b2tv/2tra/9ra2v/a2tr/2dnZ/9nZ2f/Z2dn/2dnZ/9jZ
- 2f/Y2Nj/2NjY/9jX2P/X19f/19bX/9bX1v/W1tb/1tbW/9XV1v/V1dX/1dXV/9XV1f/V1dX/1dTV/9TU
- 1P/U1NT/09TT/9PT0//T09P/0tLS/9DQ0P/Nzc3/zc3N/83Nzf/MzM3/zMzM/8zMzP/Ly8v/y8vL/8vK
- yv/Kysr/ysrK/8nJyf/Jycn/ycnJ/8jIyP/IyMj/x8fI/8fHx//Hx8f/x8fH/8fHx//Gx8b/xsbG/8bG
- xv/Gxcb/xcXF/8XFxf/Jycn/09PT/+Hh4f/v7+//+fn54/39/Rz8/PwAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39
- /QD9/f0c/Pz84/f39//x8PD/6erp/+Tk5P/i4uL/4eLh/+Hh4f/h4eH/4OHh/+Dg4P/g4OD/4N/f/9/f
- 3//f39//39/f/9/f3//f3t//3t7e/97e3v/d3t3/3d3d/93d3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9vb
- 2//b29v/29vb/9rb2v/a2tr/2trZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dj/2djY/9jY2P/Y19j/19fX/9fX
- 1//W19b/1tbW/9bW1v/V1tX/1dXV/9XV1f/V1dX/1dXU/9TU1f/U1NT/1NTU/9PT0//R0dH/zs7O/83N
- zf/Nzc3/zc3N/83Nzf/Nzc3/zMzM/8zMzP/MzMv/y8vL/8vLy//Ly8v/ysrK/8rKyv/Jysr/ycnJ/8jJ
- yf/IyMn/yMjI/8jIyP/Hx8j/x8fH/8fHx//Hx8f/x8bH/8bGx//Gxsb/xsXG/8nJyf/U1NT/4eHh/+/v
- 7//5+fnj/f39HPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP39/Rz8/Pzj+Pj4//Hx8f/q6ur/5eXl/+Pj
- 4//i4uL/4uLi/+Li4f/h4eH/4eHh/+Hg4f/g4OD/4ODg/9/g3//f39//39/f/9/f3//f39//3t/e/97e
- 3v/e3t7/3t3d/93d3f/d3d3/3N3c/9zc3P/c3Nz/3Nzc/9zc3P/c29z/29vb/9vb2//b29r/2tra/9rZ
- 2v/a2dr/2dnZ/9nZ2f/Z2dn/2dnZ/9jZ2P/Y2Nj/19jY/9fX1//X19f/1tbW/9bW1v/W1tb/1dXW/9XV
- 1f/V1dX/1dXV/9XV1f/V1NT/0tLS/8/Pz//Ozs7/zs7O/87Ozv/Nzc7/zc3N/83Nzf/Nzc3/zc3N/8zM
- zP/MzMz/zMzM/8vLy//Ly8v/y8vK/8rKyv/Kysr/ysnK/8nJyf/Jycn/yMnI/8jIyP/IyMj/yMfH/8fH
- x//Hx8f/x8fH/8fHx//Gxsb/ysrK/9XV1f/i4uL/7+/v//n5+eP9/f0c/Pz8AAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAD9/f0A/f39HPz8/OP4+Pj/8fHy/+vq6v/l5eX/4+Pj/+Pj4//j4+L/4uLi/+Li4v/i4uL/4eHi/+Hh
- 4f/h4eD/4ODg/+Dg4P/g39//39/f/9/f3//f39//39/f/9/f3v/e3t7/3t7e/97d3f/d3d3/3d3d/9zc
- 3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nvc/9vb2//b29v/2tvb/9ra2v/a2dr/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ
- 2f/Y2Nj/2NjY/9jY2P/X19f/19fX/9fW1v/W1tb/1tbW/9XV1f/V1dX/1dXV/9PT0//Q0ND/0NDP/8/P
- z//Pz8//z8/O/87Ozv/Ozs3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/NzMz/zMzM/8zMzP/My8v/y8vL/8vL
- y//Kysv/ysrK/8rJyv/Jycn/ycnJ/8nIyf/IyMj/yMjI/8jHx//Hx8f/x8fH/8fHx//Ly8v/1dXV/+Li
- 4v/v7+//+fn54/39/Rz8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD9/f0c/Pz84/j4+P/x8vL/6+vr/+bm
- 5f/k5OP/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//i4uL/4uLi/+Lh4f/h4eH/4eHh/+Dg4P/g4OD/3+Dg/9/f
- 4P/f39//39/f/9/f3//f39//3t7e/97e3v/d3t3/3d3d/93d3P/d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zb
- 3P/b29v/29vb/9ra2//a2tr/2tna/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2djY/9jY2P/Y2Nj/19fX/9fX
- 1//X19f/1tbW/9bW1v/U09P/0dHR/9HR0f/R0ND/0NDQ/9DQ0P/Qz8//z8/P/8/Pzv/Ozs7/zs7O/83N
- zf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/8zMzP/MzMz/y8zL/8vLy//Ly8v/ysrK/8rKyv/Kycr/ycnJ/8nJ
- yf/Iycn/yMjI/8jIyP/Ix8j/x8fI/8vLy//W1db/4+Li//Dw7//5+fnj/f39HPz8/AAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAA/f39AP39/Rz8/Pzj+Pj4//Ly8v/r6+v/5ubm/+Tk5P/k5OT/4+Pk/+Pj4//j4+P/4+Pj/+Pj
- 4//j4+L/4uLi/+Li4v/h4uH/4eHh/+Hh4f/h4OD/4ODg/+Dg4P/f39//39/f/9/f3//f39//397f/97e
- 3v/e3t7/3t7e/93d3f/d3d3/3d3d/9zc3P/c3Nz/3Nzc/9zc3P/c29z/29vb/9vb2//b2tv/2tra/9ra
- 2v/a2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9jZ2f/Y2Nj/2NjY/9jY1//X19f/1dTV/9LS0v/R0tH/0tLS/9LR
- 0f/R0dD/0NHQ/9DQ0P/Q0M//z8/P/8/Pz//Oz8//zs/O/87Ozv/Nzc7/zc3N/83Nzf/Nzc3/zc3N/83N
- zP/MzMz/zMzM/8vMzP/Ly8v/y8vL/8vKy//Kysr/ysrK/8nJyf/Jycn/ycnJ/8jIyP/IyMj/zc3N/9jY
- 2P/l5eX/8fHx//r6+uP9/f0c/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/f39HPz8/OP4+Pj/8vLy/+zr
- 7P/n5+f/5eXl/+Tl5f/k5OT/5OTk/+Tk4//j4+P/4+Pj/+Pj4//j4+P/4uPj/+Li4v/h4uL/4eLh/+Hh
- 4f/h4eH/4eDg/+Dg4P/f4OD/39/f/9/f3//f39//39/f/9/f3//f3t//3t7e/97e3v/d3d3/3d3c/9zd
- 3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9vb3P/b29v/29vb/9ra2v/a2tr/2dra/9nZ2f/Z2dn/2dnZ/9jZ
- 2f/Z2Nn/2NjY/9XV1f/T09P/09PT/9PT0//S0tL/0tLS/9HS0f/R0dH/0dHR/9DQ0P/Q0ND/z9DQ/8/Q
- z//Pz8//zs/P/87Ozv/Ozc7/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zMzM/8zMzP/My8z/y8vL/8vL
- y//Kysr/ysrK/8nJyv/Jycn/ycnJ/8rLyv/S0tL/3d3d/+jp6f/z8/T/+/v74/7+/hz9/f0AAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAP39/QD9/f0c/Pz84/j4+P/y8vL/7Ozs/+fn5//m5ub/5ebm/+Xl5f/l5eX/5OTk/+Tk
- 5P/k5OT/4+Pj/+Pj4//j4+P/4+Pj/+Lj4//i4uL/4uLi/+Li4f/h4eH/4OHh/+Dh4P/g4OD/4ODg/9/f
- 3//f39//39/f/9/f3//f3t//397e/97e3v/e3t7/3d3d/93d3f/d3N3/3dzc/9zc3P/c3Nz/3Nzc/9zc
- 3P/b29z/29vb/9rb2//a2tr/2tra/9ra2v/Z2dn/2dnZ/9nZ2f/Y2Nj/1tbW/9bW1v/V1tX/1dXV/9XV
- 1f/V1dX/1dTU/9TU1P/U1NT/1NTT/9PT0//T09P/09PS/9LS0v/S0tL/0tLS/9HR0f/R0dH/0dHQ/9HQ
- 0P/Q0ND/0NDQ/9DQ0P/Q0ND/z8/P/8/Pz//Pz8//zs7P/87Ozv/Ozc3/zc3N/83Nzf/Ozs7/09PT/9vb
- 2//l5eX/7+7u//f39//7+/vg+fn5G/n5+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP39/Rz8/Pzj+Pj4//Ly
- 8v/t7e3/6Ojo/+bm5v/m5ub/5ebm/+Xl5v/l5eX/5eXk/+Tk5P/k5OT/4+Tj/+Pj4//j4+P/4+Pj/+Pj
- 4//j4uP/4uLi/+Li4f/h4uH/4eHi/+Hh4f/h4OD/4ODg/+Df4P/g39//39/f/9/f3//f39//39/f/97f
- 3v/e3t7/3t7e/93d3v/d3d3/3d3d/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/29vb/9vb2//b29v/2trb/9ra
- 2v/a2dn/2tra/+Dg4P/h4uH/4eHh/+Hh4f/h4eD/4OHg/+Dg4P/g4OD/4ODg/+Dg3//g39//39/f/9/f
- 3//f39//39/f/97e3v/e3t7/3t7e/97e3v/d3d3/3d3d/93d3f/d3d3/3d3c/9zc3P/c3Nz/3Nzc/9vc
- 3P/b29v/29vb/9vb2//b29v/3Nvb/9/f3//k5OX/6urq//Hx8f/39/f/+Pj49+Xl5YXAwMAH0dHRAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAD9/f0A/f39HPz8/OP4+Pn/8/Pz/+3t7f/p6Oj/5ubm/+bm5v/m5ub/5ubm/+bm
- 5v/m5eX/5eXl/+Xk5f/k5OT/5OTk/+Pk4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Li4v/i4uL/4uLh/+Hh
- 4f/h4eH/4ODg/+Dg4P/g4OD/4N/f/9/f3//f39//39/f/9/f3//f39//3t7e/97e3v/e3d3/3d3d/93d
- 3f/d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9vc2//b3Nv/2tva/9ra2v/b29v/4eHh/+Tj4//j4+P/4+Lj/+Li
- 4v/i4uL/4uLi/+Li4v/i4uH/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/h4OH/4ODg/+Dg4P/g4OD/4ODg/+Dg
- 4P/f4N//39/f/9/e3//e3t7/3t7e/97e3v/e3t7/3d7e/93d3f/d3d3/3d3d/97e3v/h4eH/5ubm/+zs
- 7P/y8vL/+Pf4//j4+Pfk5OSHs7OzDcfHxwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD9/f4c/Pz84/n4
- +f/z8/P/7u7u/+np6f/n5+f/5+fn/+bn5v/m5ub/5ubm/+bm5v/m5ub/5uXl/+Xl5f/l5eX/5OTk/+Tk
- 5P/k5OT/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4uL/4uLi/+Li4f/h4eH/4eHh/+Hg4f/g4OD/4ODg/9/g
- 3//f39//39/f/9/f3//f39//3t7f/97e3v/e3t7/3d3e/93d3f/d3dz/3Nzc/9zc3P/c3Nz/3Nzc/9zc
- 3P/c29v/29vb/9zb3P/i4uL/5OTk/+Tk4//j4+P/4+Pj/+Pj4v/i4uL/4uLi/+Li4v/i4uL/4eHi/+Hh
- 4f/h4eH/4eHh/+Hh4f/h4eH/4eDh/+Dg4P/g4OD/4ODg/9/g4P/f39//39/f/9/f3//e3t//3t7e/97e
- 3v/e3t7/3t7e/93d3f/e3t//4uLi/+fn5//s7Oz/8vLy//j4+P/4+Pj25OTkh7Ozsw3Hx8cAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/hz9/f3j+fn5//T09P/u7u7/6urq/+jo6P/o5+j/5+fn/+fn
- 5//m5ub/5ubm/+bm5v/m5ub/5ubm/+Xm5f/l5eX/5eXk/+Tk5P/k5OT/5OTk/+Pj4//j4+P/4+Pj/+Pj
- 4//j4+P/4uLj/+Li4v/i4uL/4eHi/+Hh4f/h4OH/4ODg/+Dg4P/f4N//39/f/9/f3//f39//39/f/9/e
- 3//e3t7/3t7e/97d3v/d3d3/3d3d/9zd3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/+Li4v/k5OT/5OTk/+Tk
- 5P/k4+T/5OPj/+Pj4//j4+L/4uLj/+Li4v/i4uL/4uLi/+Li4v/h4eL/4eHh/+Hh4f/h4eH/4eHh/+Dh
- 4f/g4OD/4ODg/+Dg4P/g4OD/3+Dg/9/g3//f39//3t/f/97e3v/e3t7/39/f/+Pi4v/n5+f/7O3t//Ly
- 8v/4+Pj/+Pj49ebm5oGzs7MMycnJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7/HP39
- /eP5+fn/9PT0/+/u7//q6ur/6Onp/+jp6P/o6Oj/6Ojo/+fn5//n5+f/5+fm/+bm5v/m5ub/5ubm/+bm
- 5v/m5eb/5eXl/+Xl5f/k5OT/5OTk/+Tk5P/j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4v/i4uL/4uLi/+Hh
- 4f/h4eH/4OHh/+Dg4P/g4OD/4ODg/9/f3//f39//39/f/9/f3//f39//3t7e/97e3v/d3t7/3d3e/93d
- 3f/c3N3/3Nzc/9zc3P/c3Nz/4uPi/+Xl5f/k5OT/5OTk/+Tk5P/k5OT/4+Tk/+Pj4//j4+P/4+Lj/+Li
- 4v/i4uL/4uLi/+Li4v/i4uL/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/h4eD/4ODg/+Dg4P/g4OD/4ODg/+Dg
- 3//f39//39/f/+Dg4P/k4+P/6Ojo/+3t7f/y8vL/+Pj4//j4+PXm5uaBs7OzC8nJyQAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v4c/f394/n5+f/09PT/7+/v/+vq6//p6en/6enp/+np
- 6f/o6Oj/6Ojo/+jn6P/n5+f/5+fn/+bn5v/m5ub/5ubm/+bm5v/m5ub/5ubm/+Xl5f/l5eX/5eTl/+Tk
- 5P/k5OT/4+Tj/+Pj4//j4+P/4+Pj/+Pj4//i4+L/4uPi/+Li4v/h4uH/4eHh/+Hh4f/g4eD/4ODg/+Df
- 4P/f39//39/f/9/f3//f39//39/f/97e3//e3t7/3d7e/93d3f/d3d3/3N3c/93d3f/j4+P/5eXl/+Xk
- 5f/l5eT/5eTk/+Tk5P/k5OT/5OTk/+Pk5P/k4+T/4+Pj/+Lj4//i4uL/4uLi/+Li4v/i4uL/4uLi/+Li
- 4f/h4eH/4eHh/+Hh4f/h4eH/4OHh/+Dg4f/g4OD/4ODg/+Dg4P/h4eH/5OTk/+jo6P/t7e3/8/Py//j4
- +P/4+Pj15ubmgbOzswvJyckAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+
- /hz9/f3j+fn5//T09P/v7+//6+vr/+np6f/p6en/6enp/+np6f/p6ej/6Ono/+jo6P/o6Oj/5+fn/+fn
- 5//n5+f/5ubm/+bm5v/m5ub/5ubm/+bm5v/l5eX/5eXl/+Tk5f/k5OT/5OTk/+Pj4//j4+P/4+Pj/+Pj
- 4//j4+P/4uLj/+Li4v/i4uL/4uLh/+Hh4f/h4eH/4ODh/+Dg4P/g4OD/39/f/9/f3//f39//39/f/9/f
- 3//f3t7/3t7e/93e3v/d3d3/3t3d/+Pj4//l5eX/5eXl/+Xl5f/l5eX/5OTl/+Tk5P/k5OT/5OTk/+Tk
- 5P/k5OT/4+Tj/+Pj4//j4uP/4+Li/+Li4v/i4uL/4uLi/+Li4f/h4uH/4eHh/+Hh4f/h4eH/4eHh/+Dh
- 4P/g4OD/4eHh/+Tk5P/p6On/7e3t//Pz8//4+Pj/+fn59Obm5oGzs7MLycnJAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+HP39/eP5+vr/9fX1/+/w8P/s7Oz/6urq/+rq
- 6v/q6en/6enp/+np6f/p6en/6enp/+jo6P/o6Oj/5+jo/+jn6P/n5+f/5+bn/+bm5v/m5ub/5ubm/+bm
- 5v/m5ub/5eXl/+Xl5f/k5eX/5OTk/+Pk5P/j4+T/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//i4uL/4uLi/+Hh
- 4v/h4eH/4eHh/+Dg4f/g4OD/4ODg/9/g3//f39//39/f/9/f3//f39//3t7e/97e3v/e3t7/5OTk/+bm
- 5v/l5eb/5eXl/+Xl5f/l5eX/5eXl/+Xl5P/l5eT/5OTk/+Tk5P/k5OT/5OTk/+Tj5P/j4+P/4+Pj/+Li
- 4v/i4uL/4uLi/+Li4v/i4uL/4eLi/+Hh4f/h4eH/4eHh/+Li4v/l5eX/6enp/+7u7v/z8/P/+Pj4//n5
- +fPo6Oh8sbGxCsrKygAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+
- /gD+/v4c/f394/r6+v/19fX/8PDw/+zs7P/r6+v/6urr/+rq6v/q6un/6enp/+np6f/p6en/6enp/+jp
- 6f/o6On/6Ojo/+jn6P/n5+f/5+fn/+fm5//m5ub/5ubm/+bm5v/m5ub/5ubm/+bl5f/l5eX/5eXl/+Tk
- 5P/k5OT/5OPk/+Tj4//j4+P/4+Pj/+Pj4//j4+P/4uPi/+Li4v/i4eH/4eHh/+Hh4f/g4eH/4ODg/+Dg
- 4P/f3+D/39/f/9/f3//f39//397f/9/f3//k5OT/5ubm/+bm5v/m5ub/5ubl/+bl5f/l5eX/5eXl/+Xl
- 5f/l5eX/5eXk/+Xk5P/k5OT/5OTk/+Tk5P/k5OT/4+Pj/+Pj4//i4+P/4uLi/+Li4v/i4uL/4uLi/+Li
- 4f/i4uL/5ebm/+rq6v/u7u7/8/Tz//j4+P/5+fnz6Ojoe7GxsQnKysoAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/hz9/f3j+vr6//X19f/w8PH/7e3t/+zs
- 6//r6+v/6+vr/+rr6v/q6ur/6urq/+nq6v/p6en/6enp/+np6f/p6en/6ejo/+jo6P/o6Oj/5+jo/+fn
- 5//n5+f/5+bm/+bm5v/m5ub/5ubm/+bm5v/l5eX/5eXl/+Tl5f/k5eT/5OTk/+Tj5P/j4+P/4+Pj/+Pj
- 4//j4+P/4+Pj/+Lj4v/i4uL/4uLi/+Hh4v/h4eH/4OHg/+Dg4P/g4OD/3+Df/9/f3//f39//39/f/+Xl
- 5f/n5+b/5ubm/+bm5v/m5ub/5ubm/+bm5v/m5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5P/k5OT/5OTk/+Tk
- 5P/k5OT/5OTk/+Pj4//j4+P/4+Li/+Li4v/i4uL/4+Pj/+bm5v/q6ur/7+7v//T09P/4+Pj/+fn58+jo
- 6HuxsbEJysrKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAD+/v4A/v7+HP39/eP6+vr/9vb2//Hx8f/u7e3/7Ozs/+zs7P/s7Ov/6+vr/+vr6//q6+v/6urq/+rq
- 6v/p6un/6enp/+np6f/p6en/6enp/+jp6P/o6Oj/6Ojo/+jo5//n5+f/5+bn/+fm5//m5uf/5ubm/+bm
- 5v/m5ub/5eXl/+Xl5f/l5eX/5OXl/+Tk5P/j4+T/4+Pj/+Pj4//j4+P/4+Pj/+Lj4//i4uL/4uLi/+Li
- 4v/h4eH/4eHh/+Hh4f/g4OD/4ODg/+Df4P/g4OD/5eXl/+fo5//n5+f/5+fn/+bm5v/m5ub/5ubm/+bm
- 5v/m5eb/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/k5OX/5OTk/+Tk5P/k5OT/5OTk/+Tj5P/j4+P/4+Pj/+Tk
- 5P/m5uf/6+vr/+/v7//09PT/+Pj4//n5+fLo6Oh6sbGxCcrKygAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v4c/f394/r6+v/29vb/8fLy/+7u
- 7v/t7e3/7e3t/+zt7f/s7Oz/7Ozs/+vr7P/r6+v/6+vr/+rq6v/q6ur/6urp/+np6f/p6en/6enp/+np
- 6f/p6en/6Ojo/+jo6P/o6Oj/5+fn/+fn5//n5uf/5ubm/+bm5v/m5ub/5ubm/+bm5v/l5eX/5eTl/+Xk
- 5P/k5OT/5OTk/+Pj4//j4+P/4+Pj/+Pj4//j4+L/4uLi/+Li4v/i4uL/4eHh/+Hh4f/h4OH/4ODg/+Dg
- 4P/m5ub/6Ojo/+jo6P/n6Of/5+fn/+fn5v/m5ub/5ubm/+bm5v/m5ub/5ebm/+Xl5f/l5eX/5eXl/+Xl
- 5f/l5eX/5eXk/+Tk5P/k5OT/5OTk/+Tk5P/l5OT/5+fn/+vr6//v7/D/9PT0//j4+f/5+fny6urqdq6u
- rQjKysoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAA/v7+AP7+/hz9/f3j+vr6//b29v/y8vL/7u/u/+3t7f/t7e3/7e3t/+3t7f/t7O3/7Ozs/+zs
- 7P/r7Ov/6+vr/+vr6//q6ur/6urq/+nq6v/p6en/6enp/+np6f/p6en/6Onp/+jp6P/o6Oj/6Ojo/+fn
- 6P/n5+f/5+fm/+bm5v/m5ub/5ubm/+bm5v/m5eb/5eXl/+Xl5f/k5OT/5OTk/+Tk5P/k4+P/4+Pj/+Pj
- 4//j4+P/4+Pj/+Li4v/i4uL/4uHi/+Lh4v/h4eH/4eHh/+bm5v/o6Oj/6Ojo/+jo6P/n6Oj/5+fn/+fn
- 5//n5+f/5ubm/+bm5v/m5ub/5ubm/+bm5v/l5eb/5eXl/+Xl5f/l5eX/5eXl/+Xl5P/k5OT/5eXl/+fo
- 6P/r6+v/8PDw//T09f/5+fn/+fn58urq6nasrKwIy8vKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+HP39/eP6+vv/9/b3//Ly
- 8v/v7+//7u7t/+3t7f/t7e3/7e3t/+3t7f/t7e3/7O3s/+zs7P/s7Oz/6+zr/+vr6//r6uv/6urr/+rq
- 6v/q6un/6erp/+np6f/p6en/6enp/+np6f/o6On/6Ojo/+fo6P/n5+f/5+fn/+fm5v/m5ub/5ubm/+bm
- 5v/m5ub/5ubm/+Xl5f/l5eX/5OXk/+Tk5P/k5OT/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//i4+L/4uLi/+Lh
- 4v/i4uL/5+fn/+np6f/p6ej/6Ojo/+jo6P/o6Oj/6Ojo/+fo5//n5+f/5+fn/+fm5//m5ub/5ubm/+bm
- 5v/m5ub/5uXm/+Xl5f/l5eX/5eXl/+Xl5v/o6Oj/7Ozs//Dw8P/19fX/+fn5//r5+vLq6up2rKysCMrK
- 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
+ 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
+ vwXE4CgBQThOOEFA2U9y+jXEALFATBwjMKDM4B4xQ+yw8IwRfl5Px9Jexp546vPg0f4+s1Re+dtgZDqZ
+ r10CmmJsIWZsgL4ZLQJWZaHcLM9klRajtqwhoB9HKwF4a4vT/9DyJxaICWKDgT0+SEPMEDvEEA8VKj4t
+ Tfr6LE9nbYpX/JKYCgGFwgAh6szKQQZn6KfRZOPDjLQMGLihYBm9ZdUWA4hO/4UYIBaICWKDNfzM5xMz
+ xA6tSh4qxBQV35v7JTYKhcJBCGgRsHoQxUYMWJpJYdI64B0DFC4wduD0X4gBdpsSE8QGDw2e9MQMsUMM
+ EUvElFf8DjBtDagQMDpLq4BxAroIKDkFywxCCAM6Tv8hXv7EBLFBhedJT8wQO1rxvbnfgRaKAeMEQIEC
+ TTnHUTQuiBGt8F7pu8woTMdJws3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N
+ zc3Nzc3Nzc3Nza2M9r73/T9XFdyT+zuuLAAAAABJRU5ErkJggigAAACAAAAAAAEAAAEAIAAAAAAAAAAC
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAP7+/gD+/v4c/f394/v6+//39/f/8/Pz//Dw8P/v7+7/7u7u/+7u7v/u7e7/7e3t/+3t
- 7f/t7e3/7e3t/+zt7P/s7Oz/7Ozs/+vr7P/r6+v/6+vr/+rq6v/q6ur/6urq/+rp6f/p6en/6enp/+np
- 6f/p6en/6Ojo/+jo6P/o6Of/5+fn/+fn5//m5uf/5ubm/+bm5v/m5ub/5ubm/+bm5v/l5uX/5eXl/+Xk
- 5f/k5OT/5OTk/+Tj5P/j4+P/4+Pj/+Pj4//j4+P/4+Li/+Pj4//n5+f/6enp/+np6f/p6en/6ejp/+jo
- 6P/o6Oj/6Ojo/+jo6P/o6Of/5+fn/+fn5//n5uf/5ubm/+bm5v/m5ub/5ubm/+Xm5v/m5ub/6enp/+zs
- 7P/x8PD/9fX1//n5+f/6+vrw6+vrdKysrAjKysoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/hz9/f3j+/v7//f3
- 9//z9PP/8PDw/+/v7//v7+//7+/v/+7u7v/u7u7/7u3t/+3t7f/t7e3/7e3t/+3t7f/s7e3/7Ozs/+zs
- 7P/r7Ov/6+vr/+vr6//r6uv/6urq/+nq6f/p6en/6enp/+np6f/p6en/6enp/+np6P/o6Oj/6Ojo/+fn
- 5//n5+f/5+fn/+bm5v/m5ub/5ubm/+bm5v/l5ub/5eXl/+Xl5f/k5eX/5OXk/+Tk5P/k4+P/4+Pj/+Pj
- 4//j4+P/4+Pj/+jo5//p6un/6enp/+np6f/p6en/6enp/+np6f/o6Oj/6Ojo/+jo6P/o6Oj/6Ofn/+fn
- 5//n5+f/5ubn/+bm5v/m5ub/5+fn/+np6f/t7e3/8fHx//X19f/5+fn/+vr68Ozs7HCrq6sHzc3NAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAD+/v4A/v7+HP39/eP7+/v/+Pf3//T09P/x8fH/8PDw//Dw8P/v8O//7+/v/+/v
- 7//u7u7/7u7u/+3u7f/t7e3/7e3t/+3t7f/t7e3/7e3t/+zs7P/r7Oz/7Ozs/+vr6//r6+r/6+rq/+rq
- 6v/q6ur/6enp/+np6f/p6en/6enp/+np6f/p6Oj/6Ojo/+jo6P/n5+f/5+fn/+fn5//m5ub/5ubm/+bm
- 5v/m5ub/5ubm/+Xl5v/l5eX/5eXl/+Tk5P/k5OT/5OTk/+Pj4//j4+T/6Ojo/+rq6v/p6un/6enp/+np
- 6f/p6en/6enp/+np6f/o6On/6Ojo/+jo6P/o6Oj/6Ojo/+jo5//n5+f/5+fn/+fn6P/q6ur/7e3t//Hx
- 8f/19fX/+fn5//r6+vDs7OxwqqqqBs7OzgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v4c/f394/v7
- +//4+Pj/9PT0//Hx8f/w8PD/8PDw//Dw8P/w8PD/7+/w/+/v7//v7+//7u7u/+7u7v/u7u3/7u3t/+3t
- 7f/t7e3/7e3t/+3t7f/s7e3/7Ozs/+zs6//r6+v/6+vr/+vr6v/q6ur/6urq/+np6f/p6en/6enp/+np
- 6f/p6en/6ejp/+jo6P/o6Oj/5+fn/+fn5//n5+f/5ufm/+bm5v/m5ub/5ubm/+bm5v/l5eb/5eXl/+Xk
- 5f/k5OT/5OTk/+Tk5P/o6Oj/6urq/+rq6v/q6ur/6urq/+rq6v/p6en/6enp/+np6f/p6en/6ejp/+jo
- 6P/o6Oj/6Ojo/+jo6P/o6Oj/6+rq/+7u7v/y8vL/9fX2//n5+f/6+vrw7OzscKqqqgbOzs4AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/hz9/f3j+/v7//j4+P/19fX/8vLy//Hx8f/w8PD/8PDw//Dw
- 8P/w8PD/8PDw//Dv7//v7+//7+/v/+7u7v/u7u7/7u3u/+3t7f/t7e3/7e3t/+3t7f/t7ez/7Ozs/+zs
- 7P/s7Oz/6+vr/+vr6//r6ur/6uvq/+rq6v/q6en/6enp/+np6f/p6en/6enp/+no6f/o6Oj/6Ojo/+fn
- 6P/n5+f/5+fm/+fm5//m5ub/5ubm/+bm5v/m5ub/5ubm/+Xl5f/l5eX/5eXl/+np6f/r6+v/6urq/+rq
- 6v/q6ur/6urq/+rq6v/p6er/6enp/+np6f/p6en/6enp/+no6f/o6Oj/6enp/+vr6//u7u7/8vLy//b2
- 9v/5+vr/+/v77+3u7W6qqqoGzs7OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+HP39
- /eP7+/v/+Pj4//X19f/y8vP/8fHy//Hx8f/x8fH/8fDw//Dw8P/w8PD/8PDw//Dw8P/v8PD/7+/v/+/v
- 7//v7u//7u7u/+7u7v/t7e3/7e3t/+3t7f/t7e3/7e3t/+zs7f/s7Oz/7Ozs/+vr6//r6+v/6+vr/+rq
- 6v/q6ur/6erq/+np6f/p6en/6enp/+np6f/p6en/6Ojo/+jo6P/n6Oj/5+fn/+fn5//n5ub/5ubm/+bm
- 5v/m5ub/5ubm/+Xl5f/m5uX/6urq/+zs6//r6+v/6+vr/+rq6v/q6ur/6urq/+rq6v/q6ur/6enp/+np
- 6f/p6en/6enp/+np6f/s6+z/7+7v//Ly8v/29vb/+vr6//v7++/v7+9roKCfBc7OzgAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v4c/f394/v7/P/5+fn/9vb2//Pz8//y8vL/8vLy//Hx
- 8v/x8fH/8fHx//Hw8P/w8PD/8PDw//Dw8P/w8PD/8O/w/+/v7//v7+//7u7u/+7u7v/u7u7/7e3t/+3t
- 7f/t7e3/7e3t/+3s7f/t7Oz/7Ozs/+zs7P/r7Ov/6+vr/+vr6//q6ur/6urq/+nq6f/p6en/6enp/+np
- 6f/p6en/6enp/+jo6f/o6Oj/6Ojn/+fn5//n5+f/5+bm/+bm5v/m5ub/5ubm/+bm5v/q6+r/7Ozs/+zs
- 7P/r7Ov/6+vr/+vr6//q6ur/6urq/+rq6v/q6ur/6urq/+nq6f/q6ur/7Ozs/+/w7//z8vP/9vb2//r6
- +v/7+/vv7+/va6CgoAXOzs4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+
- /hz9/f3j/Pz8//n5+f/29vb/8/P0//Pz8//z8/P/8vPy//Ly8v/y8vL/8fHx//Hx8f/x8PH/8PDw//Dw
- 8P/w8PD/8PDw//Dv8P/v7+//7+/u/+7v7v/u7u7/7u7u/+7t7f/t7e3/7e3t/+3t7f/t7e3/7Ozt/+zs
- 7P/s7Oz/6+zs/+vr6//r6+v/6uvq/+rq6v/q6ur/6erp/+np6f/p6en/6enp/+np6f/o6Oj/6Ojo/+fo
- 6P/o5+f/5+fn/+fm5//m5ub/5ubm/+vr6//s7Oz/7Ozs/+zs7P/s7Oz/6+zs/+vr6//r6+v/6+rr/+rq
- 6v/q6ur/6+vr/+zt7f/w8PD/8/Pz//b39v/6+vr/+/v77+/v72ugoKAFzs7OAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+HP39/eP8/Pz/+fn5//b29//09PT/8/Pz//Pz
- 8//z8/P/8/Pz//Ly8v/y8vL/8vLy//Lx8f/x8fH/8PDx//Dw8P/w8PD/8PDw//Dw8P/v8PD/7/Dv/+/v
- 7//u7+7/7u7u/+7u7v/u7e7/7e3t/+3t7f/t7e3/7e3t/+3t7f/s7Oz/7Ozs/+vs6//r6+v/6+vr/+rq
- 6v/q6ur/6unq/+np6f/p6en/6enp/+np6f/o6en/6Ono/+jo6P/o6Of/5+jo/+fn5//n5+f/6+vr/+3t
- 7f/s7e3/7Ozs/+zs7P/s7Oz/7Ozs/+vs7P/r6+v/6+vr/+zs7P/u7u7/8fDx//P08//39/f/+vr6//v7
- ++3w8PBpoKCgBc7OzgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+
- /gD+/v4c/f394/z8/P/5+vn/9/f3//X09P/09PT/8/P0//Pz8//z8/P/8/Pz//Lz8//z8vL/8vLy//Ly
- 8v/x8fH/8fHx//Hw8f/w8PH/8PDw//Dw8P/w8PD/8PDw/+/w7//v7+//7+/v/+7u7//u7u7/7e3t/+3t
- 7f/t7e3/7e3t/+3t7f/t7ez/7O3s/+zs7P/r6+z/6+vr/+rr6//q6uv/6urq/+rq6v/p6en/6enp/+np
- 6f/p6en/6ejp/+no6f/o6Oj/6Ojo/+jo6P/s7Oz/7e3t/+3t7f/t7e3/7e3s/+zs7P/s7Oz/7Ozs/+zs
- 7P/t7e3/7+/v//Hx8f/09PT/9/j3//r6+v/7+/vt8vLyZpycnAPU1NQAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/hz9/f3j/Pz8//r6+v/49/f/9fb1//T0
- 9P/09PT/9PT0//Pz8//z8/P/8/Pz//Pz8//z8/P/8vLz//Ly8v/y8vL/8fHy//Hx8f/x8PH/8PDw//Dw
- 8P/w8PD/8PDw//Dw8P/w7+//7+/v/+/v7//u7u7/7u7u/+3u7f/t7e3/7e3t/+3t7f/t7e3/7e3t/+zs
- 7P/s7Oz/6+zs/+vr6//r6+v/6urr/+rq6v/q6ur/6enp/+np6f/p6en/6enp/+no6f/o6ej/6eno/+zs
- 7P/t7u3/7e3t/+3t7f/t7e3/7e3t/+zs7f/s7O3/7e3t//Dw8P/y8vL/9fX1//j4+P/7+/v/+/v77fLy
- 8macnJwD1NTUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAD+/v4A/v7+HP39/eP8/Pz/+vr6//j4+P/29vb/9vb1//X19f/19fX/9PT0//T09P/z8/P/8/Pz//Pz
- 8//z8/P/8/Pz//Lz8v/y8vL/8vLy//Hx8v/x8fH/8fHw//Dw8P/w8PD/8PDw//Dw8P/w8PD/7+/w/+/v
- 7//v7+//7u7v/+7u7v/u7u7/7e3t/+3t7f/t7e3/7e3t/+zt7f/s7Oz/7Ozs/+vs7P/r6+z/6+vr/+rr
- 6//q6ur/6urq/+rp6v/p6en/6enp/+np6f/p6en/7e3t/+7u7v/u7u7/7e3t/+3t7f/t7e3/7e3t/+7u
- 7v/w8PD/8/Pz//b29v/5+fn/+/v7//r6+u3y8vJmnJycA9TU1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v4c/f394/z8/P/6+vv/+Pj4//f3
- 9//29vb/9vb1//X19v/19fX/9fT1//T09P/09PT/8/Pz//Pz8//z8/P/8/Pz//Pz8v/z8vL/8vPy//Hy
- 8v/y8vH/8fHx//Hx8f/w8PD/8PDw//Dw8P/w8PD/8PDw//Dv8P/v7+//7+/v/+7u7v/u7u7/7u7t/+3t
- 7f/t7e3/7e3t/+3t7f/t7e3/7O3s/+zs7P/r7Oz/6+vr/+vr6//q6+v/6urq/+rq6v/p6er/6enp/+np
- 6f/t7e3/7u7u/+7u7v/u7u7/7u7u/+3t7v/v7+7/8fHx//Tz8//29vb/+fn5//z8/P/v7+/r2dnZY7e3
- twTU1NQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAA/v7+AP7+/hz9/v3j/fz8//v7+//5+fn/9/f3//f39//39vb/9vb2//b19v/19fX/9fX1//T1
- 9f/09PT/9PT0//Tz8//z8/P/8/Pz//Pz8//z8/P/8vPz//Ly8v/y8vL/8vHx//Hx8f/x8fH/8PDw//Dw
- 8P/w8PD/8PDw//Dw8P/w7+//7+/v/+/v7//u7u7/7u7u/+3u7v/t7e7/7e3t/+3t7f/t7e3/7e3t/+zt
- 7P/s7Oz/7Ozs/+vr6//r6+v/6+vq/+rq6v/q6ur/6urq/+7u7f/v7+//7u7v/+7u7v/u7u7/7+/v//Hx
- 8f/09PT/9/f2//r5+v/8/Pz/7+/v69PT02CEhIQCu7u7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+HP7+/uP9/f3/+/v7//n5
- +f/3+Pj/9/f3//f39//39/f/9vb3//b29v/29vb/9fX2//X19f/19fX/9PT0//T09P/z9PP/8/Pz//Pz
- 8//z8/P/8/Pz//Lz8//y8vL/8vLy//Ly8f/x8fH/8fHx//Hw8P/w8PD/8PDw//Dw8P/w8PD/8PDw/+/v
- 7//v7+//7u7v/+7v7v/u7u7/7u3u/+3t7f/t7e3/7e3t/+3t7f/s7ez/7Ozs/+zs7P/s6+v/6+vr/+rr
- 6//r6uv/7u7u//Dw8P/v7/D/7+/v//Dw8P/y8vL/9PT0//f39//6+vr//Pz8/+/v7+vT09NghISEAru7
- uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAP7+/gD+/v4c/v7+4/39/f/7+/v/+vr6//j4+P/39/f/9/f3//f39//39/f/9/f3//b3
- 9//29vb/9vb2//X19v/19fX/9fX1//T09P/09PT/9PT0//Pz8//z8/P/8/Pz//Pz8//z8vP/8/Ly//Ly
- 8v/y8fL/8fHx//Hx8f/x8fH/8PDx//Dw8P/w8PD/8PDw/+/w7//v7+//7+/v/+7v7//u7u7/7u7u/+3t
- 7f/t7e3/7e3t/+3t7f/t7e3/7O3t/+zs7P/s7Oz/6+vr/+vr6//v7+7/8PDw//Dw8P/x8fD/8vLy//X1
- 9f/49/f/+vr6//z8/P/v7+/q09PTYISEhAK7u7sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/hz+/v7j/f39//z8
- +//6+vr/+fn5//j4+P/3+Pj/+Pf4//f39//39/f/9/f3//f39//29/f/9vb2//b29v/29fX/9fX1//X1
- 9P/09fT/9PT0//T09P/z8/P/8/Pz//Pz8//z8/P/8/Pz//Ly8//y8vL/8vLy//Hx8f/x8fH/8PHx//Dw
- 8P/w8PD/8PDw//Dw8P/w7/D/7+/v/+/v7//u7+//7u7u/+7u7v/u7u3/7e3t/+3t7f/t7e3/7e3t/+3t
- 7P/s7Oz/7Ozs/+/v7//w8PD/8fHx//Pz8//19fX/+Pj4//r6+v/8/Pz/7+/v6dPT012CgoICurq6AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAD+/v4A/v7+HP7+/uP9/f3//Pz8//v6+v/6+fr/+fn5//n5+f/4+Pj/+Pj4//j4
- +P/39/f/9/f3//f39//39/f/9/f2//b29v/29vb/9fb2//X19f/19fX/9PT1//T09P/09PT/8/P0//Pz
- 8//z8/P/8/Pz//Py8//y8vL/8vLy//Hy8v/x8fL/8fHx//Hx8P/w8PD/8PDw//Dw8P/w8PD/7/Dw/+/w
- 7//v7+//7+/v/+7u7v/u7u7/7u7u/+3t7f/t7e3/7e3t/+3t7f/t7e3/8O/v//Ly8v/z8/P/9fX1//j4
- +P/6+vr//Pz8/+/v7+nU1NRcenp6Ar29vQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v4c/v7+4/39
- /f/8/Pz/+/v7//r6+v/6+vr/+fn5//n5+f/5+fn/+Pj4//j4+P/39/j/9/f3//f39//39/f/9/f3//f3
- 9//29vb/9vb2//b29f/19fX/9fX1//X09P/09PT/9PT0//P08//z8/P/8/Pz//Pz8//z8/P/8/Lz//Ly
- 8v/y8fL/8fHy//Hx8f/x8fH/8PDw//Dw8P/w8PD/8PDw//Dw7//v7+//7+/v/+7v7//u7+7/7u7u/+7t
- 7v/t7e3/7e3t/+3t7f/x8fH/9PT0//b29v/4+Pj/+vr6//39/f/v7+/p1NTUXHp6egK9vb0AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/hz+/v7j/f39//39/f/7+/z/+/r6//r6+v/6+vr/+vr6//n5
- +v/5+fn/+fn5//j5+P/3+Pj/9/j4//f39//39/f/9/f3//f39//39/b/9vb2//b29v/29vb/9fX1//X1
- 9f/09PX/9PT0//T09P/z8/T/8/Pz//Pz8//z8/P/8/Lz//Py8//y8vP/8vLy//Hy8v/x8fH/8fHx//Dw
- 8P/w8PD/8PDw//Dw8P/w8PD/7/Dw/+/v7//v7+7/7u7u/+7u7v/u7u7/7+/v//Pz8//29vb/+Pn5//v7
- +//9/f3/8PDv6dTU1Ft6enoCvb29AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+HP7+
- /uP9/v7//f39//z8/P/7+/v/+vr6//r6+v/6+vr/+vr6//r6+v/6+vn/+fr5//n5+f/4+fj/+Pj4//j4
- +P/39/f/9/f3//f39//39/f/9/f3//f29//29vb/9vb1//X19v/19fX/9fX1//T09P/09PT/9PT0//Pz
- 8//z8/P/8/Pz//Pz8//z8/P/8vLy//Ly8v/x8vL/8fHx//Hx8f/x8fD/8PDw//Dw8P/w8PD/8PDw/+/w
- 7//v7+//7+/v//Dv8P/y8vL/9vb2//n5+f/7+/v//f39/+/v7+fU1NRYenl6Ab+/vwAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAGAAAA
+ CAAAAAoAAAAKAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAA
+ CwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAA
+ CwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAA
+ CwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAA
+ CwAAAAsAAAALAAAACwAAAAsAAAALAAAACgAAAAoAAAAIAAAABQAAAAMAAAABAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8c/v7+4/7+/v/9/f3//f39//z8/P/7/Pv/+/v7//v7
- +//7+/v/+/r6//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/5+fn/+fj5//j4+P/4+Pj/+Pj4//j3
- +P/49/f/9/f3//b39//29/b/9vb2//b29v/29vb/9fX2//X19f/19fX/9fX1//T09f/09PX/9PT0//T0
- 9P/09PT/8/Pz//Pz8//z8/P/8vPy//Ly8v/y8vL/8vLy//Hy8v/y8vL/8/Pz//X19f/4+Pj/+/v7//39
- /f/v7+/n09PTV11dXQG7u7sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAQAAAAQAAAALAAAAFAAAAB4AAAAlAAAAKwAAACwAAAAtAAAALQAAAC0AAAAtAAAA
+ LQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAA
+ LQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAA
+ LQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAA
+ LQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAsAAAA
+ KgAAACUAAAAdAAAAFAAAAAsAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1dXVAM3N
- zRvs7Ozh//////7+/v/9/f3//f39//39/f/9/Pz//Pz9//z8/P/8/Pz//Pz8//v8/P/7/Pz/+/v7//v7
- +//7+/v/+/v6//r7+v/6+vr/+vr6//r6+v/6+vr/+vr6//r5+f/5+fn/+fn5//n5+f/5+fn/+fn5//j4
- +f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/39/j/9/f3//f39//39/f/9vb2//b29v/29vb/9vb2//b2
- 9v/29vX/9fb2//b29v/39/f/+Pj5//v7+//9/f3/7+/v59PT01ddXV0Bu7u7AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAJAAAAFwAAACoAAABBAAAA
+ VAAAAGEAAABpAAAAbAAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAA
+ bQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAA
+ bQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAA
+ bQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAA
+ bQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAGwAAABpAAAAYQAAAFIAAABBAAAALAAAABkAAAAMAAAA
+ AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAEAAAADwAAACMAAABBAAAAYgAAAIGmpqbN/v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+
+ //7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+
+ //7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+
+ //7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+
+ //7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+
+ ///////+/v7/p6enzAAAAIEAAABlAAAARgAAACoAAAATAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChoaEAd3d3CuLi4qn+/v7//v7+//7+/v/+/v7//v7+//39
- /f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//Pz9//z8/f/8/fz//Pz8//z8/P/8/Pz//Pz8//z8
- /P/8/Pz//Pz8//z8/P/7+/z/+/v8//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//r6
- +//6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr5//n6+f/5+fn/+vr6//r6+v/8/Pv//f39//Dw
- 8ObT09NXXV1dAbu7uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABEAAAArAAAAUgAAAHz/////////
+ //7+/v+YmJj/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/5mZmf////////////////8AAACEAAAA
+ XAAAADcAAAAaAAAACAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGFh
- YQDb29sAzMzMMfDw8Mb39/f9/f39//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+
- /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v3+//39/f/9/f3//f39//39/f/9/f3//f39//39
- /f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f38//z9/P/8/Pz//Pz8//z8
- /P/8/Pz//Pz8//z8/P/8/Pz//f39//39/f/v7+/l1NTUU0ZGRgG+vr4AAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAIAAAAPAAAALAAAAFgAAACL//////v7+/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/5OTk///////Y2NjlAAAAawAAAD0AAAAbAAAACAAAAAEAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAACUAAABTJSUllf////9LS0v/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AgIC
+ ////////////AAAAbgAAADwAAAAYAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHp6egAAAAAAwsLCH8fHx2v39/d//v7+f/7+
- /n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+
- /n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+
- /n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5/+fn5f9TU
- 1EWCgoIBvLy8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAQAAAAaAAAARQAAAID/////ExMT/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA///////+/v7/AAAAaAAAADQAAAAQAAAA
+ AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////////////////////wAAAAAAAAAAAAAA//////
- 4AAAAAAAAAAAAAAH/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD
- /////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAA
- AAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAA
- AAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////
- wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD
- /////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAA
- AAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAA
- AAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////
- wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD
- /////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAA
- AAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAA
- AAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////
- wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD
- /////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAA
- AAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAA
- AAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////
- wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD
- /////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAA
- AAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAA
- AAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////
- wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD
- /////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAA
- AAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAA
- AAAAAAAAAAf/////wAAAAAAAAAAAAAAP/////8AAAAAAAAAAAAAAH//////AAAAAAAAAAAAAAD//////
- wAAAAAAAAAAAAAB//////8AAAAAAAAAAAAAA///////AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAP/
- /////8AAAAAAAAAAAAAH///////AAAAAAAAAAAAAD///////wAAAAAAAAAAAAB///////8AAAAAAAAAA
- AAA////////AAAAAAAAAAAAAf///////wAAAAAAAAAAAAP///////8AAAAAAAAAAAAH////////AAAAA
- AAAAAAAD////////wAAAAAAAAAAAB////////8AAAAAAAAAAAA/////////AAAAAAAAAAAAf////////
- wAAAAAAAAAAAP////////8AAAAAAAAAAAH/////////AAAAAAAAAAAD/////////wAAAAAAAAAAB////
- /////8AAAAAAAAAAA//////////AAAAAAAAAAAf/////////wAAAAAAAAAAP/////////8AAAAAAAAAA
- H//////////AAAAAAAAAAD//////////wAAAAAAAAAB//////////8AAAAAAAAAA///////////AAAAA
- AAAAAf//////////wAAAAAAAAAP//////////8AAAAAAAAAH///////////AAAAAAAAAD///////////
- wAAAAAAAAB///////////8AAAAAAAAA////////////AAAAAAAAAf///////////4AAAAAAAAP//////
- //////AAAAAAAAH//////////////////////////////4lQTkcNChoKAAAADUlIRFIAAAEAAAABAAgG
- AAAAXHKoZgAAgABJREFUeNrtvTuwLdl5Hvb9q/c+cwfPIYEBxBFcGjwImpmrREOhiwQlMpACUZETSiLN
- wIEjh1ZZlqXQkQMnNFVFBs4MB1JJRYKlWIJVZTuiBBT4KEBEYTjggMBwZu7ZvdbvYP3P1d37nHvPOffu
- Bs6aunP27t29Xr3+9wt4bI/tsT22x/bYHttje2yP7bH9GDV62RO4TfvN3/zNzz558uSfP3ny5G/8vb/3
- 91592fP5cWtEhH/zb/7NN0sp/8XP//zPv/uy5/PY7q9dPAL47d/+7X/yq7/6q/8jM7/sqWw3BkAAg/37
- j0ojgOSY/Nt/+2+/+/Tp0y88IoEfnXbRCOC3f/u3/+mv/uqv/qO7Aj/r/4hBAC4ZlzzzypjAxA+CdIho
- 8f0RCfxotYtFAL/1W7/107/2a7/29VsDvxFf9pW9IEDvDEAHxmEWz9gLwKGP55kJMwCSxd9h/dRJf0cC
- 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
- A1cQLxcXdYCqViEQqHSt/1QOOBy7fupqmttsAAABnklEQVTq6qrrAo5HHKYjSpnwwQcffO0Bpn8v7WIR
- wPX19W+UUr4+XicitNpEGdjAzCYWvPx2s3x706Mx1v9W/O4aID4Pm3xfO+CTv68eERN7GHtwq2Fc0blW
- 2/B2o3sqNO+y99vF0C4GTGXCdJhwOBw6RyBiAJWC6+vr/+Zhd/3528UigF//9V//Rinln/yDf/AP/rFe
- U6VgmxoO7AggyvL3cfajYszk8YciQy+4uWj7LID0jGMg+ztG2L1Tryn91w1l1B9i7+JaAJRBUV2mCYep
- KwanqaBQwe/8zu/8s1//9V//xoub5bO1i0UAAPAP/+E//J8AQJGAbjSrI438exnNzXAj2/8Sye+zLSAr
- ubY8Jy+2Bc9Cc1l+8bNXTX93AppA6CJqKQW/8zu/8z///b//9//x3Ud5uHa56snQfvM3f/OzT548+edP
- njz5G7/yK7/yKoCXBvj7aZF1ftlzufSWtQFL1ogWv4zfusMP8H995Svvf/DBB//ugw8++LXf+I3f+KOX
- vbLH9tge22N7bI/tsT22x/bYHttjC+3/B71iqRn22EDpAAAAAElFTkSuQmCC
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAADQAAAC8AAABo/v7+/2tra/8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA////////////AAAAVgAAACQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAQAAAAZAAAASc3Nzdj+/v7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAAB7AAAA
+ PQAAABMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAACgAAABi/////wMDA/8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wMDA/8ZGRn/Gxsb/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc
+ /xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc
+ /xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc
+ /xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc
+ /xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/Gxsb/woKCv8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/sbGx//////8AAABYAAAAIgAAAAcAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAPAAAANwAAAHj/////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xcXF/8fHx//IyMj
+ /yUlJf8nJyf/Jycn/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo
+ /ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo
+ /ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo
+ /ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo
+ /ycnJ/8nJyf/JiYm/yMjI/8gICD/Ghoa/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////
+ /wAAAHEAAAAyAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAABUAAABE/////4iIiP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8TExP/Hx8f/yUlJf8pKSn/Kysr/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t
+ /y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t
+ /y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t
+ /y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t
+ /y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8sLCz/Kioq/ycnJ/8iIiL/Gxsb
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP/r6+v/ycnJ0gAAAEAAAAATAAAAAQAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAADAAAAGgAAAE/+/v7/Dw8P/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/x0dHf8kJCT/Kioq
+ /y4uLv8wMDD/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx
+ /zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx
+ /zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx
+ /zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx
+ /zExMf8xMTH/MTEx/zAwMP8vLy//LCws/ygoKP8hISH/Ghoa/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /xEREf/+/v7/AAAATQAAABkAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAeAAAAVv////8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/ICAg/ycnJ/8tLS3/MTEx/zIyMv8zMzP/MzMz/zMzM/8zMzP/MzMz
+ /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz
+ /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz
+ /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz
+ /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MjIy/zIyMv8wMDD/LCws
+ /yUlJf8eHh7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAABVAAAAHQAAAAQAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAABQAAACAAAABa/////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wgICP8iIiL/KSkp
+ /y8vL/8yMjL/MzMz/zQ0NP80NDT/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/paWl
+ /zQ0NP80NDT/NDQ0/0tLS/+np6f/p6en/6enp/+np6f/NDQ0/zQ0NP80NDT/Q0ND/6enp/+np6f/p6en
+ /6enp/+np6f/p6en/6enp/+np6f/p6en/zQ0NP+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en
+ /0pKSv80NDT/NDQ0/6enp/+np6f/p6en/6enp/80NDT/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en
+ /6enp/+np6f/p6en/zQ0NP80NDT/MzMz/zExMf8uLi7/KCgo/yEhIf8HBwf/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD//////wAAAFkAAAAgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAIQAAAFv/////AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/GRkZ/yQkJP8rKyv/MTEx/zMzM/80NDT/NDQ0/zQ0NP+urq7/rq6u
+ /66urv+urq7/rq6u/66urv+urq7/rq6u/66urv+rq6v/NDQ0/zQ0NP80NDT/TExM/66urv+urq7/rq6u
+ /66urv80NDT/NDQ0/zQ0NP9ERET/rq6u/66urv+urq7/rq6u/66urv+urq7/rq6u/66urv+urq7/NDQ0
+ /66urv+urq7/rq6u/66urv+urq7/rq6u/66urv+urq7/rq6u/66urv80NDT/rq6u/66urv+urq7/rq6u
+ /zQ0NP+urq7/rq6u/66urv+urq7/rq6u/66urv+urq7/rq6u/66urv+urq7/NDQ0/zQ0NP80NDT/MjIy
+ /y8vL/8qKir/IyMj/xkZGf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAAWwAAACEAAAAFAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAUAAAAhAAAAW/////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8cHBz/JSUl
+ /ywsLP8xMTH/MzMz/zU1Nf81NTX/NTU1/6Ghof+hoaH/oaGh/6Ghof+hoaH/oqKi/7Ozs/+zs7P/s7Oz
+ /7CwsP81NTX/NTU1/zU1Nf9OTk7/s7Oz/7Ozs/+zs7P/s7Oz/zU1Nf81NTX/NTU1/0RERP+zs7P/s7Oz
+ /7Ozs/+zs7P/oaGh/7Ozs/+zs7P/s7Oz/7Ozs/80NDT/s7Oz/7Ozs/+zs7P/s7Oz/6CgoP+goKD/s7Oz
+ /7Ozs/+zs7P/s7Oz/zQ0NP+zs7P/s7Oz/7Ozs/+zs7P/NDQ0/7Ozs/+zs7P/s7Oz/7Ozs/+goKD/oKCg
+ /7Ozs/+zs7P/s7Oz/7Ozs/80NDT/NDQ0/zQ0NP8yMjL/MDAw/ysrK/8kJCT/Gxsb/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA//////8AAABbAAAAIQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc////
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xwcHP8lJSX/LCws/zExMf8zMzP/NTU1/zU1Nf81NTX/NTU1
+ /zU1Nf81NTX/NTU1/zU1Nf81NTX/urq6/7q6uv+6urr/t7e3/zU1Nf81NTX/NTU1/05OTv+6urr/urq6
+ /7q6uv+6urr/NTU1/zU1Nf81NTX/RUVF/7q6uv+6urr/urq6/7S0tP81NTX/urq6/7q6uv+6urr/urq6
+ /zU1Nf+6urr/urq6/7q6uv+6urr/NTU1/zU1Nf+6urr/urq6/7q6uv+6urr/NTU1/7q6uv+6urr/urq6
+ /7q6uv81NTX/urq6/7q6uv+6urr/urq6/zU1Nf81NTX/urq6/7q6uv+6urr/urq6/zU1Nf81NTX/NTU1
+ /zMzM/8xMTH/LCws/yUlJf8cHBz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAFwAAAAiAAAA
+ BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/HBwc
+ /yUlJf8sLCz/MTEx/zMzM/81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf/BwcH/wcHB
+ /8HBwf++vr7/NTU1/zU1Nf81NTX/T09P/8HBwf/BwcH/wcHB/8HBwf81NTX/NTU1/zU1Nf9ERET/wcHB
+ /8HBwf/BwcH/u7u7/zU1Nf/BwcH/wcHB/8HBwf/BwcH/NTU1/8HBwf/BwcH/wcHB/8HBwf81NTX/NTU1
+ /8HBwf/BwcH/wcHB/8HBwf81NTX/wcHB/8HBwf/BwcH/wcHB/zU1Nf/BwcH/wcHB/8HBwf/BwcH/NTU1
+ /zU1Nf/BwcH/wcHB/8HBwf/BwcH/NTU1/zU1Nf81NTX/MzMz/zExMf8sLCz/JSUl/xwcHP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP//////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAA
+ XP////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8dHR3/JiYm/y0tLf8yMjL/NDQ0/zY2Nv82Njb/NjY2
+ /8jIyP/IyMj/yMjI/8jIyP/IyMj/yMjI/8jIyP/IyMj/yMjI/8TExP82Njb/NjY2/zY2Nv9RUVH/yMjI
+ /8jIyP/IyMj/yMjI/zY2Nv82Njb/NTU1/0ZGRv/IyMj/yMjI/8jIyP/BwcH/NTU1/8jIyP/IyMj/yMjI
+ /8jIyP81NTX/yMjI/8jIyP/IyMj/yMjI/zU1Nf81NTX/yMjI/8jIyP/IyMj/yMjI/zU1Nf/IyMj/yMjI
+ /8jIyP/IyMj/NTU1/8jIyP/IyMj/yMjI/8jIyP81NTX/NTU1/8jIyP/IyMj/yMjI/8jIyP81NTX/NTU1
+ /zU1Nf8zMzP/MTEx/ywsLP8lJSX/HBwc/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAABcAAAA
+ IgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /x0dHf8mJib/LS0t/zIyMv80NDT/NjY2/zY2Nv82Njb/z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P
+ /8/Pz//Pz8//y8vL/zY2Nv82Njb/NjY2/1FRUf/Pz8//z8/P/8/Pz//Pz8//NjY2/zY2Nv82Njb/R0dH
+ /8/Pz//Pz8//z8/P/8jIyP82Njb/z8/P/8/Pz//Pz8//z8/P/zY2Nv/Pz8//z8/P/8/Pz//Pz8//NjY2
+ /zY2Nv/Pz8//z8/P/8/Pz//Pz8//NjY2/8/Pz//Pz8//z8/P/8/Pz/82Njb/z8/P/8/Pz//Pz8//z8/P
+ /zY2Nv82Njb/z8/P/8/Pz//Pz8//z8/P/zY2Nv82Njb/NTU1/zMzM/8xMTH/LCws/yUlJf8cHBz/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAA
+ IgAAAFz/////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/HR0d/yYmJv8tLS3/MjIy/zQ0NP82Njb/NjY2
+ /zY2Nv/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/R0dH/NjY2/zY2Nv82Njb/UlJS
+ /9XV1f/V1dX/1dXV/9XV1f82Njb/NjY2/zY2Nv9HR0f/1dXV/9XV1f/V1dX/zc3N/zY2Nv/V1dX/1dXV
+ /9XV1f/V1dX/NjY2/9XV1f/V1dX/1dXV/9XV1f82Njb/NjY2/9XV1f/V1dX/1dXV/9XV1f82Njb/1dXV
+ /9XV1f/V1dX/1dXV/zY2Nv/V1dX/1dXV/9XV1f/V1dX/NjY2/zY2Nv/V1dX/1dXV/9XV1f/V1dX/NjY2
+ /zY2Nv82Njb/NDQ0/zIyMv8tLS3/JiYm/x0dHf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAA
+ XAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8dHR3/JiYm/y0tLf8yMjL/NDQ0/zY2Nv82Njb/NjY2/9zc3P/c3Nz/3Nzc/9zc3P82Njb/NjY2
+ /zY2Nv82Njb/NjY2/zY2Nv82Njb/NjY2/zY2Nv9TU1P/3Nzc/9zc3P/c3Nz/3Nzc/zY2Nv82Njb/NjY2
+ /0hISP/c3Nz/3Nzc/9zc3P/U1NT/NjY2/9zc3P/c3Nz/3Nzc/9zc3P82Njb/3Nzc/9zc3P/c3Nz/3Nzc
+ /zY2Nv82Njb/3Nzc/9zc3P/c3Nz/3Nzc/zY2Nv/c3Nz/3Nzc/9zc3P/c3Nz/NjY2/9zc3P/c3Nz/3Nzc
+ /9zc3P82Njb/NjY2/9zc3P/c3Nz/3Nzc/9zc3P82Njb/NjY2/zY2Nv80NDT/MjIy/y0tLf8mJib/HR0d
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ BgAAACIAAABc/////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/x0dHf8nJyf/Li4u/zMzM/81NTX/Nzc3
+ /zc3N/83Nzf/4+Pj/+Pj4//j4+P/4+Pj/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3
+ /1VVVf/j4+P/4+Pj/+Pj4//j4+P/Nzc3/zc3N/83Nzf/SUlJ/+Pj4//j4+P/4+Pj/9ra2v83Nzf/4+Pj
+ /+Pj4//j4+P/4+Pj/zY2Nv/j4+P/4+Pj/+Pj4//j4+P/NjY2/zY2Nv/j4+P/4+Pj/+Pj4//j4+P/NjY2
+ /+Pj4//j4+P/4+Pj/+Pj4/82Njb/4+Pj/+Pj4//j4+P/4+Pj/zY2Nv82Njb/4+Pj/+Pj4//j4+P/4+Pj
+ /zY2Nv82Njb/NjY2/zQ0NP8yMjL/LS0t/yYmJv8dHR3/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////
+ /wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/HR0d/ycnJ/8uLi7/MzMz/zU1Nf83Nzf/Nzc3/zc3N//q6ur/6urq/+rq6v/q6ur/Nzc3
+ /zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/VVVV/+rq6v/q6ur/6urq/+rq6v83Nzf/Nzc3
+ /zc3N/9KSkr/6urq/+rq6v/q6ur/4eHh/zc3N//q6ur/6urq/+rq6v/q6ur/Nzc3/+rq6v/q6ur/6urq
+ /+rq6v83Nzf/Nzc3/+rq6v/q6ur/6urq/+rq6v83Nzf/6urq/+rq6v/q6ur/6urq/zc3N//q6ur/6urq
+ /+rq6v/q6ur/Nzc3/zc3N//q6ur/6urq/+rq6v/q6ur/Nzc3/zc3N/83Nzf/NTU1/zMzM/8uLi7/Jycn
+ /x0dHf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAYAAAAiAAAAXP////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8dHR3/Jycn/y4uLv8zMzP/NTU1
+ /zc3N/83Nzf/Nzc3//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx/+zs7P83Nzf/8fHx
+ //Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/Nzc3/0pKSv/x8fH/8fHx//Hx8f/n5+f/Nzc3
+ //Hx8f/x8fH/8fHx//Hx8f83Nzf/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx
+ /zc3N//x8fH/8fHx//Hx8f/x8fH/Nzc3//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx
+ //Hx8f83Nzf/Nzc3/zc3N/81NTX/MzMz/y4uLv8nJyf/HR0d/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ //////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/x4eHv8oKCj/Ly8v/zQ0NP82Njb/ODg4/zg4OP84ODj/+Pj4//j4+P/4+Pj/+Pj4
+ //j4+P/4+Pj/+Pj4//j4+P/4+Pj/8vLy/zg4OP/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4
+ //j4+P83Nzf/SkpK//j4+P/4+Pj/+Pj4/+7u7v83Nzf/+Pj4//j4+P/4+Pj/+Pj4/zc3N//4+Pj/+Pj4
+ //j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4/1VVVf83Nzf/Nzc3//j4+P/4+Pj/+Pj4//j4+P83Nzf/+Pj4
+ //j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4/zc3N/83Nzf/Nzc3/zU1Nf8zMzP/Li4u
+ /ycnJ/8dHR3/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAGAAAAIgAAAFz/////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Hh4e/ygoKP8vLy//NDQ0
+ /zY2Nv84ODj/ODg4/zg4OP9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9vb2//ODg4
+ /3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/zg4OP87Ozv/cXFx/3Fxcf9xcXH/bW1t
+ /zg4OP9xcXH/cXFx/3Fxcf9xcXH/ODg4/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/Pj4+
+ /zg4OP84ODj/cXFx/3Fxcf9xcXH/cXFx/zg4OP9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx
+ /3Fxcf9xcXH/Nzc3/zc3N/83Nzf/NTU1/zMzM/8uLi7/Jycn/x0dHf8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP//////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8eHh7/KCgo/y8vL/80NDT/NjY2/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4
+ /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4
+ /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4
+ /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4
+ /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP82Njb/NDQ0
+ /y8vL/8oKCj/Hh4e/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAABcAAAAIgAAAAYAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAABgAAACIAAABc/////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/x4eHv8oKCj/Ly8v
+ /zQ0NP82Njb/ODg4/zg4OP84ODj/pKSk/6SkpP+kpKT/pKSk/6SkpP+kpKT/pKSk/6SkpP84ODj/ODg4
+ /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/pKSk/6SkpP+kpKT/pKSk
+ /6SkpP+kpKT/pKSk/6SkpP+kpKT/pKSk/6SkpP+kpKT/pKSk/6SkpP+kpKT/pKSk/zg4OP84ODj/pKSk
+ /6SkpP+kpKT/pKSk/6SkpP+kpKT/pKSk/6SkpP84ODj/ODg4/zg4OP+kpKT/pKSk/6SkpP+kpKT/pKSk
+ /6SkpP+kpKT/pKSk/zg4OP84ODj/ODg4/zY2Nv80NDT/Ly8v/ygoKP8eHh7/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////AQEB
+ /wEBAf8BAQH/AQEB/wEBAf8BAQH/Hh4e/ygoKP8vLy//NTU1/zc3N/85OTn/OTk5/zk5Of+np6f/p6en
+ /6enp/+np6f/p6en/6enp/+np6f/p6en/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5
+ /zk5Of85OTn/OTk5/zk5Of+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en
+ /6enp/+np6f/p6en/6enp/+np6f/ODg4/zg4OP+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en
+ /zg4OP84ODj/ODg4/6enp/+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/ODg4/zg4OP84ODj/NjY2
+ /zQ0NP8vLy//KCgo/x4eHv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAAXAAAACIAAAAGAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8CAgL/AgIC/wICAv8CAgL/AgIC/wICAv8eHh7/KCgo
+ /y8vL/81NTX/Nzc3/zk5Of85OTn/OTk5/6urq/+rq6v/q6ur/6urq/+rq6v/q6ur/6urq/+rq6v/OTk5
+ /zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/6urq/+rq6v/q6ur
+ /6urq/+rq6v/q6ur/6urq/+rq6v/q6ur/6urq/+rq6v/q6ur/6urq/+rq6v/q6ur/6urq/85OTn/OTk5
+ /6urq/+rq6v/q6ur/6urq/+rq6v/q6ur/6urq/+rq6v/OTk5/zk5Of85OTn/q6ur/6urq/+rq6v/q6ur
+ /6urq/+rq6v/q6ur/6urq/85OTn/OTk5/zk5Of83Nzf/NTU1/y8vL/8oKCj/Hh4e/wEBAf8BAQH/AQEB
+ /wEBAf8BAQH/AQEB//////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc////
+ /wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/x4eHv8oKCj/Ly8v/zU1Nf83Nzf/OTk5/zk5Of85OTn/rq6u
+ /66urv+urq7/rq6u/66urv+urq7/rq6u/66urv85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5
+ /zk5Of85OTn/OTk5/zk5Of85OTn/rq6u/66urv+urq7/rq6u/66urv+urq7/rq6u/66urv+urq7/rq6u
+ /66urv+urq7/rq6u/66urv+urq7/rq6u/zk5Of85OTn/rq6u/66urv+urq7/rq6u/66urv+urq7/rq6u
+ /66urv85OTn/OTk5/zk5Of+urq7/rq6u/66urv+urq7/rq6u/66urv+urq7/rq6u/zk5Of85OTn/OTk5
+ /zc3N/81NTX/Ly8v/ygoKP8eHh7/AgIC/wICAv8CAgL/AgIC/wICAv8CAgL//////wAAAFwAAAAiAAAA
+ BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/Hx8f
+ /ykpKf8wMDD/NjY2/zg4OP86Ojr/Ojo6/zo6Ov+ysrL/srKy/7Kysv+ysrL/srKy/7Kysv+ysrL/srKy
+ /zo6Ov86Ojr/Ojo6/zo6Ov85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of+ysrL/srKy
+ /7Kysv+ysrL/srKy/7Kysv+ysrL/srKy/7Kysv+ysrL/srKy/7Kysv+ysrL/srKy/7Kysv+ysrL/OTk5
+ /zk5Of+ysrL/srKy/7Kysv+ysrL/srKy/7Kysv+ysrL/srKy/zk5Of85OTn/OTk5/7Kysv+ysrL/srKy
+ /7Kysv+ysrL/srKy/7Kysv+ysrL/OTk5/zk5Of85OTn/Nzc3/zU1Nf8vLy//KCgo/x4eHv8DAwP/AwMD
+ /wMDA/8DAwP/AwMD/wMDA///////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAA
+ XP////8EBAT/BAQE/wQEBP8EBAT/BAQE/wQEBP8fHx//KSkp/zAwMP82Njb/ODg4/zo6Ov86Ojr/Ojo6
+ /7W1tf+1tbX/tbW1/7W1tf+1tbX/tbW1/7W1tf+1tbX/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6
+ /zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/7W1tf+1tbX/tbW1/7W1tf+1tbX/tbW1/7W1tf+1tbX/Ojo6
+ /zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/7W1tf+1tbX/tbW1/7W1tf+1tbX/tbW1
+ /7W1tf+1tbX/Ojo6/zo6Ov86Ojr/tbW1/7W1tf+1tbX/tbW1/7W1tf+1tbX/tbW1/7W1tf85OTn/OTk5
+ /zk5Of83Nzf/NTU1/y8vL/8oKCj/Hh4e/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD//////8AAABcAAAA
+ IgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////wQEBP8EBAT/BAQE/wQEBP8EBAT/BAQE
+ /x8fH/8pKSn/MDAw/zY2Nv84ODj/Ojo6/zo6Ov86Ojr/ubm5/7m5uf+5ubn/ubm5/7m5uf+5ubn/ubm5
+ /7m5uf86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/ubm5
+ /7m5uf+5ubn/ubm5/7m5uf+5ubn/ubm5/7m5uf86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6
+ /zo6Ov86Ojr/ubm5/7m5uf+5ubn/ubm5/7m5uf+5ubn/ubm5/7m5uf86Ojr/Ojo6/zo6Ov+5ubn/ubm5
+ /7m5uf+5ubn/ubm5/7m5uf+5ubn/ubm5/zo6Ov86Ojr/Ojo6/zg4OP82Njb/MDAw/ykpKf8fHx//BAQE
+ /wQEBP8EBAT/BAQE/wQEBP8EBAT//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAA
+ IgAAAFz/////BQUF/wUFBf8FBQX/BQUF/wUFBf8FBQX/Hx8f/ykpKf8wMDD/NjY2/zg4OP86Ojr/Ojo6
+ /zo6Ov+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+8vLz/vLy8/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6
+ /zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+8vLz/vLy8
+ /zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov+8vLz/vLy8/7y8vP+8vLz/vLy8
+ /7y8vP+8vLz/vLy8/zo6Ov86Ojr/Ojo6/7y8vP+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+8vLz/Ojo6
+ /zo6Ov86Ojr/ODg4/zY2Nv8wMDD/KSkp/x8fH/8FBQX/BAQE/wQEBP8EBAT/BAQE/wQEBP//////AAAA
+ XAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8GBgb/BgYG/wYGBv8GBgb/BgYG
+ /wYGBv8gICD/Kioq/zExMf83Nzf/OTk5/zs7O/87Ozv/Ozs7/7+/v/+/v7//v7+//7+/v/+/v7//v7+/
+ /7+/v/+/v7//Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7
+ /7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6
+ /zo6Ov86Ojr/Ojo6/7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+/
+ /7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/86Ojr/Ojo6/zo6Ov84ODj/NjY2/zAwMP8pKSn/Hx8f
+ /wUFBf8FBQX/BQUF/wUFBf8FBQX/BQUF//////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ BgAAACIAAABc/////wcHB/8HBwf/BwcH/wcHB/8HBwf/BwcH/yAgIP8qKir/MTEx/zc3N/85OTn/Ozs7
+ /zs7O/87Ozv/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw/87Ozv/Ozs7/zs7O/87Ozv/Ozs7
+ /zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD
+ /8PDw/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/w8PD/8PDw//Dw8P/w8PD
+ /8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD
+ /zs7O/87Ozv/Ozs7/zg4OP82Njb/MDAw/ykpKf8fHx//BgYG/wYGBv8GBgb/BgYG/wYGBv8GBgb/////
+ /wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////BwcH/wcHB/8HBwf/BwcH
+ /wcHB/8HBwf/ICAg/yoqKv8xMTH/Nzc3/zk5Of87Ozv/Ozs7/zs7O//Gxsb/xsbG/8bGxv/Gxsb/xsbG
+ /8bGxv/Gxsb/xsbG/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/Ozs7
+ /zs7O//Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7
+ /zs7O/87Ozv/Ozs7/zs7O//Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG
+ /8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/Ozs7/zs7O/87Ozv/OTk5/zc3N/8xMTH/Kioq
+ /yAgIP8HBwf/BwcH/wcHB/8HBwf/BwcH/wcHB///////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAYAAAAiAAAAXP////8ICAj/CAgI/wgICP8ICAj/CAgI/wgICP8gICD/Kioq/zIyMv84ODj/Ojo6
+ /zw8PP88PDz/PDw8/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK
+ /8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv87Ozv/Ozs7/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK
+ /8rKyv/Kysr/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/8rKyv/Kysr/ysrK
+ /8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK
+ /8rKyv87Ozv/Ozs7/zs7O/85OTn/Nzc3/zExMf8qKir/ICAg/wcHB/8HBwf/BwcH/wcHB/8HBwf/BwcH
+ //////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////wkJCf8JCQn/CQkJ
+ /wkJCf8JCQn/CAgI/yAgIP8qKir/MjIy/zg4OP86Ojr/PDw8/zw8PP88PDz/zs7O/87Ozv/Ozs7/zs7O
+ /87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O
+ /zw8PP88PDz/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv88PDz/PDw8/zw8PP88PDz/PDw8
+ /zw8PP88PDz/PDw8/zw8PP88PDz/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O
+ /87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/zs7O/87Ozv/Ozs7/zk5Of83Nzf/MTEx
+ /yoqKv8gICD/CAgI/wgICP8ICAj/CAgI/wgICP8ICAj//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAGAAAAIgAAAFz/////CQkJ/wkJCf8JCQn/CQkJ/wkJCf8JCQn/ICAg/yoqKv8yMjL/ODg4
+ /zo6Ov88PDz/PDw8/zw8PP/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR
+ /9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/PDw8/zw8PP/R0dH/0dHR/9HR0f/R0dH/0dHR
+ /9HR0f/R0dH/0dHR/zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP/R0dH/0dHR
+ /9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/qamp/zw8PP88PDz/PDw8
+ /zw8PP88PDz/PDw8/zw8PP88PDz/Ojo6/zg4OP8yMjL/Kioq/yAgIP8JCQn/CQkJ/wkJCf8JCQn/CQkJ
+ /wkJCf//////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8KCgr/CgoK
+ /woKCv8KCgr/CgoK/woKCv8hISH/Kysr/zMzM/84ODj/Ojo6/zw8PP88PDz/PDw8/9TU1P/U1NT/1NTU
+ /9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU
+ /9TU1P88PDz/PDw8/9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU/9TU1P/U1NT/PDw8/zw8PP88PDz/PDw8
+ /zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU
+ /9TU1P/U1NT/1NTU/9TU1P+rq6v/PDw8/zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP86Ojr/ODg4
+ /zIyMv8qKir/ICAg/wkJCf8JCQn/CQkJ/wkJCf8JCQn/CQkJ//////8AAABcAAAAIgAAAAYAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAABgAAACIAAABc/////wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/yEhIf8rKyv/MzMz
+ /zg4OP87Ozv/PT09/z09Pf89PT3/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX
+ /9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/z09Pf89PT3/19fX/9fX1//X19f/19fX
+ /9fX1//X19f/19fX/9fX1/89PT3/PT09/z09Pf89PT3/PT09/zw8PP88PDz/PDw8/zw8PP88PDz/19fX
+ /9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/6ysrP88PDz/PDw8
+ /zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zo6Ov84ODj/MjIy/yoqKv8gICD/CgoK/woKCv8KCgr/CgoK
+ /woKCv8KCgr//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////CwsL
+ /wsLC/8LCwv/CwsL/wsLC/8LCwv/ISEh/ysrK/8zMzP/ODg4/zs7O/89PT3/PT09/z09Pf/b29v/29vb
+ /9vb2//b29v/29vb/9vb2//b29v/29vb/z09Pf89PT3/PT09/9vb2//b29v/29vb/9vb2//b29v/29vb
+ /9vb2//b29v/PT09/z09Pf/b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/z09Pf89PT3/PT09
+ /z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf/b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb
+ /9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/PT09/z09Pf89PT3/Ozs7
+ /zg4OP8zMzP/Kysr/yEhIf8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC///////AAAAXAAAACIAAAAGAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8MDAz/DAwM/wwMDP8MDAz/DAwM/wwMDP8hISH/Kysr
+ /zMzM/84ODj/Ozs7/z09Pf89PT3/PT09/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/PT09
+ /z09Pf89PT3/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v89PT3/PT09/97e3v/e3t7/3t7e
+ /97e3v/e3t7/3t7e/97e3v/e3t7/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09
+ /97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e
+ /97e3v/e3t7/3t7e/97e3v89PT3/PT09/z09Pf87Ozv/ODg4/zMzM/8rKyv/ISEh/wsLC/8LCwv/CwsL
+ /wsLC/8LCwv/CwsL//////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc////
+ /w0NDf8NDQ3/DQ0N/w0NDf8NDQ3/DQ0N/yEhIf8sLCz/NDQ0/zk5Of88PDz/Pj4+/z4+Pv8+Pj7/4uLi
+ /+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v8+Pj7/PT09/z09Pf/i4uL/4uLi/+Li4v/i4uL/4uLi
+ /+Li4v/i4uL/4uLi/z09Pf89PT3/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v89PT3/PT09
+ /z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi
+ /+Li4v/FxcX/xcXF/8XFxf/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/z09Pf89PT3/PT09
+ /zs7O/84ODj/MzMz/ysrK/8hISH/DAwM/wwMDP8MDAz/DAwM/wwMDP8MDAz//////wAAAFwAAAAiAAAA
+ BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////DQ0N/w0NDf8NDQ3/DQ0N/w0NDf8NDQ3/ISEh
+ /ywsLP80NDT/OTk5/zw8PP8+Pj7/Pj4+/z4+Pv/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl
+ /z4+Pv8+Pj7/Pj4+/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/Pj4+/z4+Pv/l5eX/5eXl
+ /+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+
+ /z4+Pv/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/z09Pf89PT3/PT09/+Xl5f/l5eX/5eXl
+ /+Xl5f/l5eX/5eXl/+Xl5f/l5eX/PT09/z09Pf89PT3/Ozs7/zg4OP8zMzP/Kysr/yEhIf8NDQ3/DQ0N
+ /w0NDf8NDQ3/DQ0N/w0NDf//////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAA
+ XP////8ODg7/Dg4O/w4ODv8ODg7/Dg4O/w4ODv8hISH/LCws/zQ0NP85OTn/PDw8/z4+Pv8+Pj7/Pj4+
+ /+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en/Pj4+/z4+Pv8+Pj7/6enp/+np6f/p6en/6enp
+ /+np6f/p6en/6enp/+np6f8+Pj7/Pj4+/+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en/Pj4+
+ /z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/+np6f/p6en/6enp/+np6f/p6en/6enp
+ /+np6f/p6en/Pj4+/z4+Pv8+Pj7/6enp/+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f8+Pj7/Pj4+
+ /z4+Pv88PDz/OTk5/zQ0NP8sLCz/ISEh/w0NDf8NDQ3/DQ0N/w0NDf8NDQ3/DQ0N//////8AAABcAAAA
+ IgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////w4ODv8ODg7/Dg4O/w4ODv8ODg7/Dg4O
+ /yIiIv8sLCz/NDQ0/zk5Of88PDz/Pj4+/z4+Pv8+Pj7/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs
+ /+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/z4+Pv8+Pj7/7Ozs
+ /+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs
+ /z4+Pv8+Pj7/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P8+Pj7/Pj4+/z4+Pv/s7Oz/7Ozs
+ /+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/z4+Pv8+Pj7/Pj4+/zw8PP85OTn/NDQ0/ywsLP8hISH/Dg4O
+ /w4ODv8ODg7/Dg4O/w4ODv8ODg7//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAA
+ IgAAAFz/////Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//IiIi/y0tLf80NDT/Ojo6/z09Pf8/Pz//Pz8/
+ /z8/P//w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw
+ //Dw8P/w8PD/8PDw//Dw8P/w8PD/Pz8//z8/P//w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw
+ //Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/Pj4+/z4+Pv/w8PD/8PDw//Dw8P/w8PD/8PDw
+ //Dw8P/w8PD/8PDw/z4+Pv8+Pj7/Pj4+//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/Pj4+
+ /z4+Pv8+Pj7/PDw8/zk5Of80NDT/LCws/yEhIf8ODg7/Dg4O/w4ODv8ODg7/Dg4O/w4ODv//////AAAA
+ XAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8QEBD/EBAQ/xAQEP8QEBD/EBAQ
+ /xAQEP8iIiL/LS0t/zQ0NP86Ojr/PT09/z8/P/8/Pz//Pz8///Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz
+ //Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8/8/Pz//Pz8/
+ //Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz
+ //Pz8/8/Pz//Pz8///Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/Pz8//z8/P/8/Pz//8/Pz
+ //Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8/8/Pz//Pz8//z8/P/89PT3/Ojo6/zQ0NP8tLS3/IiIi
+ /w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P//////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ BgAAACIAAABc/////xEREf8RERH/ERER/xEREf8RERH/ERER/yIiIv8tLS3/NDQ0/zo6Ov89PT3/Pz8/
+ /z8/P/8/Pz//9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2
+ //b29v/29vb/9vb2//b29v/29vb/9vb2/z8/P/8/Pz//9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2
+ //b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2/z8/P/8/Pz//9vb2//b29v/29vb/9vb2
+ //b29v/29vb/9vb2//b29v8/Pz//Pz8//z8/P//29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2
+ /z8/P/8/Pz//Pz8//z09Pf86Ojr/NDQ0/y0tLf8iIiL/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/////
+ /wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////ERER/xEREf8RERH/ERER
+ /xEREf8RERH/IiIi/y0tLf81NTX/Ozs7/z4+Pv9AQED/QEBA/0BAQP/6+vr/+vr6//r6+v/6+vr/+vr6
+ //r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/5+fn/Pz8/
+ /z8/P//6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6
+ //r6+v/6+vr/Pz8//z8/P//6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/z8/P/8/Pz//Pz8/
+ //r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/Pz8//z8/P/8/Pz//PT09/zo6Ov80NDT/LS0t
+ /yIiIv8RERH/ERER/xEREf8RERH/ERER/xEREf//////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAYAAAAiAAAAXP////8SEhL/EhIS/xISEv8SEhL/EhIS/xISEv8iIiL/LS0t/zU1Nf87Ozv/Pj4+
+ /0BAQP9AQED/QEBA/8DAwP/AwMD/v7+//7+/v//AwMD/wMDA/8DAwP/AwMD/v7+//7+/v/+/v7//v7+/
+ /8DAwP/AwMD/v7+//7+/v/+/v7//v7+//7+/v/9AQED/QEBA/7+/v/+/v7//v7+//8DAwP/AwMD/wMDA
+ /8DAwP+/v7//v7+//7+/v//AwMD/wMDA/8DAwP+/v7//v7+//7+/v/9AQED/QEBA/8DAwP/AwMD/v7+/
+ /7+/v/+/v7//v7+//7+/v/+/v7//Pz8//z8/P/8/Pz//vr6+/76+vv+/v7//v7+//7+/v/++vr7/vr6+
+ /76+vv8/Pz//Pz8//z8/P/89PT3/Ojo6/zQ0NP8tLS3/IiIi/xEREf8RERH/ERER/xEREf8RERH/ERER
+ //////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////xISEv8SEhL/EhIS
+ /xISEv8SEhL/EhIS/yIiIv8tLS3/NTU1/zs7O/8+Pj7/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/z4+Pv87Ozv/NTU1
+ /y0tLf8iIiL/EhIS/xISEv8SEhL/EhIS/xISEv8SEhL//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAGAAAAIgAAAFz/////ExMT/xMTE/8TExP/ExMT/xMTE/8TExP/IiIi/y0tLf81NTX/Ozs7
+ /z4+Pv9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/Pj4+/zs7O/81NTX/LS0t/yIiIv8TExP/ExMT/xMTE/8TExP/EhIS
+ /xISEv//////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8UFBT/FBQU
+ /xQUFP8UFBT/FBQU/xQUFP8jIyP/Li4u/zY2Nv88PDz/Pz8//0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP8+Pj7/Ozs7
+ /zU1Nf8tLS3/IiIi/xMTE/8TExP/ExMT/xMTE/8TExP/ExMT//////8AAABcAAAAIgAAAAYAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAABgAAACIAAABc/////xUVFf8VFRX/FRUV/xUVFf8VFRX/FRUV/yMjI/8uLi7/NjY2
+ /zw8PP8/Pz//QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/z8/P/88PDz/NjY2/y4uLv8iIiL/FBQU/xQUFP8UFBT/FBQU
+ /xQUFP8UFBT//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////FRUV
+ /xUVFf8VFRX/FRUV/xUVFf8VFRX/IyMj/y4uLv82Njb/PDw8/z8/P/9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/Pz8/
+ /zw8PP82Njb/Li4u/yMjI/8VFRX/FRUV/xUVFf8VFRX/FRUV/xUVFf//////AAAAXAAAACIAAAAGAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8WFhb/FhYW/xYWFv8WFhb/FhYW/xYWFv8jIyP/Ly8v
+ /zc3N/89PT3/QEBA/0JCQv9CQkL/QkJC/0JCQv9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9AQED/QEBA/0BAQP9AQED/Pz8/
+ /z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8/
+ /z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8+Pj7/Ozs7/zU1Nf8tLS3/IiIi/xUVFf8VFRX/FRUV
+ /xUVFf8VFRX/FRUV//////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc////
+ /xcXF/8XFxf/FxcX/xcXF/8XFxf/FxcX/yMjI/8vLy//Nzc3/z09Pf9AQED/QkJC/0JCQv9CQkL/QkJC
+ /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC
+ /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC
+ /0FBQf9BQUH/QEBA/0BAQP8/Pz//Pz8//z4+Pv8+Pj7/Pj4+/z09Pf89PT3/PT09/z09Pf89PT3/PT09
+ /z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09
+ /zs7O/84ODj/MzMz/ysrK/8hISH/FhYW/xYWFv8WFhb/FhYW/xYWFv8WFhb//////wAAAFwAAAAiAAAA
+ BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////FxcX/xcXF/8XFxf/FxcX/xcXF/8XFxf/IyMj
+ /y8vL/83Nzf/PT09/0BAQP9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC
+ /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC
+ /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9BQUH/QEBA/z8/P/8+Pj7/PT09/zs7O/86Ojr/OTk5
+ /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4
+ /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/Nzc3/zQ0NP8uLi7/Jycn/x4eHv8XFxf/FxcX
+ /xcXF/8XFxf/FxcX/xcXF///////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAA
+ XP////8YGBj/GBgY/xgYGP8YGBj/GBgY/xgYGP8jIyP/Ly8v/zc3N/89PT3/QEBA/0JCQv9CQkL/QkJC
+ /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC
+ /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QUFB
+ /0BAQP8/Pz//PT09/zs7O/84ODj/NTU1/zMzM/8yMjL/MTEx/zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw
+ /zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw
+ /zAwMP8vLy//LS0t/ygoKP8iIiL/Ghoa/xcXF/8XFxf/FxcX/xcXF/8XFxf/FxcX//////8AAABbAAAA
+ IQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ
+ /yQkJP8vLy//ODg4/z4+Pv9BQUH/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND
+ /0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND
+ /0NDQ/9DQ0P/QkJC/0JCQv9CQkL/QkJC/0FBQf9AQED/Pj4+/zs7O/84ODj/NDQ0/y8vL/8sLCz/KSkp
+ /ycnJ/8mJib/JSUl/yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl
+ /yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl/yQkJP8iIiL/Hh4e/xoaGv8VFRX/GBgY
+ /xgYGP8YGBj/GBgY/xgYGP8YGBj//////wAAAFoAAAAhAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAA
+ IgAAAFz/////GRkZ/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/JCQk/y8vL/84ODj/Pj4+/0FBQf9DQ0P/Q0ND
+ /0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND
+ /0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9CQkL/QUFB
+ /z8/P/87Ozv/Nzc3/zIyMv8sLCz/JiYm/yEhIf8ZGRn/FhYW/xYWFv8WFhb/FhYW/xYWFv8WFhb/FhYW
+ /xYWFv8WFhb/FhYW/xYWFv8WFhb/FhYW/xYWFv8WFhb/FhYW/xYWFv8WFhb/FhYW/xYWFv8WFhb/FhYW
+ /xYWFv8WFhb/FhYW/xYWFv8WFhb/FhYW/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ/xkZGf//////AAAA
+ VwAAAB8AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8aGhr/Ghoa/xoaGv8aGhr/Ghoa
+ /xoaGv8kJCT/Ly8v/zg4OP8+Pj7/QUFB/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND
+ /0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND
+ /0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0JCQv9AQED/PDw8/zc3N/8wMDD/KSkp/yEhIf8aGhr/Ghoa
+ /xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa
+ /xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa
+ /xoaGv8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ//////8AAABPAAAAGgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ BgAAACIAAABc/////xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/yQkJP8wMDD/OTk5/z8/P/9CQkL/RERE
+ /0RERP9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND
+ /0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9CQkL/QUFB
+ /z09Pf84ODj/MTEx/ygoKP8eHh7/Ghoa/xoaGv8aGhr/Ghoa/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ
+ /xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ
+ /xkZGf8ZGRn/GRkZ/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/////
+ /wAAAD8AAAATAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////Gxsb/xsbG/8bGxv/Gxsb
+ /xsbG/8bGxv/JCQk/zAwMP85OTn/Pz8//0JCQv9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE
+ /0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE
+ /0RERP9ERET/RERE/0RERP9ERET/RERE/0NDQ/9AQED/PDw8/zU1Nf8sLCz/ISEh/xsbG/8bGxv/Gxsb
+ /ysrK/82Njb/NjY2/zY2Nv82Njb/NjY2/zY2Nv82Njb/NjY2/zY2Nv82Njb/NjY2/zY2Nv82Njb/NjY2
+ /zY2Nv82Njb/NjY2/zY2Nv82Njb/NjY2/zY2Nv82Njb/NjY2/zY2Nv82Njb/NjY2/xsbG/8bGxv/Gxsb
+ /xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb////////////AAAAKwAAAAwAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAYAAAAiAAAAXP////8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8kJCT/MDAw/zk5Of8/Pz//QkJC
+ /0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE
+ /0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9DQ0P/QkJC
+ /z8/P/85OTn/MDAw/yYmJv8cHBz/HBwc/xwcHP82Njb/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3
+ /zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3
+ /zY2Nv82Njb/NjY2/zY2Nv8sLCz/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG//+/v7/////
+ /wAAADkAAAAVAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////x0dHf8dHR3/HR0d
+ /x0dHf8dHR3/HR0d/yQkJP8wMDD/OTk5/z8/P/9CQkL/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE
+ /0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE
+ /0RERP9ERET/RERE/0RERP9ERET/RERE/0NDQ/9BQUH/PT09/zU1Nf8sLCz/GBgY/xwcHP8cHBz/NTU1
+ /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4
+ /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP83Nzf/Nzc3/zc3N/83Nzf/LS0t/xwcHP8cHBz/HBwc
+ /xwcHP8cHBz/HBwc/xwcHP8cHBz//v7+//////8AAAA+AAAAGgAAAAcAAAABAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAGAAAAIgAAAFz/////HR0d/x0dHf8dHR3/HR0d/x0dHf8dHR3/JSUl/zExMf85OTn/QEBA
+ /0NDQ/9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF
+ /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0RERP9ERET/Q0ND
+ /0FBQf88PDz/MzMz/ygoKP8dHR3/HR0d/xYWFv85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5
+ /zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of84ODj/ODg4/zg4OP84ODj/ODg4
+ /zg4OP84ODj/ODg4/y0tLf8dHR3/HR0d/x0dHf8dHR3/HR0d/x0dHf8dHR3/HR0d////////////AAAA
+ PgAAABsAAAAIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8eHh7/Hh4e
+ /x4eHv8eHh7/Hh4e/x4eHv8lJSX/MTEx/zk5Of9AQED/Q0ND/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF
+ /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF
+ /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9DQ0P/QUFB/zs7O/8xMTH/JiYm/x4eHv8eHh7/Nzc3
+ /zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6
+ /zo6Ov85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of8vLy//HR0d/x0dHf8dHR3/HR0d
+ /x0dHf8dHR3/HR0d/x0dHf///////////wAAAD4AAAAbAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAABgAAACIAAABc/////x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/yUlJf8xMTH/OTk5
+ /0BAQP9DQ0P/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF
+ /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF
+ /0NDQ/9AQED/Ojo6/zAwMP8eHh7/Hh4e/x4eHv87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7
+ /zs7O/87Ozv/Ozs7/zs7O/86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6
+ /zo6Ov86Ojr/ICAg/x4eHv8eHh7/Hh4e/x4eHv8eHh7/Hh4e/x4eHv8eHh7///////////8AAAA+AAAA
+ GwAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////Hx8f
+ /x8fH/8fHx//Hx8f/x8fH/8fHx//JiYm/zIyMv86Ojr/QUFB/0RERP9GRkb/RkZG/0ZGRv9GRkb/RkZG
+ /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF
+ /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/Q0ND/0BAQP85OTn/Ly8v/x4eHv8fHx//Hx8f
+ /zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7
+ /zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/yEhIf8fHx//Hx8f/x8fH/8fHx//Hx8f
+ /x8fH/8fHx//Hx8f////////////AAAAPgAAABsAAAAIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8gICD/ICAg/yAgIP8gICD/ICAg/yAgIP8mJib/MjIy
+ /zo6Ov9BQUH/RERE/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG
+ /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG
+ /0ZGRv9ERET/QUFB/zo6Ov8vLy//Hx8f/yAgIP8gICD/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PDw8
+ /zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP88PDz/PDw8
+ /zw8PP8hISH/Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH////////////wAAAD8AAAAbAAAA
+ BwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc////
+ /yEhIf8hISH/ISEh/yEhIf8hISH/ISEh/yYmJv8yMjL/Ojo6/0FBQf9ERET/RkZG/0ZGRv9GRkb/RkZG
+ /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG
+ /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0RERP9AQED/OTk5/y8vL/8eHh7/ICAg
+ /x8fH/89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09
+ /z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/ISEh/yAgIP8gICD/ICAg/yAgIP8gICD/ICAg
+ /yAgIP8gICD///////////8AAAA/AAAAGwAAAAgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////ISEh/yEhIf8hISH/ISEh/yEhIf8hISH/JiYm
+ /zIyMv86Ojr/QUFB/0RERP9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG
+ /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG
+ /0ZGRv9GRkb/RERE/0BAQP85OTn/Ly8v/x8fH/8hISH/ICAg/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+
+ /z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+
+ /xoaGv8hISH/ISEh/yEhIf8hISH/ISEh/yEhIf8hISH/ISEh////////////AAAAPgAAABsAAAAIAAAA
+ AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAA
+ XP////8iIiL/IiIi/yIiIv8iIiL/IiIi/yIiIv8mJib/MjIy/zs7O/9CQkL/RUVF/0dHR/9HR0f/R0dH
+ /0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH
+ /0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0ZGRv9GRkb/RkZG/0VFRf9ERET/QEBA/zk5Of8vLy//Hx8f
+ /yIiIv8hISH/Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8/
+ /z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8YGBj/ISEh/yEhIf8hISH/ISEh/yEhIf8hISH/ISEh
+ /yEhIf///////////wAAAD4AAAAbAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////yMjI/8jIyP/IyMj/yMjI/8jIyP/IyMj
+ /yYmJv8yMjL/Ozs7/0JCQv9FRUX/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH
+ /0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH
+ /0dHR/9HR0f/RkZG/0VFRf9BQUH/Ojo6/y8vL/8gICD/IiIi/yEhIf9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/Ghoa
+ /yIiIv8iIiL/IiIi/yIiIv8iIiL/IiIi/yIiIv8iIiL//v7+//////8AAAA+AAAAGwAAAAgAAAABAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAA
+ IgAAAFz/////IyMj/yMjI/8jIyP/IyMj/yMjI/8jIyP/JiYm/zIyMv87Ozv/QkJC/0VFRf9HR0f/R0dH
+ /0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH
+ /0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9GRkb/RUVF/0FBQf86Ojr/Ly8v
+ /yAgIP8jIyP/IiIi/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/xwcHP8jIyP/IyMj/yMjI/8jIyP/IyMj/yMjI/8jIyP/IyMj
+ //7+/v//////AAAAPgAAABsAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8kJCT/JCQk/yQkJP8kJCT/JCQk
+ /yQkJP8nJyf/MzMz/zw8PP9DQ0P/RkZG/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/R0dH
+ /0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH
+ /0dHR/9HR0f/R0dH/0ZGRv9FRUX/QUFB/zo6Ov8vLy//ICAg/yQkJP8jIyP/QkJC/0JCQv9CQkL/QkJC
+ /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9BQUH/QUFB/0FBQf8eHh7/JCQk
+ /yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk/yQkJP/+/v7//////wAAAD4AAAAbAAAABwAAAAEAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ BgAAACIAAABc/////yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl/ycnJ/8zMzP/PDw8/0NDQ/9GRkb/SEhI
+ /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI
+ /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/R0dH/0ZGRv9CQkL/Ozs7
+ /zAwMP8hISH/JSUl/yQkJP9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND
+ /0NDQ/9DQ0P/QkJC/0JCQv9CQkL/HBwc/yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk/yQkJP8kJCT/////
+ //////8AAAA+AAAAGwAAAAgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////JSUl/yUlJf8lJSX/JSUl
+ /yUlJf8lJSX/Jycn/zMzM/88PDz/Q0ND/0ZGRv9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI
+ /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI
+ /0hISP9ISEj/SEhI/0hISP9HR0f/RkZG/0JCQv87Ozv/MDAw/yEhIf8lJSX/JCQk/0RERP9ERET/RERE
+ /0RERP9ERET/RERE/0RERP9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/x8fH/8lJSX/JSUl
+ /yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl////////////AAAAPwAAABsAAAAHAAAAAQAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAYAAAAiAAAAXP////8mJib/JiYm/yYmJv8mJib/JiYm/yYmJv8nJyf/MzMz/zw8PP9DQ0P/RkZG
+ /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI
+ /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0dHR/9GRkb/QkJC
+ /zs7O/8wMDD/ISEh/yYmJv8lJSX/RUVF/0VFRf9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE
+ /0RERP9ERET/RERE/0RERP8jIyP/JSUl/yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl/yUlJf/+/v7/////
+ /wAAAD8AAAAcAAAACAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////ycnJ/8nJyf/Jycn
+ /ycnJ/8nJyf/Jycn/ycnJ/80NDT/PT09/0RERP9HR0f/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ
+ /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9ISEj/SEhI/0hISP9ISEj/SEhI
+ /0hISP9ISEj/SEhI/0hISP9ISEj/R0dH/0ZGRv9CQkL/Ozs7/zAwMP8hISH/JiYm/yUlJf9GRkb/RUVF
+ /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/IiIi/yYmJv8mJib/JiYm
+ /yYmJv8mJib/JiYm/yYmJv8mJib//v7+//////8AAAA+AAAAGwAAAAgAAAABAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAGAAAAIgAAAFz/////KCgo/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/zQ0NP89PT3/RERE
+ /0dHR/9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ
+ /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9ISEj/R0dH
+ /0NDQ/88PDz/MTEx/yEhIf8nJyf/JiYm/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG
+ /0ZGRv9GRkb/RkZG/yMjI/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn////////////AAAA
+ PgAAABsAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8oKCj/KCgo
+ /ygoKP8oKCj/KCgo/ygoKP8nJyf/NDQ0/z09Pf9ERET/R0dH/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ
+ /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ
+ /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0hISP9HR0f/Q0ND/zw8PP8xMTH/IiIi/ygoKP8nJyf/R0dH
+ /0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/8lJSX/KCgo/ygoKP8oKCj/KCgo
+ /ygoKP8oKCj/KCgo/ygoKP///////f39/gAAAD4AAAAbAAAACAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAABgAAACIAAABc/////ykpKf8pKSn/KSkp/ykpKf8pKSn/KSkp/ygoKP80NDT/Pj4+
+ /0VFRf9ISEj/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ
+ /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SEhI
+ /0dHR/9DQ0P/PDw8/zExMf8iIiL/KSkp/ygoKP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI
+ /0hISP9HR0f/Jycn/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj///////////8AAAA+AAAA
+ GwAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////KSkp
+ /ykpKf8pKSn/KSkp/ykpKf8pKSn/KCgo/zQ0NP8+Pj7/RUVF/0hISP9KSkr/SkpK/0pKSv9KSkr/SkpK
+ /0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK
+ /0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9JSUn/R0dH/0RERP88PDz/MTEx/yMjI/8pKSn/KCgo
+ /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SEhI/ykpKf8pKSn/KSkp/ykpKf8pKSn/KSkp
+ /ykpKf8pKSn/KSkp////////////AAAAPgAAABsAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8qKir/Kioq/yoqKv8qKir/Kioq/yoqKv8oKCj/NDQ0
+ /z4+Pv9FRUX/SEhI/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK
+ /0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK
+ /0lJSf9HR0f/RERE/zw8PP8xMTH/IyMj/yoqKv8pKSn/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK
+ /0pKSv8pKSn/Kioq/yoqKv8qKir/Kioq/yoqKv8qKir/Kioq/yoqKv///////f39/gAAAD4AAAAbAAAA
+ CAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc////
+ /ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ygoKP80NDT/Pj4+/0VFRf9ISEj/SkpK/0pKSv9KSkr/SkpK
+ /0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK
+ /0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SUlJ/0dHR/9ERET/PDw8/zExMf8jIyP/Kioq
+ /ykpKf9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/KSkp/yoqKv8qKir/Kioq/yoqKv8qKir/Kioq
+ /yoqKv8qKir///////39/f4AAAA+AAAAGwAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////LCws/ywsLP8sLCz/LCws/ywsLP8sLCz/KCgo
+ /zU1Nf8+Pj7/RkZG/0lJSf9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL
+ /0tLS/9LS0v/S0tL/0tLS/9LS0v/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK
+ /0pKSv9JSUn/R0dH/0RERP88PDz/MTEx/yQkJP8rKyv/Kioq/0xMTP9MTEz/TExM/0xMTP9MTEz/S0tL
+ /yoqKv8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr////////////AAAAPAAAABoAAAAIAAAA
+ AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAA
+ XP////8sLCz/LCws/ywsLP8sLCz/LCws/ywsLP8oKCj/NTU1/z4+Pv9GRkb/SUlJ/0tLS/9LS0v/S0tL
+ /0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL
+ /0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0pKSv9ISEj/RUVF/z09Pf8yMjL/JSUl
+ /ywsLP8rKyv/TU1N/01NTf9NTU3/TExM/0tLS/8sLCz/LCws/ywsLP8sLCz/LCws/ywsLP8sLCz/LCws
+ /ywsLP///////Pz8/QAAADkAAAAZAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAACEAAABb/////y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t
+ /ycnJ/80NDT/Pj4+/0VFRf9JSUn/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL
+ /0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL
+ /0tLS/9LS0v/SkpK/0hISP9FRUX/PT09/zIyMv8lJSX/LCws/ysrK/9OTk7/TU1N/01NTf9LS0v/LCws
+ /ywsLP8sLCz/LCws/ywsLP8sLCz/LCws/ywsLP8sLCz///////v7+/sAAAA5AAAAFwAAAAYAAAABAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAA
+ IQAAAFr/////LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/JiYm/zMzM/89PT3/RUVF/0lJSf9LS0v/S0tL
+ /0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL
+ /0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9KSkr/SEhI/0VFRf89PT3/MjIy
+ /yUlJf8tLS3/LCws/05OTv9OTk7/TU1N/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t
+ ////////////AAAAOAAAABcAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAfAAAAWP////8uLi7/Li4u/y4uLv8uLi7/Li4u
+ /y4uLv8kJCT/MDAw/zo6Ov9DQ0P/SEhI/0pKSv9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL
+ /0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL
+ /0tLS/9LS0v/S0tL/0pKSv9JSUn/RUVF/z4+Pv8yMjL/JiYm/y4uLv8uLi7/T09P/05OTv8uLi7/Li4u
+ /y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv///////////wAAADgAAAAXAAAABgAAAAEAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AwAAABwAAABT/////y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/yQkJP8rKyv/NjY2/z4+Pv9ERET/RkZG
+ /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI
+ /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0ZGRv9CQkL/Ozs7
+ /zAwMP8lJSX/Li4u/y4uLv81NTX/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/////
+ //////8AAAA5AAAAFwAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAFwAAAEn/////MDAw/zAwMP8wMDD/MDAw
+ /zAwMP8wMDD/LS0t/yUlJf8uLi7/Nzc3/z09Pf9AQED/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC
+ /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC
+ /0JCQv9CQkL/QkJC/0JCQv9CQkL/QEBA/z09Pf82Njb/LCws/yQkJP8vLy//Ly8v/y8vL/8vLy//Ly8v
+ /y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v////////////AAAAOQAAABcAAAAGAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAEAAAARAAAAPf////9DQ0P/MDAw/zAwMP8wMDD/MDAw/zAwMP8wMDD/HR0d/yYmJv8tLS3/MzMz
+ /zc3N/85OTn/OTk5/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6
+ /zo6Ov86Ojr/Ojo6/zo6Ov85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of83Nzf/NDQ0
+ /y4uLv8lJSX/IiIi/zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw/zAwMP//////+/v7
+ +gAAADkAAAAXAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAv0dHRyvv7+/8xMTH/MTEx
+ /zExMf8xMTH/MTEx/zExMf8xMTH/HBwc/yMjI/8oKCj/Kysr/y0tLf8uLi7/Li4u/y4uLv8uLi7/Li4u
+ /y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u
+ /y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y0tLf8qKir/JSUl/x4eHv8lJSX/MDAw/zAwMP8wMDD/MDAw
+ /zAwMP8wMDD/MDAw/zAwMP8wMDD///////////8AAAA4AAAAGAAAAAcAAAABAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAABgAAAB8AAABT/////zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MDAw
+ /ykpKf8iIiL/IyMj/yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk
+ /yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk/yQkJP8kJCT/IyMj
+ /yIiIv8eHh7/JSUl/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx////////////AAAA
+ NwAAABYAAAAGAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAEQAAADj9/f3+6enp
+ /zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy
+ /zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy
+ /zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy
+ /zIyMv8yMjL/MjIy/zIyMv///////////wAAADYAAAAWAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAIAAAAFD/////NTU1/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz
+ /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz
+ /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz
+ /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP///////////8AAAA1AAAA
+ FQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAOAAAA
+ LmxsbIH/////NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0
+ /zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz
+ /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz
+ /zMzM/8zMzP/MzMz///////7+/v7AAAANQAAABUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAATAAAANP//////////NTU1/zQ0NP80NDT/NDQ0
+ /zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0
+ /zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0
+ /zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP//////29vbzgAAADQAAAAVAAAA
+ BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAUAAAAVAAAAMvf39/D/////4ODg/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1
+ /zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1
+ /zU1Nf81NTX/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0
+ /zQ0NP80NDT//////83Nzb4AAAA0AAAAFQAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAATAAAAKAAAAEb9/f3+////
+ //X19f+rq6v/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1
+ /zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1
+ /zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/ra2t///////IyMi2AAAAMgAAABUAAAAFAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAQAAAALAAAAGgAAAC4AAABD0NDQuv/////9/f3+/f39/v39/f79/f3+/f39
+ /v39/f79/f3+/f39/v39/f79/f3+/f39/v39/f79/f3+/f39/v39/f79/f3+/f39/v39/f79/f3+/f39
+ /v39/f79/f3+/f39/v39/f79/f3+/f39/v39/f79/f3+/f39/v39/f79/f3+/f39/v39/f79/f3+/f39
+ /v39/f79/f3+AAAARAAAACoAAAATAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAA
+ DAAAABUAAAAfAAAAJgAAACoAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAA
+ LAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAA
+ LAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAArAAAAKAAAACEAAAAXAAAADAAAAAMAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAUAAAAHAAAACQAAAAkAAAAKAAAA
+ CgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAA
+ CgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAA
+ CgAAAAkAAAAIAAAABgAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////+AAAAAAAAAAAA/////////AAAAAAAAAAAAD////////AAAAAAAAAAAAAf//
+ /////gAAAAAAAAAAAAD///////wAAAAAAAAAAAAAf//////8AAAAAAAAAAAAAD//////+AAAAAAAAAAA
+ AAA///////gAAAAAAAAAAAAAH//////4AAAAAAAAAAAAAB//////8AAAAAAAAAAAAAAP//////AAAAAA
+ AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w
+ AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//
+ ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA
+ AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAA
+ AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w
+ AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//
+ ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA
+ AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAA
+ AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w
+ AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//
+ ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA
+ AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAA
+ AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w
+ AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//
+ ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA
+ AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAB//////8AAAAAAAAAAAAAA///////AAAAAA
+ AAAAAAAAf//////wAAAAAAAAAAAAAP//////8AAAAAAAAAAAAAH///////AAAAAAAAAAAAAD///////w
+ AAAAAAAAAAAAB///////8AAAAAAAAAAAAA////////AAAAAAAAAAAAAf///////wAAAAAAAAAAAAP///
+ ////8AAAAAAAAAAAAH////////AAAAAAAAAAAAD////////wAAAAAAAAAAAB////////8AAAAAAAAAAA
+ A/////////AAAAAAAAAAAAf////////wAAAAAAAAAAAP////////8AAAAAAAAAAAH/////////AAAAAA
+ AAAAAD/////////wAAAAAAAAAAB/////////8AAAAAAAAAAA//////////AAAAAAAAAAAf/////////w
+ AAAAAAAAAAP/////////8AAAAAAAAAAH//////////AAAAAAAAAAD//////////wAAAAAAAAAB//////
+ ////8AAAAAAAAAA///////////AAAAAAAAAAf//////////wAAAAAAAAAP//////////8AAAAAAAAAH/
+ //////////AAAAAAAAAD///////////wAAAAAAAAB///////////8AAAAAAAAA////////////gAAAAA
+ AAAf///////////4AAAAAAAAP////////////AAAAAAAAH////////////wAAAAAAAD////////////+
+ AAAAAAAB/////////////wAAAAAAA//////////////AAAAAAAf/////////////8AAAAAAf////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////8oAAAAgAAAAAABAAABAAgAAAAA
+ AACAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wEBAf8CAgL/AwMD/wQEBP8FBQX/BgYG/wcHB/8ICAj/CQkJ
+ /woKCv8LCwv/DAwM/w0NDf8ODg7/Dw8P/xAQEP8RERH/EhIS/xMTE/8UFBT/FRUV/xYWFv8XFxf/GBgY
+ /xkZGf8aGhr/Gxsb/xwcHP8dHR3/Hh4e/x8fH/8gICD/ISEh/yIiIv8jIyP/JCQk/yUlJf8mJib/Jycn
+ /ygoKP8pKSn/Kioq/ysrK/8sLCz/LS0t/y4uLv8vLy//MDAw/zExMf8yMjL/MzMz/zQ0NP81NTX/NjY2
+ /zc3N/84ODj/OTk5/zo6Ov87Ozv/PDw8/z09Pf8+Pj7/Pz8//0BAQP9BQUH/QkJC/0NDQ/9ERET/RUVF
+ /0ZGRv9HR0f/SEhI/0lJSf9KSkr/S0tL/0xMTP9NTU3/Tk5O/09PT/9QUFD/UVFR/1JSUv9TU1P/VFRU
+ /1VVVf9WVlb/V1dX/1hYWP9ZWVn/Wlpa/1tbW/9cXFz/XV1d/15eXv9fX1//YGBg/2FhYf9iYmL/Y2Nj
+ /2RkZP9lZWX/ZmZm/2dnZ/9oaGj/aWlp/2pqav9ra2v/bGxs/21tbf9ubm7/b29v/3BwcP9ycnL/c3Nz
+ /3R0dP91dXX/dnZ2/3d3d/94eHj/eXl5/3p6ev97e3v/fHx8/319ff9+fn7/f39//4CAgP+BgYH/goKC
+ /4SEhP+FhYX/hoaG/4eHh/+IiIj/iYmJ/4qKiv+Li4v/jIyM/42Njf+Ojo7/j4+P/5CQkP+RkZH/kpKS
+ /5OTk/+UlJT/lZWV/5aWlv+Xl5f/mJiY/5mZmf+ampr/m5ub/5ycnP+dnZ3/np6e/5+fn/+goKD/oaGh
+ /6Kiov+jo6P/pKSk/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw
+ /7Gxsf+ysrL/s7Oz/7S0tP+1tbX/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/v7+/
+ /8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8bGxv/Hx8f/yMjI/8nJyf/Kysr/y8vL/8zMzP/Nzc3/zs7O
+ /8/Pz//Q0ND/0dHR/9LS0v/T09P/1NTU/9XV1f/W1tb/19fX/9jY2P/Z2dn/2tra/9vb2//c3Nz/3d3d
+ /97e3v/f39//4eHh/+Li4v/j4+P/5OTk/+Xl5f/m5ub/5+fn/+jo6P/p6en/6urq/+vr6//s7Oz/7e3t
+ /+7u7v/v7+//8PDw//Hx8f/y8vL/8/Pz//T09P/39/f/+Pj4//r6+v/7+/v//Pz8//////8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAARqfP1dTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU
+ 1NTU1NTU1NTU1NTU1NTU1NTU1NTV2cihPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAOsj2xoBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRk
+ ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRniMf2zlgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAH/xuDcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATen9bAKAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACX9HYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABG5NYZAQEAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAefRVAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa
+ zd0aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLwfgAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAQ1sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAuMoEAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAYp8nYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ ABr0RAAAAAAAAAAGCxEXEhcSFxIXEhcSFxIXEhcSFxIXEhcSFxIXEhcSFxIXEhcSFxIXEhcSFxIXEhcS
+ FxEUFBcSFxIXEhcSFxIXDwsEAAAAAAAAAACG5QEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAjtoEAAAAAAAAER8kKCcpKCooKigqKConKCkqKCooKigqKCooKigqKCooKigqKCooKigq
+ KCooKigqKCopKSkoKigqKCooKigpJicmJCAQBgAAAAAAABDsbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAADNhQAAAAAAAAwhJiovKi8qMCowKjAqMCovMC8qMCowKjAqMCowKjAqMCow
+ KjAqMCowKjAqMCowKjAqMCowKiovKjAqMCowKjApLywqJyUYAAAAAAAAAKW4BgAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOdSAAAAAAAEGigpKjAxMS8vMTExMTEyNCovMTExMTIyLy8w
+ LzExMTExMTExMTExMDExMTExMTEwLzExMTExNzAxMTExMTEyMjAvMTEsKCEXAAAAAAABWeMAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO9B8AAAAAAAogJyk2MTA3OkdAQUFBQUFBOjcw
+ MjlBQUE6NzQ3OEFBQUFBQUFBQTc6REFBQUFBQTk3MkFBQUEyOkRBQUFBQUFBOjcxMSosKCAGAAAAAAAf
+ 8w0BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABb3HwAAAAAADyQpKi83NzaWpaek
+ paWmpqZ5NzcyZqekp3k0NDRmpaanpKWlpqenOoaopqSlpaWmaDQ3pqakpjqCpqekpaWmp6aINzcwNyop
+ IQ0AAAAAASH2FgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFvcfAAAAAAAQJCkx
+ NzExNJeorqiura2qp4U0MjdmqqeugDIxMWmqqqqnra2tqqg/iK6oqK6qra2ceTqqqKitOoavraiuqq2t
+ qJQ0MjcxLyokEAAAAAAAH/YYAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU9x8A
+ AAAAABclLDEyNzc0cHl5eXmUsLW1hjE3Nmy1sLKCNzc3bLW1tZ55sLK1tzqUsLK1j4iysrKWOa+ytbU6
+ iLCyso+IsLKylzE3MjIxKSQXAAAAAAAg9hQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAABf2IAEAAAAAFiUsMTQ3NDc3Nzc3N2q4uLiINzc0bLi4uIY0NzJvt7e4iDq0t7e3Ope4uLdfWbq4
+ t5w6tre3tzqSuLi3ZFi4uLedNzQ3MTEsJRYAAAAAAB/3FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAF/YfAAAAAAAXJywwMjc2Nzc3NjQ3asLCwo83NzZqwsLCiDc3N3DCwsKIOLjCwsM6
+ msLCwmdawsLCoTq9wsLDQJS/wsNoWr/CwqM3NDc0MSwlFgAAAAABIPYXAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAX9iAAAAAAABYmKTQ3NDY2iJeXl5qux8bGlDY2NnbFxsaUNzY2dsbG
+ xpQ2w8fGxUafxsbGZmDGxcalPMTFyMc8l8fHxmhZx8jGpzc2NzQvKicXAAAAAAAf9hcAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf3HwAAAAAAFygsMDc0Nja4zc3Ox83Nzs6XNjY2dc3O
+ zpQ2NjZ3zc3NlzrGzc/IQKTNzc1nYM/I1Kg4ysfNzzqezc7ObFrNzc+nNjY0MTcpJhYAAAAAACD2FwAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/YgAQAAAAAWJik0Nzc2Nr3U1NTUzs/P
+ z5c3NjZ21dXUlzc2NnnW1dSaOcfW1NRGptbV1Ghn1NTUsDrV1dTUP6LU1NRqYtTU1LU2NjY3LywmFgAA
+ AAAAH/cXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX9h8AAAAAABcpLDA3Njc3
+ wtnb21o8PDw8OjY2N3nb29udNjY4edrY2p831drY2USn2NncamfZ2du2PNfZ2tg/ptjY2W9h2dvbuDY2
+ Njc3LCYWAAAAAAEg9hcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf2IAAAAAAA
+ FicqNzQ3NzfH5OHhVjc3Nzc3Njg4fuHh4aE3NzeA4eTkozrZ3uTkRLXh5ORqbOTh4b083eTh5D+q5OTk
+ cGTk4eG9NjY0NyopKhcAAAAAAB/2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ F/cfAAAAAAAXKSw3Njc3N8/n5+d1XFxcXFE6XFyV5+fntFxcRILp5+enOOTn5+dEt+fn54iE5+fnxDrk
+ 5+fnQLXn5+mIgOfn58M3Nzc3NyonFgAAAAAAIPYXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAX9iABAAAAABcnKTc3Nzc31O7u7u7u7u7trlTu7u7u7u7u7u53hO7u7qc65+/u7Ue48O7u
+ 7e7u7u3FOufv7uxBte3u7u7u7u7uyDc3NzY3LCkXAAAAAAAf9xcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAABf2HwAAAAAAGCwqNDc4ODja8vLz8/Pz8vKyVfPz8/Pz8/Pz83mI8/Lzrjrs
+ 8/P0Rr/y8/Py8/P0lEk67fLy8j+68vPy8/Pz8/PNNzc3NjYqJhYAAAAAASD2FwAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/YgAAAAAAAXKCo4ODg4OISUlJKSkpKSlHNHkpKSkpKSkpKS
+ Vl+UlJJzOo6SkpI/eZSSkpSSlJJaOjqUlJSUOnmUkpSSkpKSkoA3Nzc2NykpGQAAAAAAH/YXAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX9x8AAAAAABgsKjQ3ODg5S09PT09PT1A6ODg4
+ ODg4ODg4ODk6TE9PT09PT09PT09PT09QTDk4S09PT09PT1E6OjpPT09PT09PTDg4ODY4KigXAAAAAAAg
+ 9hcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf2IAEAAAAAFygqNjc4ODico6Ki
+ oqKiokg4ODg4ODg4ODg4OD+goqKioqKioqKioqKioqKfPDiSoqKioqKiolE4S6OioqKioqKVOTg4NzQq
+ LBgAAAAAAB/3FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/YgAQEBAQEXKio3
+ Nzk6OqCoqKioqKelSTk5OTk5OTk5OTk4R6eoqKioqKioqKioqKinpqQ8N5Wmp6anpqelUjhPqKioqKin
+ pZg5ODg3NiooFwAAAAABIPYXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX9iEA
+ AAEAABcoMDc2Nzo5oqeoqKenp6dLOTk5OTk5OTk5OTlBpqeop6enp6enp6enp6enpzo6mKeqp6qnqqdV
+ OU+op6inp6ennDo5ODc3KioXAQEBAQEg9hcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAABf3IAYGAAYHGCgwNzk6Ojqkp62tra2trUo5OTo6ODo3OTk5N0enra2tra2tra2tra2trrCoPDma
+ ra2tra2trVU5Uqitra2tra2dOjk5NzcwKBcAAAEAACH2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAF/YiBAEGAAAXKTE2ODg6Oqe1r7CwsLCwSzo6Ojg6Ojo6Ojo5Rqqwrq6wsLCusLCw
+ sK6usKc6PJ6wsLCwsLCwVTlQrrCwsLCwsKA6OTk3Ny8oGAcGAAYGIPcXAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAX9iEBBwEGBhkpMTY6Ojk/qrK0tLS0tbVKOjo8Ojo6Ojo4OjlHtba1
+ tbS0tbVVVFVWVVVVUjo6oLS0tLS0tLRWOk+1tLS0tLS0pDo5OTg3MCgXAAAGAQQi9hcAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf2IgYBBgEGGCkxNjg4OjyouLq4tbi4tks8Ojo4Ojo6
+ Ojo8Oke0uLi4ura2tjo8Ojw6Ojk6OjmluLe2uLq4tlg8Vbe3tri6uLWnPDo6ODYxKRkGBgEHASH2FwAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/clBwcHBwcZKTE2Ojo8OrW4ur24ur24
+ Szo6PDo6Ojo6ODo6SLi4uLq+uLi3Ojo6PDk6Ojk6Oqi6vri4ur64alRpur64uLq9uKo8ODo4NjEpGAcB
+ BgEGIvYXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX9iUHBgYGBhkqMjc5OTw6
+ t724vri+vr5LPDk8PDo8Ojw6PDlHvbi+uL64wrg/OTk8Ojo6Ojw8qri+uL64vri+uL64vri+uL64rjo6
+ PDg2MSkZBwcHBwcl9xcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf2JQcHBwcH
+ GioyNjw6PDq3w8PDw8PCwks6Ojk5OTk6ODk8Oka/w8PDw8PCw0E6Ojo8Pzo6Ojmqw8PDw8PDw8PDw8PD
+ w8PDw8OyOjk6OTYxKRkGBgYGByX2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ F/YmBwcHBwcaKjI3OTo6QLrFxcXFxcXFiIWAgoKCgoCFhXM5R8TFxcXFxcXCOjo6Ojw8Ojo6OrXExcXF
+ xcXFxcXExsfGxcXFxbI8Ojo6ODIqGgcHBwcHJfYXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAX9yYICAgJCRgqMjo6Ojo8vsrIysjKyMrIysjKyMrKyMfHrjpIyMjKyMrHyMZAPDw8Ojo6
+ PDk8tMjKyMrIysjKysjHyMrIysfItTw8Ojk3MioaBwcHBwcm9hcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAABf2JwoJCQkIGiw3Nzo6OkbCzcjOyM7IzsjOyM7IzsjOyMivPEjKyM7IzsjO
+ x0E6OjpAPDo/Oj+1yM7IzsjOyM7IzsjIzcjOyM64PDo8PDgyKhoICAgICCb3FwAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/YnCQkJCgoZKjI5Ojo6OsPNzc/Pz8/Pz8/Pz8/Pz8/O1LU6
+ SM3Pz8/Pz9LIP0A6Oj86PEA6PLbPzc/Pz8/Pz8/Pz9SaYWFhYVw/Ojo4NzIsGQkJCQkKJ/YXAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX9igKCgoKChosNzc6PD8/xdXV0tLS0tLS0tLS
+ 0tLS0tLStTpKz9LS0tLS0s46PDo6Pzw6QTo6uNXV0tLS0tLS0tLS0ohAOjo6Ojo6PDo6NyoaCgkJCQkn
+ 9hcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf3KAsLCwwNHCo0Ojw6PEDH1tbW
+ 1tbW18XDyNbW1tbW1ta6OknV1tbW1tbW0kc6QDpAOjo/PD+41tbW1tbW1tbW1tbYl1hYWFlWPD86ODg0
+ LBoKCgoKCij2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/YpDAsLCwsaKjY4
+ OkA6Qc7a2dnZ2dnZVTpk2NnZ2dnZ2bo8S9jZ2dnZ2dnVQDo/Oj86Pzw6QMLZ2dnZ2dnZ2dnZ2dnZ2dnZ
+ 2cM6Pzo6PDQqGg4LCwsLKPcXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX9ikM
+ DAwMDxoqNjo6QDo6zdvb29vb29tRPGfb3dvb29vbvTpK2t3b29vb3NxBPz8/Pz9AOj88w9vb29vb29vd
+ 3d3b29vb29zcxkBAOjo4MikcCwsLCwwp9hcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAABf2LA4NDQ0NGik3Nzo6OkbV4eHh4eHh4VU8Z+Te4eHh4eHCPEzc3uHh4eHh3Do6Ojo6Ojo6QTrH
+ 4eHh4eHh4aaWo+Hh4eHh4eHHPzo6Pzo3KhwMDAwMDCn2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAF/YqDQ0NDg8aLDQ6OkY6QNbj4+Pj4+PjWDpn4+Pj4+Pj48Q6SuTj4+Pj4+PcRjpG
+ OkY6RjpBP8fj4+Pj4+PkYjxc4+Th4+Pj480/Pzo6OjIqHA0NDQ0OLPYXAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAX9iwODg4ODBovNzo6QDpE2ubl5+bn5uZVOmrl5+bn5ufmxz9K5Ofl
+ 5+bn5uRHOkA6QDpAOkA6x+bn5ufm5+ZnOl/m5+fn5+bnzjw6QDo8NykgDg0NDQ0q9hcAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf3Kg8PDg4XGiw2OjpAOkDc7Ofs5+zn59XN1ufs5+zn
+ 7efIQUvl7Ofs5+zn6c3Nzc3Nzc3GQTzU5+zn7Ofs52Y6X+fn7Ofs5+nVRj9AOjg3KRwODg4ODiz2FwAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/YpEQ8PDw8aKjk6P0A/Qd7t7e3t7e3t
+ 7e3t7e3t7e3t7cc/S+fv7e3t7e3t7e3t7e3t7eNHOtXu7e3t7e3tZzpg7e3t7e3t7dU/Ojo8OjQsGhAO
+ Dg4OKvcXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX9ywOEBAREh8pNjo8Pz9B
+ 4fDw8PDw8PDw8PDw8PDw8PDv1T9M7PDw8PDw8PDw8PDw8PDx50c61PDw8PDw8PBmP1/w8PDw8PDw2EA/
+ Rjo5NywcDQ8PDxEp9hcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf3LBcRERER
+ Gi83OTpBQEDj8vLy8vLy8vLy8vLy8vLy8vLOOkzy8/Ly8vLy8vLy8vLy8vLsRjrZ8vLy8vLy8mc/X/Ly
+ 8vLy8vLbQD8/Ojo3LB8XEBAQDiz3FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ FPcqEREREhQgLDc6Pzo/Ruf09PT09PT09PT09PT09PT09NVATPL09PT09PT09PT09PT09OxGP9r09PT0
+ 9PT0Zz9g9PT09PT09N1BQUA8PDkqGhERERIXKfYXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAX9i8SEhISEBoqOjw/R0BBnqenp6enp6enp6enp6enp6enlD9Ipaenp6enp6enp6enp6en
+ okc/laenp6enp6dWP1Knp6anp6aml0A/Ojo/NikgEREREQ8p9xcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAABf3LxISEhIXICk4OjpAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
+ QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEFHOjw4LB8SERARFy/2FwAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/YxEhIREhEaMDY8P0BAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
+ QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEA6OjkpIhYUFxISL/YXAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX9i8XERcSFyUvNjo8P0FBQUFBQUFBQUFBQUFB
+ QUFBQUFBQUFBQUFBQUFBQUFBQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEA6OioaEBESEhYw
+ 9hcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf2MhYXEhcSICk6OkZHQUFBQUFB
+ QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQT9AP0BBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFAPzw3
+ KSQXFxEXESn2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/YqFxcXFxciKjk6
+ Oj9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBR0BHQEFBQD9BQUFBQUFBQUFBQUFBQUFB
+ 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
+ GjjX4SYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/Y5ICAfHx8lMDhG
+ RkdHRkZGRkZGRkZGRkZGRkdHR0dHR0dHR0dHR0dHPzkwIh8fOTo/Ojo6Pzw6Oj86Ojw8PDo6Ojo6Ojo6
+ KSAfHx8fHx841+ElAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX9zog
+ ICAgICQ3Oj9GRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkRAOjAgISY6QEA6QDpAOkA6OjxBOjxB
+ OkA6PD86PCofICAgICAgONjhJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAABf3OiIiISEhJTA6QUZERkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGREA5LyUgJzpBOjpBOkE6
+ QTpBOkE6OkA6Ojo6QTosICAgICAgIDjZ4SQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAFPc6ISEhISElNzk/RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZEPzkvISIp
+ OjxAOkA6QDpAOkA6P0E6P0E6Rzo8KCEhISEhISE52eElAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAX9zoiICIiIiYwOkFGRkdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRkZG
+ REY6PDAlIig/Rj8/Pz8/Pz8/Pz8/PzpAPzo/OikiISEhHyEhONfhJgAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABT3PCUlISEhJjc5RkdHR0dHR0dHR0dHR0dHR0dHR0dH
+ R0dHR0dHR0dHR0E6MCQhKTpAQEBAQEBAQEBAQEBARj9ARjopICAgICElITzY4SUAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/c6KCUlJSUmMDpBREdHR0dHR0dHR0dH
+ R0dHR0dHR0dHR0dHR0dHR0ZHQTowJCUqRj9AQUFBQUFBQT9AQUE/OkY6KSQlJSUlJSI62+EkAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU9zokJCQkJCY3PEdGR0hI
+ SEhISEhISEhISEdHR0dHR0dHR0dHR0dHR0Q/OjAkJSk/RkE/P0BBQEE/RkFAQUZHPyokJCQkJCImOtjh
+ JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf2QCUlJSUl
+ JzE6REdISEhISEhISEhISEhISEhISEhISEhISEhISEhHREY4MSYlLEZAQEZGRkBGQEZAQEY/QUEpJSQk
+ JCQkJT/a4SUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ F/c/JSUlJSUmNzpBRkhISEhISEhISEhISEhISEhISEhISEhISEhISEdHQTowJigpR0dGQUFBR0FGQEZG
+ QEdAKiUlJSUlJSc63eElAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAX9kEnJiYmJic3OkdHSEhISEhISEhISEhISEhISEhISEhISEhISEhIR0ZGOjAmJilJRkdH
+ R0ZBRkFGQURGPyomJiYmJiYlP9zhJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAARf2PycnJycnKTc6REdJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSEhISEhIRkE5
+ MSYoKkZGRkZHR0dHR0dHREYqJiYmJiYmJkHc4SUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/ZHKCgoKCgoNDpHSElJSUlJSUlJSUlJSUlJSUlJSUlJSUlJ
+ SUlJSUhHRzoyJicvRkZGRkZGRkZGRkRBLCgnJycnJyVB4eEkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU9kAoKCgoKCk3OkRHSUlJSUlJSUlJSUlJSUlJ
+ SUlJSUlJSUlJSUlJSEhEOjEnKDBHR0dHR0dHR0ZERikoKCgoKCgoR+HhJAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf2RigqKikpKTQ6RklJSkpKSkpK
+ SUlJSUlJSUlJSUlJSUlJSUlJSUlIR0E6MicpMUhISEhISEhISEYoKSkoKCgoJkTh4SUAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/ZHKSooKSkqNzpH
+ SEpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSklHRzowKCgvSUlJSUlJSUlELCkpKCkpKSlH5OEmAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX9kYq
+ KSksLCo0OkZJSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSUhGOjcnKTdKSUpMS0pKRikpLykpKios
+ SOHhJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAARf2RyopLyksKTc6R0hKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpJRkY8MSopNEtLS0tKTEcp
+ KSksLCwpKUjh5CUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAF/ZHLCovKSopNzpKSktLS0tLS0tLS0tLS0tLS0tKSkpKSkpKSkpKSkpIRjo3KCk4
+ S0xMTExGKSosLCopKipR59omAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAEY9kopLC8pLCo3OkRJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tL
+ SklHOjQpKTRPTEtLRCkvLykpLyksVufVDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABb2SCoqMSkwLDc/R0dLS0tLS0tLS0tLS0tLS0tLS0tL
+ S0tLS0tLS0tKSUc6NiosN0xMTEcpLywqKi8vKVjs1g4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGPZIMSkxKikqNDpHSUtLTExMS0tLS0tL
+ S0tLS0tLS0tLS0tLS0tLS0pJRzo0Ki80TExGMSkxKTEqKi9Z59UOAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW9kkvKjAqMCkxOkdHSEtJ
+ SUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlLSklHPDQpLypVRzAvKjAqMCkyWufXDAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARr2SC8vLzAw
+ KCw5OkdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0ZJR0Q6MSkxKjoqLy8vMDIyKlXs1A0AAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ BPFYMDAwMDApJzA3P0ZBR0ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkFBOjkpKTAvLy8vLy8vLypZ8dcN
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAEB24IwMDAwMDAkJyo2OTk8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8OTg2MSYnMDAwMDAw
+ MDAxWe7UBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAC4wjIxMTExMS8lJSgpKjAqMCowKjAqMCowKjAqMCowKjAqMCowKjAqLyol
+ GigwMDAwMDAwL1zx1QoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlr0RzAyMjIxMTEsKigoKSkpKSkpKSkpKSkpKSkpKSkpKSkp
+ KSkpKSgoJyUlMDExMTEyMjJZ8ccBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeSnNzQxMTAxMDEwMTAxMDEwMTAxMDEwMTIy
+ MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjAxWfHPAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf/ZqMjcwNzI3MjcyNzI3Mjcy
+ NzI3MjcyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyN1/xxwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuO1YNjc0NDQ0
+ NDQ0NDQ0NDQ0NDQ0NDQ3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzJh8MoBAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH
+ 2+dvNDQyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjQ0NDQ0YvDCBgAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAGx/awVzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NDQ0NGLuxAEAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAiOf0xJeCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKe
+ 8M4OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITV4+Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl
+ 5eXl5eXl5uSwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////4AAAAAAAAAAAD////////8AAAAAAAAAAAAP///////8AAAAAAAAAAAAB///////+
+ AAAAAAAAAAAAAP///////AAAAAAAAAAAAAB///////wAAAAAAAAAAAAAP//////4AAAAAAAAAAAAAD//
+ ////+AAAAAAAAAAAAAAf//////gAAAAAAAAAAAAAH//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA
+ AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAA
+ AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w
+ AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//
+ ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA
+ AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAA
+ AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w
+ AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//
+ ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA
+ AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAA
+ AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w
+ AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//
+ ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA
+ AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAA
+ AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w
+ AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//
+ ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAH//////wAAAAAAAAAAAAAD//////8AAAAAAAAAAA
+ AAB///////AAAAAAAAAAAAAA///////wAAAAAAAAAAAAAf//////8AAAAAAAAAAAAAP///////AAAAAA
+ AAAAAAAH///////wAAAAAAAAAAAAD///////8AAAAAAAAAAAAB////////AAAAAAAAAAAAA////////w
+ AAAAAAAAAAAAf///////8AAAAAAAAAAAAP////////AAAAAAAAAAAAH////////wAAAAAAAAAAAD////
+ ////8AAAAAAAAAAAB/////////AAAAAAAAAAAA/////////wAAAAAAAAAAAf////////8AAAAAAAAAAA
+ P/////////AAAAAAAAAAAH/////////wAAAAAAAAAAD/////////8AAAAAAAAAAB//////////AAAAAA
+ AAAAA//////////wAAAAAAAAAAf/////////8AAAAAAAAAAP//////////AAAAAAAAAAH//////////w
+ AAAAAAAAAD//////////8AAAAAAAAAB///////////AAAAAAAAAA///////////wAAAAAAAAAf//////
+ ////8AAAAAAAAAP///////////AAAAAAAAAH///////////wAAAAAAAAD///////////+AAAAAAAAB//
+ //////////gAAAAAAAA////////////8AAAAAAAAf////////////AAAAAAAAP////////////4AAAAA
+ AAH/////////////AAAAAAAD/////////////8AAAAAAB//////////////wAAAAAB//////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////ygAAABAAAAAgAAAAAEAIAAAAAAAAIAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAIAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAA
+ AwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAA
+ AwAAAAMAAAADAAAAAwAAAAMAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAABgAAAB8AAAA8AAAASQAAAEoAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAA
+ SwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAA
+ SwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEoAAABKAAAAQwAAAC4AAAASAAAAAgAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEtJSUmm////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////AAAA
+ dQAAADEAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAFj/////AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/zIyMv//////AAAAPgAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAADv/////AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAAAsAAAAAQAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAA8AAAB3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8RERH/AAAA
+ awAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAj/////wAAAP8AAAD/AAAA/xcXF/8kJCT/KSkp/yoqKv8qKir/Kioq
+ /yoqKv8qKir/Kioq/yoqKv8qKir/Kioq/yoqKv8qKir/Kioq/yoqKv8qKir/Kioq/yoqKv8qKir/Kioq
+ /yoqKv8qKir/Kioq/yoqKv8qKir/Kioq/yoqKv8qKir/Kioq/yoqKv8qKir/Kioq/ygoKP8hISH/AAAA
+ /wAAAP8AAAD/AAAA//7+/v8AAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANP////8AAAD/AAAA/wAAAP8jIyP/Li4u
+ /zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy
+ /zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy
+ /zIyMv8xMTH/LCws/yEhIf8AAAD/AAAA/wAAAP//////AAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADr/////AAAA
+ /wAAAP8AAAD/Jycn/zExMf80NDT/NDQ0/6qqqv+qqqr/qqqq/6qqqv80NDT/NDQ0/6qqqv+qqqr/NDQ0
+ /zQ0NP+qqqr/qqqq/6qqqv+qqqr/qqqq/zQ0NP+qqqr/qqqq/6qqqv+qqqr/NDQ0/6qqqv+qqqr/NDQ0
+ /6qqqv+qqqr/qqqq/6qqqv80NDT/NDQ0/zExMf8nJyf/AAAA/wAAAP8AAAD//////wAAADkAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAEAAAA7/////wAAAP8AAAD/AAAA/ykpKf8yMjL/NTU1/zU1Nf81NTX/NTU1/7e3t/+3t7f/NTU1
+ /zU1Nf+3t7f/t7e3/zU1Nf81NTX/t7e3/7e3t/81NTX/t7e3/7e3t/81NTX/t7e3/7e3t/+3t7f/t7e3
+ /zU1Nf+3t7f/t7e3/zU1Nf+3t7f/t7e3/7e3t/+3t7f/NDQ0/zQ0NP8xMTH/KCgo/wAAAP8AAAD/AAAA
+ //////8AAAA7AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAO/////8AAAD/AAAA/wAAAP8qKir/MzMz/zY2Nv82Njb/NTU1
+ /zU1Nf/FxcX/xcXF/zU1Nf81NTX/xcXF/8XFxf81NTX/NTU1/8XFxf/FxcX/NTU1/8XFxf/FxcX/NTU1
+ /8XFxf/FxcX/xcXF/8XFxf81NTX/xcXF/8XFxf81NTX/xcXF/8XFxf/FxcX/xcXF/zU1Nf81NTX/MjIy
+ /ykpKf8AAAD/AAAA/wAAAP//////AAAAOwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////AAAA/wAAAP8AAAD/Kioq
+ /zMzM/82Njb/NjY2/9PT0//T09P/09PT/9PT0/82Njb/NjY2/9PT0//T09P/NjY2/zY2Nv/T09P/09PT
+ /zY2Nv/T09P/09PT/zY2Nv/T09P/09PT/9PT0//T09P/NjY2/9PT0//T09P/NjY2/9PT0//T09P/09PT
+ /9PT0/82Njb/NjY2/zMzM/8qKir/AAAA/wAAAP8AAAD//////wAAADsAAAABAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7////
+ /wAAAP8AAAD/AAAA/ysrK/80NDT/Nzc3/zc3N//g4OD/4ODg/zc3N/83Nzf/NjY2/zY2Nv/g4OD/4ODg
+ /zY2Nv82Njb/4ODg/+Dg4P82Njb/4ODg/+Dg4P82Njb/4ODg/+Dg4P/g4OD/4ODg/zY2Nv/g4OD/4ODg
+ /zY2Nv/g4OD/4ODg/+Dg4P/g4OD/NjY2/zY2Nv8zMzP/Kioq/wAAAP8AAAD/AAAA//////8AAAA7AAAA
+ AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAABAAAAO/////8AAAD/AAAA/wAAAP8rKyv/NDQ0/zc3N/83Nzf/7e3t/+3t7f/t7e3/7e3t
+ /zc3N//t7e3/7e3t/+3t7f/t7e3/7e3t/+3t7f/t7e3/Nzc3/+3t7f/t7e3/Nzc3/+3t7f/t7e3/7e3t
+ /+3t7f83Nzf/7e3t/+3t7f83Nzf/7e3t/+3t7f/t7e3/7e3t/zc3N/83Nzf/NDQ0/ysrK/8AAAD/AAAA
+ /wAAAP//////AAAAOwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////AAAA/wAAAP8AAAD/LCws/zU1Nf84ODj/ODg4
+ //r6+v/6+vr/+vr6//r6+v84ODj/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/zg4OP/6+vr/+vr6
+ /zg4OP/6+vr/+vr6//r6+v/6+vr/Nzc3//r6+v/6+vr/Nzc3//r6+v/6+vr/+vr6//r6+v83Nzf/Nzc3
+ /zQ0NP8rKyv/AAAA/wAAAP8AAAD//////wAAADsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7/////wAAAP8AAAD/AAAA
+ /ywsLP81NTX/ODg4/01NTf+jo6P/o6Oj/6Ojo/+ZmZn/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/o6Oj
+ /6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/84ODj/o6Oj/6Ojo/+jo6P/o6Oj/zg4OP+fn5//o6Oj
+ /6Ojo/+jo6P/RUVF/zg4OP81NTX/LCws/wAAAP8AAAD/AAAA//////8AAAA7AAAAAQAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA
+ O/////8CAgL/AQEB/wEBAf8sLCz/NjY2/zk5Of9RUVH/qamp/6mpqf+pqan/oKCg/zk5Of85OTn/OTk5
+ /zk5Of85OTn/OTk5/6mpqf+pqan/qamp/6mpqf+pqan/qamp/6mpqf+pqan/OTk5/6mpqf+pqan/qamp
+ /6mpqf84ODj/pqam/6mpqf+pqan/qamp/0ZGRv84ODj/NTU1/ywsLP8BAQH/AQEB/wEBAf//////AAAA
+ OwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAQAAADv/////AwMD/wMDA/8DAwP/LCws/zY2Nv85OTn/UlJS/7CwsP+wsLD/sLCw
+ /6Wlpf85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of+wsLD/sLCw/7CwsP+wsLD/sLCw/7CwsP+wsLD/sLCw
+ /zk5Of+wsLD/sLCw/7CwsP+wsLD/OTk5/6ysrP+wsLD/sLCw/7CwsP9ISEj/OTk5/zY2Nv8sLCz/AgIC
+ /wICAv8CAgL//////wAAADsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7/////wQEBP8EBAT/BAQE/y0tLf83Nzf/Ojo6
+ /1NTU/+3t7f/t7e3/7e3t/+rq6v/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/t7e3/7e3t/+3t7f/t7e3
+ /zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/t7e3/7e3t/+3t7f/t7e3/zo6Ov+ysrL/t7e3/7e3t/+3t7f/SUlJ
+ /zo6Ov83Nzf/LS0t/wMDA/8DAwP/AwMD//////8AAAA7AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAO/////8GBgb/BgYG
+ /wYGBv8uLi7/ODg4/zs7O/9VVVX/vr6+/76+vv++vr7/sbGx/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6
+ /76+vv++vr7/vr6+/76+vv86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/76+vv++vr7/vr6+/76+vv+/v7//vr6+
+ /76+vv++vr7/vr6+/0lJSf86Ojr/Nzc3/y0tLf8FBQX/BQUF/wUFBf//////AAAAOwAAAAEAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AQAAADv/////BwcH/wcHB/8HBwf/Li4u/zg4OP87Ozv/VlZW/8XFxf/FxcX/xcXF/7e3t/87Ozv/Ozs7
+ /zs7O/87Ozv/Ozs7/zs7O//FxcX/xcXF/8XFxf/FxcX/Ozs7/zs7O/87Ozv/Ozs7/zs7O//FxcX/xcXF
+ /8XFxf/FxcX/xcXF/8XFxf/FxcX/xcXF/8XFxf9KSkr/Ozs7/zg4OP8uLi7/BgYG/wYGBv8GBgb/////
+ /wAAADsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAEAAAA7/////wgICP8ICAj/CAgI/y8vL/85OTn/PDw8/1hYWP/MzMz/zMzM
+ /8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP88PDz/zMzM/8zMzP/MzMz/zMzM/zw8PP87Ozv/Ozs7
+ /zs7O/87Ozv/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/SkpK/zs7O/84ODj/Li4u
+ /wcHB/8HBwf/BwcH//////8AAAA7AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAO/////8KCgr/CgoK/woKCv8vLy//OTk5
+ /zw8PP9YWFj/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/PDw8/9LS0v/S0tL/0tLS
+ /9LS0v88PDz/PDw8/zw8PP88PDz/PDw8/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v88PDz/PDw8
+ /zw8PP88PDz/OTk5/y8vL/8JCQn/CQkJ/wkJCf//////AAAAOwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////CwsL
+ /wsLC/8LCwv/MDAw/zo6Ov89PT3/WVlZ/9nZ2f/Z2dn/2dnZ/8vLy/9PT0//2dnZ/9nZ2f/Z2dn/2dnZ
+ /z09Pf/Z2dn/2dnZ/9nZ2f/Z2dn/PT09/z09Pf89PT3/PT09/z09Pf/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ
+ /9nZ2f/Z2dn/09PT/9PT0/9KSkr/PDw8/zk5Of8vLy//CgoK/woKCv8KCgr//////wAAADsAAAABAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAEAAAA7/////wwMDP8MDAz/DAwM/zAwMP86Ojr/PT09/1paWv/g4OD/4ODg/+Dg4P/Nzc3/PT09
+ /+Dg4P/g4OD/4ODg/+Dg4P89PT3/4ODg/+Dg4P/g4OD/4ODg/z09Pf89PT3/PT09/z09Pf89PT3/4ODg
+ /+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/TU1N/z09Pf86Ojr/MDAw/wwMDP8MDAz/CwsL
+ //////8AAAA7AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAO/////8ODg7/Dg4O/w4ODv8wMDD/Ozs7/z4+Pv9cXFz/5+fn
+ /+fn5//n5+f/1NTU/z4+Pv/n5+f/5+fn/+fn5//n5+f/Pj4+/+fn5//n5+f/5+fn/+fn5/8+Pj7/Pj4+
+ /z4+Pv8+Pj7/Pj4+/+fn5//n5+f/5+fn/+fn5/8+Pj7/39/f/+fn5//n5+f/5+fn/05OTv8+Pj7/Ozs7
+ /zAwMP8NDQ3/DQ0N/w0NDf//////AAAAOwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////Dw8P/w8PD/8PDw//MTEx
+ /zw8PP8/Pz//XV1d/+7u7v/u7u7/7u7u/+7u7v/u7u7/7u7u/+7u7v/u7u7/7u7u/z4+Pv/u7u7/7u7u
+ /+7u7v/u7u7/7u7u/+7u7v/u7u7/7u7u/z4+Pv/u7u7/7u7u/+7u7v/u7u7/Pj4+/+bm5v/u7u7/7u7u
+ /+7u7v9OTk7/Pj4+/zs7O/8wMDD/Dg4O/w4ODv8ODg7//////wAAADsAAAABAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7////
+ /xAQEP8QEBD/EBAQ/zExMf88PDz/Pz8//11dXf/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1
+ //X19f8/Pz//9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f8/Pz//9fX1//X19f/19fX/9fX1
+ /z8/P//s7Oz/9fX1//X19f/19fX/UFBQ/z8/P/88PDz/MTEx/xAQEP8QEBD/EBAQ//////8AAAA7AAAA
+ AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAABAAAAO/////8SEhL/EhIS/xISEv8yMjL/PT09/0BAQP9eXl7//Pz8//z8/P/8/Pz//Pz8
+ //z8/P/8/Pz//Pz8//z8/P/8/Pz/QEBA//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz/Pz8/
+ //z8/P/8/Pz//Pz8//z8/P8/Pz//8/Pz//z8/P/8/Pz//Pz8/1BQUP8/Pz//PDw8/zExMf8RERH/ERER
+ /xEREf//////AAAAOwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////ExMT/xMTE/8TExP/MjIy/z09Pf9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /z09Pf8yMjL/EhIS/xISEv8SEhL//////wAAADsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7/////xQUFP8UFBT/FBQU
+ /zMzM/8+Pj7/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP89PT3/MjIy/xQUFP8UFBT/FBQU//////8AAAA7AAAAAQAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA
+ O/////8WFhb/FhYW/xYWFv8zMzP/Pj4+/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/Pj4+/zMzM/8VFRX/FRUV/xUVFf//////AAAA
+ OwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAQAAADv/////FxcX/xcXF/8XFxf/NDQ0/z8/P/9CQkL/QkJC/0JCQv9CQkL/QkJC
+ /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0FBQf8/Pz//PT09
+ /zw8PP87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zg4OP8uLi7/FhYW
+ /xYWFv8WFhb//////wAAADsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7/////xgYGP8YGBj/GBgY/zQ0NP9AQED/Q0ND
+ /0NDQ/9DQ0P/Q0ND/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC
+ /0BAQP88PDz/NjY2/y8vL/8sLCz/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr
+ /ysrK/8pKSn/ISEh/xgYGP8YGBj/GBgY//////8AAAA6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAO/////8aGhr/Ghoa
+ /xoaGv80NDT/QEBA/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND
+ /0NDQ/9DQ0P/Q0ND/0FBQf88PDz/MTEx/yQkJP8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ
+ /xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ/xkZGf//////AAAANAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AQAAADv/////Gxsb/xsbG/8bGxv/NTU1/0FBQf9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE
+ /0RERP9ERET/RERE/0NDQ/9DQ0P/Q0ND/0JCQv8+Pj7/MjIy/x8fH/8bGxv/GBgY/zY2Nv82Njb/NjY2
+ /zY2Nv82Njb/NjY2/zY2Nv81NTX/NTU1/zU1Nf81NTX/NTU1/xwcHP8aGhr/Ghoa/xoaGv8aGhr/////
+ /wAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAEAAAA7/////xwcHP8cHBz/HBwc/zU1Nf9BQUH/RERE/0RERP9ERET/RERE
+ /0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9CQkL/Ozs7/ykpKf8cHBz/Nzc3
+ /zg4OP84ODj/ODg4/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/8cHBz/HBwc
+ /xwcHP8cHBz//v7+/wAAADwAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAO/////8eHh7/Hh4e/x4eHv82Njb/QkJC
+ /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/QkJC
+ /zc3N/8ZGRn/HR0d/zo6Ov85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5
+ /zk5Of8dHR3/HR0d/x0dHf8dHR3//////wAAAD8AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////Hx8f
+ /x8fH/8fHx//NjY2/0JCQv9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF
+ /0VFRf9FRUX/RUVF/0JCQv81NTX/Hx8f/ykpKf87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7
+ /zs7O/87Ozv/Ozs7/zo6Ov8eHh7/Hh4e/x4eHv8eHh7//v7+/wAAAD4AAAAIAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAEAAAA7/////yAgIP8gICD/ICAg/zc3N/9DQ0P/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG
+ /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9CQkL/NTU1/yAgIP86Ojr/PT09/z09Pf89PT3/PT09
+ /z09Pf89PT3/PT09/z09Pf89PT3/PT09/zw8PP8gICD/ICAg/yAgIP8gICD//v7+/wAAAD4AAAAHAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAO/////8iIiL/IiIi/yIiIv84ODj/RERE/0dHR/9HR0f/RkZG
+ /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/QkJC/zU1Nf8hISH/Pz8/
+ /z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8+Pj7/Pj4+/z4+Pv8hISH/ISEh/yEhIf8hISH/////
+ /wAAAD4AAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////IyMj/yMjI/8jIyP/ODg4
+ /0RERP9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH
+ /0NDQ/81NTX/IyMj/0FBQf9BQUH/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP8iIiL/IiIi
+ /yIiIv8iIiL//////wAAAD8AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7////
+ /yUlJf8lJSX/JSUl/zg4OP9FRUX/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI
+ /0hISP9ISEj/SEhI/0hISP9DQ0P/NTU1/yQkJP9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC
+ /0JCQv8kJCT/JCQk/yQkJP8kJCT//////wAAAD4AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAABAAAAO/////8mJib/JiYm/yYmJv84ODj/RUVF/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI
+ /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/RERE/zY2Nv8lJSX/RERE/0RERP9ERET/RERE
+ /0RERP9ERET/RERE/0RERP8lJSX/JSUl/yUlJf8lJSX//////wAAAD4AAAAHAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////Jycn/ycnJ/8nJyf/OTk5/0ZGRv9JSUn/SUlJ
+ /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0VFRf83Nzf/Jycn
+ /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv8nJyf/Jycn/ycnJ/8nJyf//////wAAAD4AAAAHAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7/////ykpKf8pKSn/KSkp
+ /zk5Of9GRkb/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ
+ /0lJSf9FRUX/Nzc3/ygoKP9ISEj/SEhI/0hISP9ISEj/SEhI/0dHR/8oKCj/KCgo/ygoKP8oKCj/////
+ /wAAAD8AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA
+ O/////8qKir/Kioq/yoqKv86Ojr/R0dH/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK
+ /0pKSv9KSkr/SkpK/0pKSv9KSkr/RkZG/zc3N/8pKSn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf8pKSn/KSkp
+ /ykpKf8pKSn//////wAAAD4AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAQAAADv/////Kysr/ysrK/8rKyv/Ojo6/0dHR/9KSkr/SkpK/0pKSv9KSkr/SkpK
+ /0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0ZGRv83Nzf/Kysr/0tLS/9LS0v/S0tL
+ /0tLS/8rKyv/Kysr/ysrK/8rKyv//////wAAAD0AAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA6/////ywsLP8sLCz/LCws/zo6Ov9ISEj/S0tL
+ /0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9HR0f/ODg4
+ /ywsLP9NTU3/TU1N/0tLS/8sLCz/LCws/ywsLP8sLCz//////wAAADoAAAAGAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOf////8uLi7/Li4u
+ /y4uLv84ODj/R0dH/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL
+ /0pKSv9KSkr/RkZG/zg4OP8tLS3/SUlJ/05OTv8tLS3/LS0t/y0tLf8tLS3//////wAAADkAAAAHAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAADD/////Ly8v/y8vL/8vLy//Li4u/z4+Pv9FRUX/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG
+ /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0JCQv80NDT/Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//////
+ /wAAADgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAd/////zAwMP8wMDD/MDAw/x0dHf8rKyv/MjIy/zQ0NP80NDT/NDQ0
+ /zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP8xMTH/JiYm/zAwMP8wMDD/MDAw
+ /zAwMP8wMDD//////wAAADcAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsXFxbkyMjL/MjIy/zIyMv8yMjL/MjIy
+ /zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8xMTH/MTEx
+ /zExMf8xMTH/MTEx/zExMf8xMTH//////wAAADYAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAn////
+ /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz
+ /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP//////wAAADUAAAAFAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAABQAAADT/////NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0
+ /zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT//////wAAADUAAAAGAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAIrS0tJ3/////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /wAAAC8AAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAA
+ EgAAABcAAAAXAAAAFwAAABcAAAAXAAAAFwAAABcAAAAXAAAAFwAAABcAAAAXAAAAFwAAABcAAAAXAAAA
+ FwAAABcAAAAXAAAAFgAAAA4AAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////////////////////////////////////////////
+ ///4AAAAAD////AAAAAAD///4AAAAAAH///gAAAAAAf//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AA
+ AAAAA///wAAAAAAD///AAAAAAAP//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AAAAAAA///wAAAAAAD
+ ///AAAAAAAP//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AA
+ AAAAA///wAAAAAAD///AAAAAAAP//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AAAAAAA///wAAAAAAD
+ ///AAAAAAAP//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AAAAAAB///wAAAAAAP///AAAAAAB///8AA
+ AAAAP///wAAAAAB////AAAAAAP///8AAAAAB////wAAAAAP////AAAAAB////8AAAAAP////wAAAAB//
+ ///AAAAAP////8AAAAB/////wAAAAP/////AAAAB/////8AAAAP/////wAAAB//////gAAAP//////AA
+ AB//////+AAAP/////////////////////////////////////////////////////////8oAAAAQAAA
+ AIAAAAABAAgAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wEBAf8CAgL/AwMD/wQEBP8FBQX/BgYG
+ /wcHB/8ICAj/CQkJ/woKCv8LCwv/DAwM/w0NDf8ODg7/Dw8P/xAQEP8RERH/EhIS/xMTE/8UFBT/FRUV
+ /xYWFv8XFxf/GBgY/xkZGf8aGhr/Gxsb/xwcHP8dHR3/Hh4e/x8fH/8gICD/ISEh/yIiIv8jIyP/JCQk
+ /yUlJf8mJib/Jycn/ygoKP8pKSn/Kioq/ysrK/8sLCz/LS0t/y4uLv8vLy//MDAw/zExMf8yMjL/MzMz
+ /zQ0NP81NTX/NjY2/zc3N/84ODj/OTk5/zo6Ov87Ozv/PDw8/z09Pf8+Pj7/Pz8//0BAQP9BQUH/QkJC
+ /0NDQ/9ERET/RUVF/0ZGRv9HR0f/SEhI/0lJSf9KSkr/S0tL/01NTf9PT0//UFBQ/1FRUf9TU1P/VVVV
+ /1ZWVv9XV1f/WFhY/1lZWf9bW1v/XV1d/15eXv9fX1//YGBg/2NjY/9kZGT/ZWVl/2ZmZv9nZ2f/aGho
+ /2lpaf9qamr/a2tr/2xsbP9tbW3/bm5u/29vb/9wcHD/cXFx/3Nzc/90dHT/dXV1/3Z2dv93d3f/eHh4
+ /3l5ef96enr/e3t7/3x8fP99fX3/fn5+/39/f/+AgID/gYGB/4KCgv+Dg4P/hISE/4WFhf+Ghob/h4eH
+ /4iIiP+JiYn/ioqK/4yMjP+Ojo7/j4+P/5CQkP+RkZH/kpKS/5OTk/+UlJT/lZWV/5aWlv+Xl5f/mJiY
+ /5mZmf+ampr/m5ub/5ycnP+dnZ3/np6e/5+fn/+goKD/oaGh/6Kiov+jo6P/pKSk/6Wlpf+mpqb/p6en
+ /6ioqP+pqan/qqqq/62trf+urq7/r6+v/7CwsP+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/vb29
+ /76+vv+/v7//wMDA/8LCwv/Dw8P/xMTE/8XFxf/Gxsb/x8fH/8rKyv/Ly8v/zMzM/83Nzf/Ozs7/z8/P
+ /9DQ0P/R0dH/0tLS/9PT0//U1NT/1tbW/9fX1//Y2Nj/2dnZ/9ra2v/c3Nz/3d3d/97e3v/f39//4ODg
+ /+Hh4f/j4+P/5eXl/+bm5v/n5+f/6Ojo/+np6f/r6+v/7e3t/+7u7v/x8fH/9PT0//X19f8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ 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
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////
+ //////////////////////////////////////////////gAAAAAP///8AAAAAAP///gAAAAAAf//+AA
+ AAAAB///wAAAAAAD///AAAAAAAP//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AAAAAAA///wAAAAAAD
+ ///AAAAAAAP//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AA
+ AAAAA///wAAAAAAD///AAAAAAAP//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AAAAAAA///wAAAAAAD
+ ///AAAAAAAP//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AA
+ AAAAA///wAAAAAAH///AAAAAAA///8AAAAAAH///wAAAAAA////AAAAAAH///8AAAAAA////wAAAAAH/
+ ///AAAAAA////8AAAAAH////wAAAAA/////AAAAAH////8AAAAA/////wAAAAH/////AAAAA/////8AA
+ AAH/////wAAAA//////AAAAH/////+AAAA//////8AAAH//////4AAA/////////////////////////
+ /////////////////////////////////ygAAAAwAAAAYAAAAAEAIAAAAAAAAEgAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAA
+ AQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAF4AAABhAAAAYQAAAGEAAABhAAAAYQAAAGEAAABhAAAA
+ YQAAAGEAAABhAAAAYQAAAGEAAABhAAAAYQAAAGEAAABhAAAAYQAAAGEAAABhAAAAYQAAAGEAAABhAAAA
+ YQAAAGEAAABXAAAALgAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJeXl6tOzs7/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAHQAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAB5AAAACQAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPwAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9ubm7/AAAA
+ NgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ bQAAAP8AAAD/AAAA/ykpKf8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v
+ /y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y4uLv8mJib/AAAA
+ /wAAAP8AAAD/AAAAaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAD3Nzc3AAAAP8AAAD/Hh4e/zAwMP80NDT/p6en/6enp/+np6f/p6en/zQ0NP+np6f/p6en
+ /zQ0NP+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/NDQ0/6enp/+np6f/p6en/6enp/+np6f/p6en
+ /zQ0NP8vLy//HR0d/wAAAP8AAAD/3d3d3QAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AAAAP8AAAD/ISEh/zIyMv81NTX/NTU1/zU1Nf+6urr/urq6
+ /zU1Nf+6urr/urq6/zU1Nf+6urr/urq6/7q6uv+6urr/urq6/7q6uv+6urr/urq6/7q6uv+6urr/urq6
+ /7q6uv+6urr/urq6/zU1Nf8yMjL/ISEh/wAAAP8AAAD/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AAAAP8AAAD/ISEh/zMzM/82Njb/zMzM
+ /8zMzP/MzMz/zMzM/zY2Nv/MzMz/zMzM/zY2Nv/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM
+ /8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/zU1Nf8yMjL/ISEh/wAAAP8AAAD/3Nzc3gAAAAQAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AAAAP8AAAD/IiIi
+ /zQ0NP83Nzf/3t7e/97e3v82Njb/NjY2/zY2Nv/e3t7/3t7e/zY2Nv/e3t7/3t7e/97e3v/e3t7/3t7e
+ /97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/zY2Nv8zMzP/ISEh/wAAAP8AAAD/3Nzc
+ 3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc
+ 3AAAAP8AAAD/IiIi/zQ0NP83Nzf/7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v
+ /+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/zc3N/80NDT/IiIi
+ /wAAAP8AAAD/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAE3Nzc3AAAAP8AAAD/IyMj/zU1Nf84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4
+ /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4
+ /zg4OP81NTX/IyMj/wAAAP8AAAD/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AEBAf8BAQH/IyMj/zY2Nv85OTn/qKio/6ioqP+oqKj/OTk5
+ /zk5Of85OTn/OTk5/zk5Of+oqKj/qKio/6ioqP+oqKj/qKio/6ioqP84ODj/qKio/6ioqP+oqKj/ODg4
+ /6ioqP+oqKj/qKio/zg4OP81NTX/IyMj/wEBAf8AAAD/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AMDA/8DAwP/JCQk/zc3N/86Ojr/sbGx
+ /7Gxsf+xsbH/OTk5/zk5Of85OTn/OTk5/zk5Of+xsbH/sbGx/7Gxsf+xsbH/sbGx/7Gxsf85OTn/sbGx
+ /7Gxsf+xsbH/OTk5/7Gxsf+xsbH/sbGx/zk5Of82Njb/IyMj/wICAv8CAgL/3Nzc3gAAAAQAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AUFBf8FBQX/JCQk
+ /zc3N/86Ojr/urq6/7q6uv+6urr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov+6urr/urq6/7q6uv86Ojr/Ojo6
+ /zo6Ov86Ojr/urq6/7q6uv+6urr/Ojo6/7q6uv+6urr/urq6/zo6Ov83Nzf/JCQk/wQEBP8EBAT/3Nzc
+ 3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc
+ 3AcHB/8HBwf/JSUl/zg4OP87Ozv/xMTE/8TExP/ExMT/Ozs7/zs7O/87Ozv/Ozs7/zs7O//ExMT/xMTE
+ /8TExP87Ozv/Ozs7/zs7O/87Ozv/xMTE/8TExP/ExMT/xMTE/8TExP/ExMT/xMTE/zs7O/84ODj/JSUl
+ /wYGBv8GBgb/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAE3Nzc3AgICP8ICAj/JSUl/zg4OP88PDz/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N
+ /zw8PP/Nzc3/zc3N/83Nzf88PDz/PDw8/zw8PP88PDz/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N
+ /zs7O/84ODj/JSUl/wgICP8ICAj/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AoKCv8KCgr/JiYm/zk5Of89PT3/1tbW/9bW1v/W1tb/1tbW
+ /9bW1v/W1tb/1tbW/zw8PP/W1tb/1tbW/9bW1v88PDz/PDw8/zw8PP88PDz/1tbW/9bW1v/W1tb/1tbW
+ /9bW1v88PDz/PDw8/zw8PP84ODj/JSUl/woKCv8KCgr/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AwMDP8MDAz/JiYm/zk5Of89PT3/39/f
+ /9/f3//f39//PT09/9/f3//f39//39/f/z09Pf/f39//39/f/9/f3/89PT3/PT09/z09Pf89PT3/39/f
+ /9/f3//f39//39/f/9/f3//f39//39/f/z09Pf85OTn/JiYm/wsLC/8LCwv/3Nzc3gAAAAQAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3A4ODv8ODg7/JiYm
+ /zo6Ov8+Pj7/6Ojo/+jo6P/o6Oj/Pj4+/+jo6P/o6Oj/6Ojo/z4+Pv/o6Oj/6Ojo/+jo6P8+Pj7/Pj4+
+ /z4+Pv8+Pj7/6Ojo/+jo6P/o6Oj/Pj4+/+jo6P/o6Oj/6Ojo/z4+Pv86Ojr/JiYm/w0NDf8NDQ3/3Nzc
+ 3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc
+ 3BAQEP8QEBD/Jycn/zs7O/8/Pz//8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy/z8/P//y8vL/8vLy
+ //Ly8v/y8vL/8vLy//Ly8v8/Pz//8vLy//Ly8v/y8vL/Pz8///Ly8v/y8vL/8vLy/z4+Pv86Ojr/JiYm
+ /w8PD/8PDw//3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAE3Nzc3BISEv8RERH/KCgo/zw8PP9AQED/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7
+ /z8/P//7+/v/+/v7//v7+//7+/v/+/v7//v7+/8/Pz//+/v7//v7+//7+/v/Pz8///v7+//7+/v/+/v7
+ /z8/P/87Ozv/Jycn/xEREf8RERH/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3BMTE/8TExP/KCgo/zw8PP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP88PDz/KCgo/xISEv8SEhL/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3BUVFf8VFRX/KCgo/z09Pf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf89PT3/KCgo/xQUFP8UFBT/3Nzc3gAAAAQAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3BcXF/8XFxf/KSkp
+ /z4+Pv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QUFB
+ /z8/P/89PT3/PT09/z09Pf89PT3/PT09/zw8PP88PDz/PDw8/zw8PP85OTn/JSUl/xYWFv8WFhb/3Nzc
+ 3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc
+ 3BkZGf8ZGRn/Kioq/z8/P/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0JCQv9CQkL/QkJC
+ /0JCQv8/Pz//Nzc3/y0tLf8oKCj/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8kJCT/GBgY
+ /xgYGP8YGBj/3d3d3QAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAE3Nzc3BoaGv8aGhr/Kioq/z8/P/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND
+ /0NDQ/9DQ0P/Q0ND/0FBQf81NTX/ICAg/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa
+ /xoaGv8aGhr/Ghoa/xoaGv8aGhr/wcHBuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3BwcHP8cHBz/Kioq/0BAQP9ERET/RERE/0RERP9ERET/RERE
+ /0RERP9ERET/RERE/0RERP9ERET/RERE/z09Pf8nJyf/HBwc/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3
+ /zc3N/83Nzf/Nzc3/zc3N/8cHBz/HBwc/xwcHP//////AAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3B4eHv8eHh7/Kysr/0FBQf9FRUX/RUVF
+ /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RERE/zk5Of8dHR3/Ojo6/zo6Ov86Ojr/Ojo6
+ /zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/x0dHf8dHR3/HR0d//7+/v8AAAAlAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3CAgIP8gICD/LCws
+ /0JCQv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RUVF/zc3N/8fHx//PDw8
+ /zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP87Ozv/Hx8f/x8fH/8fHx///v7+/wAAACUAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc
+ 3CEhIf8hISH/LCws/0JCQv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RUVF
+ /zc3N/8hISH/Pz8//z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv8hISH/ISEh/yEhIf/+/v7/AAAA
+ JQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAE3Nzc3CMjI/8jIyP/LCws/0NDQ/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH
+ /0dHR/9HR0f/RkZG/zg4OP8jIyP/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QEBA/yMjI/8jIyP/IyMj
+ //////8AAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3CUlJf8lJSX/LS0t/0RERP9ISEj/SEhI/0hISP9ISEj/SEhI
+ /0hISP9ISEj/SEhI/0hISP9ISEj/R0dH/zk5Of8lJSX/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/JSUl
+ /yUlJf8lJSX//////wAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3CcnJ/8nJyf/LS0t/0VFRf9JSUn/SUlJ
+ /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/R0dH/zk5Of8nJyf/RkZG/0ZGRv9GRkb/RUVF
+ /0VFRf8mJib/JiYm/yYmJv//////AAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3CkpKf8pKSn/Li4u
+ /0VFRf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SEhI/zo6Ov8oKCj/SEhI
+ /0hISP9ISEj/SEhI/ygoKP8oKCj/KCgo//////8AAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc
+ 3CoqKv8qKir/Li4u/0ZGRv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SUlJ
+ /zo6Ov8qKir/SkpK/0pKSv9KSkr/Kioq/yoqKv8qKir//////wAAACQAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAE3Nzc3CwsLP8sLCz/Li4u/0dHR/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL
+ /0tLS/9LS0v/SkpK/zs7O/8sLCz/TU1N/01NTf8sLCz/LCws/ywsLP//////AAAAIgAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAC3Nzc3C4uLv8uLi7/Kioq/0VFRf9LS0v/S0tL/0tLS/9LS0v/S0tL
+ /0tLS/9LS0v/S0tL/0tLS/9LS0v/SkpK/zs7O/8uLi7/T09P/y4uLv8uLi7/Li4u//////8AAAAhAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZTAwMP8wMDD/IiIi/zQ0NP89PT3/Pj4+
+ /z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/PT09/zExMf8wMDD/MDAw/zAwMP8wMDD/////
+ /wAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyMv8yMjL/MjIy
+ /zIyMv8pKSn/KSkp/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8xMTH/MTEx
+ /zExMf//////AAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ CP39/f4zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz
+ /zMzM/8zMzP/MzMz//////8AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAA7/////TExM/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1
+ /zU1Nf81NTX/NTU1/zU1Nf81NTX//////wAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAFQAAACMAAAAkAAAAJAAAACQAAAAkAAAA
+ JAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAiAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP///////wAA////
+ ////AAD///////8AAP+AAAAD/wAA/wAAAAH/AAD/AAAAAP8AAP8AAAAA/wAA/gAAAAB/AAD+AAAAAH8A
+ AP4AAAAAfwAA/gAAAAB/AAD+AAAAAH8AAP4AAAAAfwAA/gAAAAB/AAD+AAAAAH8AAP4AAAAAfwAA/gAA
+ AAB/AAD+AAAAAH8AAP4AAAAAfwAA/gAAAAB/AAD+AAAAAH8AAP4AAAAAfwAA/gAAAAB/AAD+AAAAAH8A
+ AP4AAAAAfwAA/gAAAAB/AAD+AAAAAH8AAP4AAAAAfwAA/gAAAAD/AAD+AAAAAf8AAP4AAAAD/wAA/gAA
+ AAf/AAD+AAAAD/8AAP4AAAAf/wAA/gAAAD//AAD+AAAAf/8AAP4AAAD//wAA/gAAAf//AAD+AAAD//8A
+ AP8AAAf//wAA/wAAD///AAD/AAAf//8AAP+AAD///wAA////////AAD///////8AAP///////wAA////
+ ////AAAoAAAAMAAAAGAAAAABAAgAAAAAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wEBAf8CAgL/AwMD
+ /wQEBP8FBQX/BgYG/wcHB/8ICAj/CQkJ/woKCv8LCwv/DAwM/w0NDf8ODg7/Dw8P/xAQEP8RERH/EhIS
+ /xMTE/8UFBT/FRUV/xYWFv8XFxf/GBgY/xkZGf8aGhr/Gxsb/xwcHP8dHR3/Hh4e/x8fH/8gICD/ISEh
+ /yIiIv8jIyP/JCQk/yUlJf8mJib/Jycn/ygoKP8pKSn/Kioq/ysrK/8sLCz/LS0t/y4uLv8vLy//MDAw
+ /zExMf8yMjL/MzMz/zQ0NP81NTX/NjY2/zc3N/84ODj/OTk5/zo6Ov87Ozv/PDw8/z09Pf8+Pj7/Pz8/
+ /0BAQP9BQUH/QkJC/0NDQ/9ERET/RUVF/0ZGRv9HR0f/SEhI/0lJSf9KSkr/S0tL/0xMTP9NTU3/Tk5O
+ /09PT/9RUVH/U1NT/1RUVP9VVVX/VlZW/1dXV/9aWlr/XFxc/11dXf9eXl7/X19f/2FhYf9iYmL/Y2Nj
+ /2VlZf9nZ2f/aGho/2lpaf9sbGz/bW1t/25ubv9zc3P/dnZ2/3d3d/95eXn/enp6/3t7e/98fHz/fX19
+ /35+fv9/f3//gYGB/4iIiP+JiYn/kpKS/5WVlf+Wlpb/l5eX/5iYmP+ZmZn/mpqa/5ubm/+cnJz/nZ2d
+ /56env+fn5//oKCg/6Ghof+ioqL/pKSk/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6urq/+srKz/ra2t
+ /6+vr/+xsbH/srKy/7S0tP+1tbX/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/v7+//8DAwP/BwcH/wsLC
+ /8PDw//ExMT/xcXF/8bGxv/Hx8f/yMjI/8nJyf/Kysr/zMzM/83Nzf/Ozs7/z8/P/9LS0v/U1NT/1dXV
+ /9bW1v/Y2Nj/2tra/9vb2//e3t7/39/f/+Dg4P/h4eH/4uLi/+Pj4//k5OT/5+fn/+jo6P/v7+//8fHx
+ //Ly8v8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkWlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWV1ABAAEBAAAAAAAA
+ AAAAAAAAAAAAB3hmSEdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRFRybwAAAAAAAAAAAAAAAAAAAAAAgykA
+ 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
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAJpZyZGJiYmJiYmJiYmJiYmKOXAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAABVd3R0dHR0dHR0dHR0dXhBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAP///////wAA////////AAD///////8AAP///////wAA/4AAAAP/AAD/AAAAAf8A
+ AP8AAAAA/wAA/wAAAAD/AAD+AAAAAH8AAP4AAAAAfwAA/gAAAAB/AAD+AAAAAH8AAP4AAAAAfwAA/gAA
+ AAB/AAD+AAAAAH8AAP4AAAAAfwAA/gAAAAB/AAD+AAAAAH8AAP4AAAAAfwAA/gAAAAB/AAD+AAAAAH8A
+ AP4AAAAAfwAA/gAAAAB/AAD+AAAAAH8AAP4AAAAAfwAA/gAAAAB/AAD+AAAAAH8AAP4AAAAAfwAA/gAA
+ AAB/AAD+AAAAAP8AAP4AAAAB/wAA/gAAAAP/AAD+AAAAB/8AAP4AAAAP/wAA/gAAAB//AAD+AAAAP/8A
+ AP4AAAB//wAA/gAAAP//AAD+AAAB//8AAP4AAAP//wAA/wAAB///AAD/AAAP//8AAP8AAB///wAA/4AA
+ P///AAD///////8AAP///////wAA////////AAD///////8AACgAAAAgAAAAQAAAAAEAIAAAAAAAACAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ NgAAAIkAAACRAAAAkQAAAJEAAACRAAAAkQAAAJEAAACRAAAAkQAAAJEAAACRAAAAkQAAAJEAAACRAAAA
+ kQAAAJEAAACRAAAAfQAAACIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAE4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAADo6Oj/wAAAP8UFBT/IyMj/yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk
+ /yQkJP8kJCT/JCQk/yQkJP8kJCT/IiIi/wAAAP8AAAD/8fHx/wAAAAMAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAA8AAAD/AAAA/ysrK/8zMzP/oaGh/6Ghof8zMzP/oaGh/zMzM/+hoaH/oaGh
+ /5aWlv+hoaH/oaGh/3x8fP+Tk5P/oaGh/6Ghof8zMzP/Kioq/wAAAP8AAAD/AAAADgAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAP8AAAD/Ly8v/zU1Nf81NTX/vr6+/zU1Nf++vr7/NTU1
+ /76+vv9tbW3/sLCw/76+vv++vr7/i4uL/6urq/++vr7/vr6+/zU1Nf8vLy//AAAA/wAAAP8AAAARAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAA/wAAAP8wMDD/NjY2/9nZ2f+NjY3/NjY2
+ /9nZ2f82Njb/2dnZ/3R0dP/IyMj/2dnZ/9nZ2f+Xl5f/wMDA/9nZ2f/Z2dn/NjY2/zAwMP8AAAD/AAAA
+ /wAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAD/AAAA/zExMf83Nzf/9PT0
+ //T09P/v7+//9PT0//T09P/09PT/enp6/+Hh4f/09PT/9PT0/6Ojo//W1tb/9PT0//T09P83Nzf/MDAw
+ /wAAAP8AAAD/AAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQEBAf8BAQH/MjIy
+ /zk5Of+mpqb/pqam/zg4OP84ODj/ODg4/6ampv+mpqb/pqam/6ampv85OTn/pqam/6Wlpf+mpqb/pqam
+ /zg4OP8xMTH/AAAA/wAAAP8AAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAwMD
+ /wMDA/8zMzP/Ojo6/7Ozs/+zs7P/Ojo6/zo6Ov86Ojr/s7Oz/7Ozs/+ysrL/srKy/zo6Ov+zs7P/s7Oz
+ /7Ozs/+zs7P/OTk5/zIyMv8DAwP/AwMD/wAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAABEGBgb/BgYG/zQ0NP87Ozv/wcHB/8HBwf87Ozv/Ozs7/zs7O//BwcH/wcHB/zs7O/87Ozv/PDw8
+ /8HBwf/BwcH/wcHB/8HBwf86Ojr/MzMz/wYGBv8FBQX/AAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAEQkJCf8JCQn/NTU1/zw8PP/Pz8//z8/P/8/Pz//Pz8//Pz8//8/Pz//Pz8//PDw8
+ /zw8PP89PT3/z8/P/8/Pz//Pz8//z8/P/zw8PP81NTX/CAgI/wgICP8AAAARAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAARCwsL/wsLC/82Njb/PT09/93d3f/d3d3/3Nzc/93d3f9AQED/3d3d
+ /93d3f89PT3/PT09/z4+Pv/d3d3/3d3d/93d3f/d3d3/PT09/zY2Nv8LCwv/CwsL/wAAABEAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEODg7/Dg4O/zc3N/8+Pj7/6urq/+rq6v/p6en/6urq
+ /0FBQf/q6ur/6urq/0NDQ/9DQ0P/Pz8//+rq6v/o6Oj/6urq/+rq6v8+Pj7/Nzc3/w4ODv8ODg7/AAAA
+ EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEREREf8RERH/ODg4/z8/P//4+Pj/+Pj4
+ //j4+P/4+Pj/QkJC//j4+P/4+Pj/+Pj4//j4+P9AQED/+Pj4//b29v/4+Pj/+Pj4/z8/P/84ODj/EBAQ
+ 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
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////////+AAD//AAAP/gAAB/4AAAf+AAA
+ H/gAAB/4AAAf+AAAH/gAAB/4AAAf+AAAH/gAAB/4AAAf+AAAH/gAAB/4AAAf+AAAH/gAAB/4AAA/+AAA
+ f/gAAP/4AAH/+AAD//gAB//4AA//+AAf//wAP/////////////////8oAAAAIAAAAEAAAAABAAgAAAAA
+ AAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wICAv8DAwP/BQUF/wYGBv8ICAj/CQkJ/woKCv8LCwv/DQ0N
+ /w4ODv8PDw//EBAQ/xEREf8SEhL/FBQU/xYWFv8XFxf/GBgY/xkZGf8aGhr/Gxsb/xwcHP8eHh7/Hx8f
+ /yAgIP8iIiL/IyMj/yQkJP8lJSX/JiYm/ycnJ/8oKCj/KSkp/yoqKv8rKyv/LCws/y0tLf8uLi7/Ly8v
+ /zAwMP8xMTH/MjIy/zMzM/80NDT/NTU1/zY2Nv83Nzf/ODg4/zk5Of86Ojr/Ozs7/zw8PP89PT3/Pj4+
+ /z8/P/9AQED/QUFB/0JCQv9DQ0P/RERE/0VFRf9GRkb/R0dH/0hISP9JSUn/SkpK/0tLS/9MTEz/TU1N
+ /05OTv9PT0//UFBQ/1FRUf9SUlL/U1NT/1RUVP9VVVX/VlZW/1dXV/9YWFj/WVlZ/1paWv9bW1v/XV1d
+ /15eXv9fX1//YGBg/2FhYf9iYmL/Y2Nj/2VlZf9mZmb/Z2dn/2lpaf9qamr/bGxs/3Jycv95eXn/e3t7
+ /3x8fP9+fn7/f39//4CAgP+BgYH/hYWF/4aGhv+IiIj/jIyM/42Njf+Ojo7/j4+P/5CQkP+RkZH/k5OT
+ /5WVlf+ampr/m5ub/5ycnP+enp7/oaGh/6ampv+np6f/qKio/6mpqf+qqqr/q6ur/7CwsP+zs7P/tLS0
+ /7a2tv+7u7v/vLy8/729vf++vr7/v7+//8HBwf/CwsL/w8PD/8fHx//IyMj/ysrK/87Ozv/Pz8//09PT
+ /9TU1P/V1dX/19fX/9zc3P/d3d3/4eHh/+Pj4//q6ur/6+vr/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAABAAAAAAEAAAEAAAAAAAEAAAABAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAABaZ2JhYWFiYmFhYmJhYWFiYWJqPgAAAAAA
+ AAAAAAAAZj4AAAAEAAAAAAQAAAAEAAAAAAROYQAAAAAAAAAAAABWAAwTExYWExMTExMTExYUFBQTCABc
+ AAAAAAAAAAAACEAAIThhYTJeMmBhV2FgT1NhYTIhAEEHAAAAAAAAAAAMPwQoMlZ/Qn5BfnNzfXxzc357
+ TiQEPwsAAAAAAAAAAAs/AidSi2k+h0mKeHuFhHt5h4NOIgU/CwAAAAAAAAAAC0AELFGQgnGSfIp4e5CN
+ dnqRkE8nBD8LAAAAAAAAAAALQAQpQXNlMC4ycXFycVhxX2ZxRCgEQAsAAAAAAAAAAAtCBShOgXU0MjKB
+ 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
+ /zw8PP9LS0v/S0tL/0tLS/9LS0v/S0tL/0ZGRv8wMDD/LS0t/y0tLf8AAAAgAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQMTEx/xwcHP8wMDD/MDAw/zAwMP8wMDD/MDAw
+ /ywsLP8wMDD/MDAw/wAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAA/f39/jQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/AAAAHgAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAA
+ AgAAAAIAAAACAAAAAgAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////APAADwDwAA8A8AAP
+ APAADwDwAA8A8AAPAPAADwDwAA8A8AAPAPAADwDwAA8A8AAPAPAADwDwAB8A8AA/APAAfwDwAP8A8AH/
+ APAD/wDwB/8A////AP///wAoAAAAGAAAADAAAAABAAgAAAAAAIAEAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ /wICAv8FBQX/BgYG/wkJCf8MDAz/DQ0N/w8PD/8QEBD/ERER/xMTE/8UFBT/FxcX/xgYGP8bGxv/HBwc
+ /x8fH/8gICD/IiIi/yMjI/8kJCT/JSUl/yYmJv8nJyf/KCgo/ykpKf8qKir/Kysr/ywsLP8tLS3/Li4u
+ /y8vL/8wMDD/MTEx/zMzM/80NDT/NTU1/zY2Nv83Nzf/ODg4/zk5Of86Ojr/Ozs7/z09Pf8+Pj7/Pz8/
+ /0BAQP9BQUH/QkJC/0NDQ/9ERET/RUVF/0dHR/9ISEj/SkpK/0tLS/9NTU3/Tk5O/09PT/9QUFD/UlJS
+ /1VVVf9aWlr/W1tb/19fX/9hYWH/aWlp/2pqav9sbGz/bm5u/3BwcP9xcXH/c3Nz/3R0dP91dXX/eXl5
+ /3x8fP+AgID/goKC/4SEhP+FhYX/hoaG/4uLi/+MjIz/kZGR/5SUlP+Wlpb/mJiY/5qamv+cnJz/oaGh
+ /6Kiov+jo6P/pqam/6urq/+srKz/ra2t/6+vr/+xsbH/s7Oz/7W1tf+/v7//y8vL/9HR0f/j4+P/5OTk
+ /+bm5v8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAMz4+Pj4+Pj4+PT4+PiUAAAAAAAAAAQFBHxMTExQU
+ EhQVERMTEyVDAAAAAAAAAFEPCBERERARDxIQERIREAUQTwAAAAABAFkAFThQQFJBVlJWUFJXQRYAWQAA
+ AAAAAFkBF0ZaPmFJXmJhYmFeShcAWQEAAAABAFgAGEVeTV5WWVthVVhkRBkAWQAAAAAAAFkCGkJgMyhJ
+ X1pLYUlgQxkBWQABAAABAFkCHEllPDVNZSg0ZV1lSRkEWQAAAAAAAFkFHE1nZmdWZyw1Z2ddPxkGWQAA
+ AAABAFkHGk9pWGlaaDo9aWNpURoGWQEAAAAAAFkLIVFqampcampbalVqTxkIWQEAAAAAAFkLIS0vLy8v
+ Ly8sLi4sLSUMWQAAAAAAAFoMIzMwMDAwMCwlISElIRcMWQAAAAAAAFoNIzIyMjIzMBkZHxkcHA4nWgAA
+ AAAAAFoRJzMzMzMzLBkrKCgoGihUAAAAAAAAAFkSJjQ0NDQ0LCAvLygaLlQAAAAAAAAAAFoXKDU1NTU1
+ LiUyMxozVAAAAAAAAAABAFoaKTY2NjY2Lyc1ITVWAAAAAAAAAAAAAFwfKTc3Nzc2LiglOFUAAAAAAAAA
+ AAAAAFowISMjJSUlJRo5VgAAAAAAAAAAAAAAAABRPjs7Ozo5OUBWAAAAAAAAAAAAAAAAAAAATVZWVlZW
+ Vk8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A8AAPAPAADwDwAA8A8AAP
+ APAADwDwAA8A8AAPAPAADwDwAA8A8AAPAPAADwDwAA8A8AAPAPAAHwDwAD8A8AB/APAA/wDwAf8A8AP/
+ APAH/wD///8A////ACgAAAAQAAAAIAAAAAEAIAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAOzs7/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAbQAAAP8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/wAAAP8AAABpAAAA
+ AAAAAAAAAAAAAAAAANzc3N0hISH/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP8hISH/3Nzc
+ 3QAAAAAAAAAAAAAAAAAAAADc3NzdIyMj/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/IyMj
+ /9zc3N0AAAAAAAAAAAAAAAAAAAAA3Nzc3SQkJP+6urr/Ojo6/zo6Ov+6urr/Ojo6/7q6uv86Ojr/urq6
+ /yQkJP/c3NzdAAAAAAAAAAAAAAAAAAAAANzc3N0mJib/1tbW/9bW1v/W1tb/1tbW/zw8PP/W1tb/1tbW
+ /zw8PP8lJSX/3Nzc3QAAAAAAAAAAAAAAAAAAAADc3NzdJycn//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy
+ /z8/P//y8vL/JiYm/9zc3N0AAAAAAAAAAAAAAAAAAAAA3Nzc3SgoKP9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/ygoKP/c3NzdAAAAAAAAAAAAAAAAAAAAANzc3N0qKir/Q0ND/0NDQ/9DQ0P/Q0ND
+ /yAgIP8aGhr/Ghoa/xoaGv8aGhr/wMDAvAAAAAAAAAAAAAAAAAAAAADc3NzdLCws/0ZGRv9GRkb/RkZG
+ /0VFRf88PDz/PDw8/zw8PP8fHx///v7+/wAAAAAAAAAAAAAAAAAAAAAAAAAA3Nzc3S0tLf9ISEj/SEhI
+ /0hISP9HR0f/Q0ND/0NDQ/8lJSX//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzc3N0uLi7/SkpK
+ /0pKSv9KSkr/SUlJ/0pKSv8qKir//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlIiIi
+ /z4+Pv8+Pj7/Pj4+/z09Pf8wMDD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AExMTP81NTX/NTU1/zU1Nf81NTX//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8A
+ AOAHAADgBwAAwAMAAMADAADAAwAAwAMAAMADAADAAwAAwAMAAMAHAADADwAAwB8AAOA/AADgfwAA//8A
+ ACgAAAAQAAAAIAAAAAEACAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAANDQ3/Dw8P/xoaGv8bGxv/HBwc
+ /x4eHv8hISH/JCQk/yUlJf8nJyf/KCgo/yoqKv8rKyv/LS0t/y8vL/8xMTH/MjIy/zU1Nf82Njb/ODg4
+ /zk5Of87Ozv/PDw8/z09Pf8+Pj7/Pz8//0BAQP9BQUH/QkJC/0NDQ/9ERET/RkZG/0hISP9KSkr/W1tb
+ /3BwcP9xcXH/cnJy/3x8fP9/f3//goKC/4ODg/+IiIj/iYmJ/5aWlv+YmJj/mZmZ/5ubm/+ioqL/o6Oj
+ /6Wlpf+mpqb/qKio/6mpqf+qqqr/ra2t/7CwsP+4uLj/urq6/8HBwf/Q0ND/1dXV/9jY2P/n5+f/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAA
+ AAAAIxIODQwNCw0MDhkjAAAAACEAFBURHx8WGxMAHwAAAAASAiMkKDM2MzUpAhsAAAAAGwMpJyYzNSws
+ KAISAAAAABQDKyUbOSItMyoEHgAAAAAgBy87Nz0WNzwmBRYAAAAAGAczPjo/Ojo4MwcgAAAAACEJGRsY
+ GRkYGRsKHwAAAAAfCR8aHx8NCwwLAiIAAAAAIg4gHx8aDxUYCyIiAAAAACEPICAfHxIfDiIlAAAAAAAi
+ ESEhIR4VFCIiAAAAAAAAIg4WGBUUESMiAAAAAAAAACwiISIhISMhAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AP//AADgBwAA4AcAAMADAADAAwAAwAMAAMADAADAAwAAwAMAAMADAADABwAAwA8AAMAfAADgPwAA4H8A
+ AP//AAA=
diff --git a/PCK-Studio/Forms/Additional-Popups/MipMapPrompt.Designer.cs b/PCK-Studio/Forms/Additional-Popups/MipMapPrompt.Designer.cs
index a428b920..7fae0a04 100644
--- a/PCK-Studio/Forms/Additional-Popups/MipMapPrompt.Designer.cs
+++ b/PCK-Studio/Forms/Additional-Popups/MipMapPrompt.Designer.cs
@@ -87,7 +87,7 @@
this.Controls.Add(this.button1);
this.Controls.Add(this.CancelBtn);
this.Controls.Add(this.TextLabel);
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "MipMapPrompt";
diff --git a/PCK-Studio/Forms/Additional-Popups/MipMapPrompt.cs b/PCK-Studio/Forms/Additional-Popups/MipMapPrompt.cs
index 666dce75..76f813e4 100644
--- a/PCK-Studio/Forms/Additional-Popups/MipMapPrompt.cs
+++ b/PCK-Studio/Forms/Additional-Popups/MipMapPrompt.cs
@@ -14,7 +14,6 @@ namespace PckStudio
public MipMapPrompt()
{
InitializeComponent();
- FormBorderStyle = FormBorderStyle.None;
}
private void OKBtn_Click(object sender, EventArgs e)
@@ -22,20 +21,9 @@ namespace PckStudio
DialogResult = DialogResult.OK;
}
- private void InputTextBox_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Enter)
- OKBtn_Click(sender, e);
- }
-
private void CancelButton_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
}
-
- private void button1_Click(object sender, EventArgs e)
- {
-
- }
}
}
diff --git a/PCK-Studio/Forms/Additional-Popups/RenamePrompt.Designer.cs b/PCK-Studio/Forms/Additional-Popups/RenamePrompt.Designer.cs
index 4df9158d..bc7b8155 100644
--- a/PCK-Studio/Forms/Additional-Popups/RenamePrompt.Designer.cs
+++ b/PCK-Studio/Forms/Additional-Popups/RenamePrompt.Designer.cs
@@ -86,7 +86,7 @@
this.Controls.Add(this.InputTextBox);
this.Controls.Add(this.OKButton);
this.Controls.Add(this.TextLabel);
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "RenamePrompt";
diff --git a/PCK-Studio/Forms/Additional-Popups/RenamePrompt.cs b/PCK-Studio/Forms/Additional-Popups/RenamePrompt.cs
index 4d4fd9e7..8905a343 100644
--- a/PCK-Studio/Forms/Additional-Popups/RenamePrompt.cs
+++ b/PCK-Studio/Forms/Additional-Popups/RenamePrompt.cs
@@ -19,18 +19,11 @@ namespace PckStudio
InitializeComponent();
InputTextBox.Text = InitialText;
InputTextBox.MaxLength = maxChar < 0 ? short.MaxValue : maxChar;
- FormBorderStyle = FormBorderStyle.None;
}
private void OKBtn_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.OK;
}
-
- private void InputTextBox_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Enter)
- OKBtn_Click(sender, e);
- }
}
}
diff --git a/PCK-Studio/Forms/Additional-Popups/TextPrompt.cs b/PCK-Studio/Forms/Additional-Popups/TextPrompt.cs
index 962ac918..942d8e8a 100644
--- a/PCK-Studio/Forms/Additional-Popups/TextPrompt.cs
+++ b/PCK-Studio/Forms/Additional-Popups/TextPrompt.cs
@@ -5,7 +5,7 @@ namespace PckStudio.Forms.Additional_Popups
{
public partial class TextPrompt : MetroFramework.Forms.MetroForm
{
- public string[] TextOutput => DialogResult == DialogResult.OK ? PromptTextBox.Lines : null;
+ public string[] TextOutput => DialogResult == DialogResult.OK ? PromptTextBox.Lines : Array.Empty();
public TextPrompt(string[] list = null)
{
InitializeComponent();
diff --git a/PCK-Studio/Forms/Editor/ANIMEditor.Designer.cs b/PCK-Studio/Forms/Editor/ANIMEditor.Designer.cs
new file mode 100644
index 00000000..c2172245
--- /dev/null
+++ b/PCK-Studio/Forms/Editor/ANIMEditor.Designer.cs
@@ -0,0 +1,786 @@
+namespace PckStudio.Forms.Editor
+{
+ partial class ANIMEditor
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ANIMEditor));
+ this.saveButton = new MetroFramework.Controls.MetroButton();
+ this.effectsGroup = new System.Windows.Forms.GroupBox();
+ this.rightLegOCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.headOCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.leftLegOCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.leftArmOCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.bodyOCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.rightLegCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.slimCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.headCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.leftLegCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.rightArmCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.leftArmCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.bodyCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.classicCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.rightArmOCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.effectsGroup2 = new System.Windows.Forms.GroupBox();
+ this.rightLeggingCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.helmetCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.leftLeggingCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.rightArmorCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.leftArmorCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.chestplateCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.unknownCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.crouchCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.dinnerboneCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.noArmorCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.bobbingCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.santaCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.syncLegsCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.staticArmsCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.syncArmsCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.statueCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.zombieCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.staticLegsCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.copyButton = new MetroFramework.Controls.MetroButton();
+ this.importButton = new MetroFramework.Controls.MetroButton();
+ this.exportButton = new MetroFramework.Controls.MetroButton();
+ this.animValue = new MetroFramework.Controls.MetroLabel();
+ this.uncheckAllButton = new MetroFramework.Controls.MetroButton();
+ this.checkAllButton = new MetroFramework.Controls.MetroButton();
+ this.toolTip = new MetroFramework.Components.MetroToolTip();
+ this.resetButton = new MetroFramework.Controls.MetroButton();
+ this.templateButton = new MetroFramework.Controls.MetroButton();
+ this.effectsGroup.SuspendLayout();
+ this.effectsGroup2.SuspendLayout();
+ this.groupBox1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // saveButton
+ //
+ this.saveButton.Location = new System.Drawing.Point(250, 514);
+ this.saveButton.Name = "saveButton";
+ this.saveButton.Size = new System.Drawing.Size(126, 23);
+ this.saveButton.TabIndex = 1;
+ this.saveButton.Text = "Save";
+ this.saveButton.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.saveButton.UseSelectable = true;
+ this.saveButton.Click += new System.EventHandler(this.saveButton_Click);
+ //
+ // effectsGroup
+ //
+ this.effectsGroup.Controls.Add(this.rightLegOCheckBox);
+ this.effectsGroup.Controls.Add(this.headOCheckBox);
+ this.effectsGroup.Controls.Add(this.leftLegOCheckBox);
+ this.effectsGroup.Controls.Add(this.leftArmOCheckBox);
+ this.effectsGroup.Controls.Add(this.bodyOCheckBox);
+ this.effectsGroup.Controls.Add(this.rightLegCheckBox);
+ this.effectsGroup.Controls.Add(this.slimCheckBox);
+ this.effectsGroup.Controls.Add(this.headCheckBox);
+ this.effectsGroup.Controls.Add(this.leftLegCheckBox);
+ this.effectsGroup.Controls.Add(this.rightArmCheckBox);
+ this.effectsGroup.Controls.Add(this.leftArmCheckBox);
+ this.effectsGroup.Controls.Add(this.bodyCheckBox);
+ this.effectsGroup.Controls.Add(this.classicCheckBox);
+ this.effectsGroup.Controls.Add(this.rightArmOCheckBox);
+ this.effectsGroup.ForeColor = System.Drawing.SystemColors.Window;
+ this.effectsGroup.Location = new System.Drawing.Point(22, 148);
+ this.effectsGroup.Name = "effectsGroup";
+ this.effectsGroup.Size = new System.Drawing.Size(393, 238);
+ this.effectsGroup.TabIndex = 2;
+ this.effectsGroup.TabStop = false;
+ this.effectsGroup.Text = "Skin Flags";
+ //
+ // rightLegOCheckBox
+ //
+ this.rightLegOCheckBox.AutoSize = true;
+ this.rightLegOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.rightLegOCheckBox.Location = new System.Drawing.Point(180, 208);
+ this.rightLegOCheckBox.Name = "rightLegOCheckBox";
+ this.rightLegOCheckBox.Size = new System.Drawing.Size(199, 19);
+ this.rightLegOCheckBox.TabIndex = 13;
+ this.rightLegOCheckBox.Text = "Remove Right Leg Layer Box";
+ this.rightLegOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.rightLegOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
+ "or this part. Armor will be disabled for this part, but can be rendered again wi" +
+ "th the armor flags. ");
+ this.rightLegOCheckBox.UseSelectable = true;
+ //
+ // headOCheckBox
+ //
+ this.headOCheckBox.AutoSize = true;
+ this.headOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.headOCheckBox.Location = new System.Drawing.Point(180, 50);
+ this.headOCheckBox.Name = "headOCheckBox";
+ this.headOCheckBox.Size = new System.Drawing.Size(173, 19);
+ this.headOCheckBox.TabIndex = 12;
+ this.headOCheckBox.Text = "Remove Head Layer Box";
+ this.headOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.headOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
+ "or this part. Armor will be disabled for this part, but can be rendered again wi" +
+ "th the armor flags. ");
+ this.headOCheckBox.UseSelectable = true;
+ //
+ // leftLegOCheckBox
+ //
+ this.leftLegOCheckBox.AutoSize = true;
+ this.leftLegOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.leftLegOCheckBox.Location = new System.Drawing.Point(180, 174);
+ this.leftLegOCheckBox.Name = "leftLegOCheckBox";
+ this.leftLegOCheckBox.Size = new System.Drawing.Size(190, 19);
+ this.leftLegOCheckBox.TabIndex = 11;
+ this.leftLegOCheckBox.Text = "Remove Left Leg Layer Box";
+ this.leftLegOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.leftLegOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
+ "or this part. Armor will be disabled for this part, but can be rendered again wi" +
+ "th the armor flags. ");
+ this.leftLegOCheckBox.UseSelectable = true;
+ //
+ // leftArmOCheckBox
+ //
+ this.leftArmOCheckBox.AutoSize = true;
+ this.leftArmOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.leftArmOCheckBox.Location = new System.Drawing.Point(180, 112);
+ this.leftArmOCheckBox.Name = "leftArmOCheckBox";
+ this.leftArmOCheckBox.Size = new System.Drawing.Size(194, 19);
+ this.leftArmOCheckBox.TabIndex = 9;
+ this.leftArmOCheckBox.Text = "Remove Left Arm Layer Box";
+ this.leftArmOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.leftArmOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
+ "or this part. Armor will be disabled for this part, but can be rendered again wi" +
+ "th the armor flags. ");
+ this.leftArmOCheckBox.UseSelectable = true;
+ //
+ // bodyOCheckBox
+ //
+ this.bodyOCheckBox.AutoSize = true;
+ this.bodyOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.bodyOCheckBox.Location = new System.Drawing.Point(180, 81);
+ this.bodyOCheckBox.Name = "bodyOCheckBox";
+ this.bodyOCheckBox.Size = new System.Drawing.Size(172, 19);
+ this.bodyOCheckBox.TabIndex = 8;
+ this.bodyOCheckBox.Text = "Remove Body Layer Box";
+ this.bodyOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.bodyOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
+ "or this part. Armor will be disabled for this part, but can be rendered again wi" +
+ "th the armor flags. ");
+ this.bodyOCheckBox.UseSelectable = true;
+ //
+ // rightLegCheckBox
+ //
+ this.rightLegCheckBox.AutoSize = true;
+ this.rightLegCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.rightLegCheckBox.Location = new System.Drawing.Point(6, 208);
+ this.rightLegCheckBox.Name = "rightLegCheckBox";
+ this.rightLegCheckBox.Size = new System.Drawing.Size(162, 19);
+ this.rightLegCheckBox.TabIndex = 7;
+ this.rightLegCheckBox.Text = "Remove Right Leg Box";
+ this.rightLegCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.rightLegCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
+ "or this part. Armor will be disabled for this part, but can be rendered again wi" +
+ "th the armor flags. ");
+ this.rightLegCheckBox.UseSelectable = true;
+ //
+ // slimCheckBox
+ //
+ this.slimCheckBox.AutoSize = true;
+ this.slimCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.slimCheckBox.Location = new System.Drawing.Point(180, 19);
+ this.slimCheckBox.Name = "slimCheckBox";
+ this.slimCheckBox.Size = new System.Drawing.Size(151, 19);
+ this.slimCheckBox.TabIndex = 6;
+ this.slimCheckBox.Text = "64x64 Alex/Slim Skin";
+ this.slimCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.slimCheckBox, " The 1.8 style skin type with slim arms, overlays for each part, and sep" +
+ "arate textures for right and left limbs. Resolution is also set to 64x64. " +
+ " ");
+ this.slimCheckBox.UseSelectable = true;
+ //
+ // headCheckBox
+ //
+ this.headCheckBox.AutoSize = true;
+ this.headCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.headCheckBox.Location = new System.Drawing.Point(6, 50);
+ this.headCheckBox.Name = "headCheckBox";
+ this.headCheckBox.Size = new System.Drawing.Size(136, 19);
+ this.headCheckBox.TabIndex = 5;
+ this.headCheckBox.Text = "Remove Head Box";
+ this.headCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.headCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
+ "or this part. Armor will be disabled for this part, but can be rendered again wi" +
+ "th the armor flags. ");
+ this.headCheckBox.UseSelectable = true;
+ //
+ // leftLegCheckBox
+ //
+ this.leftLegCheckBox.AutoSize = true;
+ this.leftLegCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.leftLegCheckBox.Location = new System.Drawing.Point(6, 174);
+ this.leftLegCheckBox.Name = "leftLegCheckBox";
+ this.leftLegCheckBox.Size = new System.Drawing.Size(153, 19);
+ this.leftLegCheckBox.TabIndex = 4;
+ this.leftLegCheckBox.Text = "Remove Left Leg Box";
+ this.leftLegCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.leftLegCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
+ "or this part. Armor will be disabled for this part, but can be rendered again wi" +
+ "th the armor flags. ");
+ this.leftLegCheckBox.UseSelectable = true;
+ //
+ // rightArmCheckBox
+ //
+ this.rightArmCheckBox.AutoSize = true;
+ this.rightArmCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.rightArmCheckBox.Location = new System.Drawing.Point(6, 143);
+ this.rightArmCheckBox.Name = "rightArmCheckBox";
+ this.rightArmCheckBox.Size = new System.Drawing.Size(166, 19);
+ this.rightArmCheckBox.TabIndex = 3;
+ this.rightArmCheckBox.Text = "Remove Right Arm Box";
+ this.rightArmCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.rightArmCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
+ "or this part. Armor will be disabled for this part, but can be rendered again wi" +
+ "th the armor flags. ");
+ this.rightArmCheckBox.UseSelectable = true;
+ //
+ // leftArmCheckBox
+ //
+ this.leftArmCheckBox.AutoSize = true;
+ this.leftArmCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.leftArmCheckBox.Location = new System.Drawing.Point(6, 112);
+ this.leftArmCheckBox.Name = "leftArmCheckBox";
+ this.leftArmCheckBox.Size = new System.Drawing.Size(157, 19);
+ this.leftArmCheckBox.TabIndex = 2;
+ this.leftArmCheckBox.Text = "Remove Left Arm Box";
+ this.leftArmCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.leftArmCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
+ "or this part. Armor will be disabled for this part, but can be rendered again wi" +
+ "th the armor flags. ");
+ this.leftArmCheckBox.UseSelectable = true;
+ //
+ // bodyCheckBox
+ //
+ this.bodyCheckBox.AutoSize = true;
+ this.bodyCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.bodyCheckBox.Location = new System.Drawing.Point(6, 81);
+ this.bodyCheckBox.Name = "bodyCheckBox";
+ this.bodyCheckBox.Size = new System.Drawing.Size(135, 19);
+ this.bodyCheckBox.TabIndex = 1;
+ this.bodyCheckBox.Text = "Remove Body Box";
+ this.bodyCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.bodyCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
+ "or this part. Armor will be disabled for this part, but can be rendered again wi" +
+ "th the armor flags. ");
+ this.bodyCheckBox.UseSelectable = true;
+ //
+ // classicCheckBox
+ //
+ this.classicCheckBox.AutoSize = true;
+ this.classicCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.classicCheckBox.Location = new System.Drawing.Point(6, 19);
+ this.classicCheckBox.Name = "classicCheckBox";
+ this.classicCheckBox.Size = new System.Drawing.Size(136, 19);
+ this.classicCheckBox.TabIndex = 0;
+ this.classicCheckBox.Text = "64x64 Classic Skin";
+ this.classicCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.classicCheckBox, " The 1.8 style skin type with overlays for each part and separate textur" +
+ "es for right and left limbs. Resolution is also set to 64x64. ");
+ this.classicCheckBox.UseSelectable = true;
+ //
+ // rightArmOCheckBox
+ //
+ this.rightArmOCheckBox.AutoSize = true;
+ this.rightArmOCheckBox.BackColor = System.Drawing.Color.Transparent;
+ this.rightArmOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.rightArmOCheckBox.Location = new System.Drawing.Point(180, 143);
+ this.rightArmOCheckBox.Name = "rightArmOCheckBox";
+ this.rightArmOCheckBox.Size = new System.Drawing.Size(203, 19);
+ this.rightArmOCheckBox.TabIndex = 10;
+ this.rightArmOCheckBox.Text = "Remove Right Arm Layer Box";
+ this.rightArmOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.rightArmOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
+ "or this part. Armor will be disabled for this part, but can be rendered again wi" +
+ "th the armor flags. ");
+ this.rightArmOCheckBox.UseSelectable = true;
+ //
+ // effectsGroup2
+ //
+ this.effectsGroup2.Controls.Add(this.rightLeggingCheckBox);
+ this.effectsGroup2.Controls.Add(this.helmetCheckBox);
+ this.effectsGroup2.Controls.Add(this.leftLeggingCheckBox);
+ this.effectsGroup2.Controls.Add(this.rightArmorCheckBox);
+ this.effectsGroup2.Controls.Add(this.leftArmorCheckBox);
+ this.effectsGroup2.Controls.Add(this.chestplateCheckBox);
+ this.effectsGroup2.ForeColor = System.Drawing.SystemColors.Window;
+ this.effectsGroup2.Location = new System.Drawing.Point(421, 183);
+ this.effectsGroup2.Name = "effectsGroup2";
+ this.effectsGroup2.Size = new System.Drawing.Size(188, 203);
+ this.effectsGroup2.TabIndex = 14;
+ this.effectsGroup2.TabStop = false;
+ this.effectsGroup2.Text = "Armor Flags";
+ //
+ // rightLeggingCheckBox
+ //
+ this.rightLeggingCheckBox.AutoSize = true;
+ this.rightLeggingCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.rightLeggingCheckBox.Location = new System.Drawing.Point(6, 174);
+ this.rightLeggingCheckBox.Name = "rightLeggingCheckBox";
+ this.rightLeggingCheckBox.Size = new System.Drawing.Size(173, 19);
+ this.rightLeggingCheckBox.TabIndex = 7;
+ this.rightLeggingCheckBox.Text = "Render Right Leg Armor";
+ this.rightLeggingCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.rightLeggingCheckBox, " Forcefully enables the specified armor piece.");
+ this.rightLeggingCheckBox.UseSelectable = true;
+ //
+ // helmetCheckBox
+ //
+ this.helmetCheckBox.AutoSize = true;
+ this.helmetCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.helmetCheckBox.Location = new System.Drawing.Point(6, 19);
+ this.helmetCheckBox.Name = "helmetCheckBox";
+ this.helmetCheckBox.Size = new System.Drawing.Size(147, 19);
+ this.helmetCheckBox.TabIndex = 5;
+ this.helmetCheckBox.Text = "Render Head Armor";
+ this.helmetCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.helmetCheckBox, " Forcefully enables the specified armor piece.");
+ this.helmetCheckBox.UseSelectable = true;
+ //
+ // leftLeggingCheckBox
+ //
+ this.leftLeggingCheckBox.AutoSize = true;
+ this.leftLeggingCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.leftLeggingCheckBox.Location = new System.Drawing.Point(6, 143);
+ this.leftLeggingCheckBox.Name = "leftLeggingCheckBox";
+ this.leftLeggingCheckBox.Size = new System.Drawing.Size(164, 19);
+ this.leftLeggingCheckBox.TabIndex = 4;
+ this.leftLeggingCheckBox.Text = "Render Left Leg Armor";
+ this.leftLeggingCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.leftLeggingCheckBox, " Forcefully enables the specified armor piece.");
+ this.leftLeggingCheckBox.UseSelectable = true;
+ //
+ // rightArmorCheckBox
+ //
+ this.rightArmorCheckBox.AutoSize = true;
+ this.rightArmorCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.rightArmorCheckBox.Location = new System.Drawing.Point(6, 112);
+ this.rightArmorCheckBox.Name = "rightArmorCheckBox";
+ this.rightArmorCheckBox.Size = new System.Drawing.Size(177, 19);
+ this.rightArmorCheckBox.TabIndex = 3;
+ this.rightArmorCheckBox.Text = "Render Right Arm Armor";
+ this.rightArmorCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.rightArmorCheckBox, " Forcefully enables the specified armor piece.");
+ this.rightArmorCheckBox.UseSelectable = true;
+ //
+ // leftArmorCheckBox
+ //
+ this.leftArmorCheckBox.AutoSize = true;
+ this.leftArmorCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.leftArmorCheckBox.Location = new System.Drawing.Point(6, 81);
+ this.leftArmorCheckBox.Name = "leftArmorCheckBox";
+ this.leftArmorCheckBox.Size = new System.Drawing.Size(168, 19);
+ this.leftArmorCheckBox.TabIndex = 2;
+ this.leftArmorCheckBox.Text = "Render Left Arm Armor";
+ this.leftArmorCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.leftArmorCheckBox, " Forcefully enables the specified armor piece.");
+ this.leftArmorCheckBox.UseSelectable = true;
+ //
+ // chestplateCheckBox
+ //
+ this.chestplateCheckBox.AutoSize = true;
+ this.chestplateCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.chestplateCheckBox.Location = new System.Drawing.Point(6, 50);
+ this.chestplateCheckBox.Name = "chestplateCheckBox";
+ this.chestplateCheckBox.Size = new System.Drawing.Size(146, 19);
+ this.chestplateCheckBox.TabIndex = 1;
+ this.chestplateCheckBox.Text = "Render Body Armor";
+ this.chestplateCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.chestplateCheckBox, " Forcefully enables the specified armor piece.");
+ this.chestplateCheckBox.UseSelectable = true;
+ //
+ // groupBox1
+ //
+ this.groupBox1.Controls.Add(this.unknownCheckBox);
+ this.groupBox1.Controls.Add(this.crouchCheckBox);
+ this.groupBox1.Controls.Add(this.dinnerboneCheckBox);
+ this.groupBox1.Controls.Add(this.noArmorCheckBox);
+ this.groupBox1.Controls.Add(this.bobbingCheckBox);
+ this.groupBox1.Controls.Add(this.santaCheckBox);
+ this.groupBox1.Controls.Add(this.syncLegsCheckBox);
+ this.groupBox1.Controls.Add(this.staticArmsCheckBox);
+ this.groupBox1.Controls.Add(this.syncArmsCheckBox);
+ this.groupBox1.Controls.Add(this.statueCheckBox);
+ this.groupBox1.Controls.Add(this.zombieCheckBox);
+ this.groupBox1.Controls.Add(this.staticLegsCheckBox);
+ this.groupBox1.ForeColor = System.Drawing.SystemColors.Window;
+ this.groupBox1.Location = new System.Drawing.Point(22, 388);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Size = new System.Drawing.Size(587, 115);
+ this.groupBox1.TabIndex = 15;
+ this.groupBox1.TabStop = false;
+ this.groupBox1.Text = "Special Animations";
+ //
+ // unknownCheckBox
+ //
+ this.unknownCheckBox.AutoSize = true;
+ this.unknownCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.unknownCheckBox.Location = new System.Drawing.Point(126, 81);
+ this.unknownCheckBox.Name = "unknownCheckBox";
+ this.unknownCheckBox.Size = new System.Drawing.Size(84, 19);
+ this.unknownCheckBox.TabIndex = 13;
+ this.unknownCheckBox.Text = "Unknown";
+ this.unknownCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.unknownCheckBox, " If you figure out what this is. Please reach out to MNL#8935 on Discord. (: " +
+ "");
+ this.unknownCheckBox.UseSelectable = true;
+ //
+ // crouchCheckBox
+ //
+ this.crouchCheckBox.AutoSize = true;
+ this.crouchCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.crouchCheckBox.Location = new System.Drawing.Point(126, 50);
+ this.crouchCheckBox.Name = "crouchCheckBox";
+ this.crouchCheckBox.Size = new System.Drawing.Size(137, 19);
+ this.crouchCheckBox.TabIndex = 12;
+ this.crouchCheckBox.Text = "Backwards Crouch";
+ this.crouchCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.crouchCheckBox, " The crouch animation is reversed so that the arms and body lean back. Usefu" +
+ "l for small skins. ");
+ this.crouchCheckBox.UseSelectable = true;
+ //
+ // dinnerboneCheckBox
+ //
+ this.dinnerboneCheckBox.AutoSize = true;
+ this.dinnerboneCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.dinnerboneCheckBox.Location = new System.Drawing.Point(126, 19);
+ this.dinnerboneCheckBox.Name = "dinnerboneCheckBox";
+ this.dinnerboneCheckBox.Size = new System.Drawing.Size(97, 19);
+ this.dinnerboneCheckBox.TabIndex = 11;
+ this.dinnerboneCheckBox.Text = "Dinnerbone";
+ this.dinnerboneCheckBox.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.dinnerboneCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.dinnerboneCheckBox, " Flips the skin upside down like Dinnerbone\'s skin, a Minecraft developer. ");
+ this.dinnerboneCheckBox.UseSelectable = true;
+ //
+ // noArmorCheckBox
+ //
+ this.noArmorCheckBox.AutoSize = true;
+ this.noArmorCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.noArmorCheckBox.Location = new System.Drawing.Point(420, 81);
+ this.noArmorCheckBox.Name = "noArmorCheckBox";
+ this.noArmorCheckBox.Size = new System.Drawing.Size(131, 19);
+ this.noArmorCheckBox.TabIndex = 10;
+ this.noArmorCheckBox.Text = "Disable All Armor";
+ this.noArmorCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.noArmorCheckBox, " Disables all armor desptie the armor flags. ");
+ this.noArmorCheckBox.UseSelectable = true;
+ //
+ // bobbingCheckBox
+ //
+ this.bobbingCheckBox.AutoSize = true;
+ this.bobbingCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.bobbingCheckBox.Location = new System.Drawing.Point(272, 50);
+ this.bobbingCheckBox.Name = "bobbingCheckBox";
+ this.bobbingCheckBox.Size = new System.Drawing.Size(124, 19);
+ this.bobbingCheckBox.TabIndex = 9;
+ this.bobbingCheckBox.Text = "Disable Bobbing";
+ this.bobbingCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.bobbingCheckBox, " Disables the bobbing effect in first person.");
+ this.bobbingCheckBox.UseSelectable = true;
+ //
+ // santaCheckBox
+ //
+ this.santaCheckBox.AutoSize = true;
+ this.santaCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.santaCheckBox.Location = new System.Drawing.Point(420, 50);
+ this.santaCheckBox.Name = "santaCheckBox";
+ this.santaCheckBox.Size = new System.Drawing.Size(86, 19);
+ this.santaCheckBox.TabIndex = 8;
+ this.santaCheckBox.Text = "Bad Santa";
+ this.santaCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.santaCheckBox, " The skin sits down after about 10 seconds of no controller input. Made for" +
+ " Bad Santa in the \"Festive\" skin pack. ");
+ this.santaCheckBox.UseSelectable = true;
+ //
+ // syncLegsCheckBox
+ //
+ this.syncLegsCheckBox.AutoSize = true;
+ this.syncLegsCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.syncLegsCheckBox.Location = new System.Drawing.Point(272, 19);
+ this.syncLegsCheckBox.Name = "syncLegsCheckBox";
+ this.syncLegsCheckBox.Size = new System.Drawing.Size(136, 19);
+ this.syncLegsCheckBox.TabIndex = 7;
+ this.syncLegsCheckBox.Text = "Synchronous Legs";
+ this.syncLegsCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.syncLegsCheckBox, " These parts will move at the same time and angle as each other. ");
+ this.syncLegsCheckBox.UseSelectable = true;
+ //
+ // staticArmsCheckBox
+ //
+ this.staticArmsCheckBox.AutoSize = true;
+ this.staticArmsCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.staticArmsCheckBox.Location = new System.Drawing.Point(6, 19);
+ this.staticArmsCheckBox.Name = "staticArmsCheckBox";
+ this.staticArmsCheckBox.Size = new System.Drawing.Size(94, 19);
+ this.staticArmsCheckBox.TabIndex = 5;
+ this.staticArmsCheckBox.Text = "Static Arms";
+ this.staticArmsCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.staticArmsCheckBox, " These parts will not move in most animations. ");
+ this.staticArmsCheckBox.UseSelectable = true;
+ //
+ // syncArmsCheckBox
+ //
+ this.syncArmsCheckBox.AutoSize = true;
+ this.syncArmsCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.syncArmsCheckBox.Location = new System.Drawing.Point(420, 19);
+ this.syncArmsCheckBox.Name = "syncArmsCheckBox";
+ this.syncArmsCheckBox.Size = new System.Drawing.Size(140, 19);
+ this.syncArmsCheckBox.TabIndex = 4;
+ this.syncArmsCheckBox.Text = "Synchronous Arms";
+ this.syncArmsCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.syncArmsCheckBox, " These parts will move at the same time and angle as each other. ");
+ this.syncArmsCheckBox.UseSelectable = true;
+ //
+ // statueCheckBox
+ //
+ this.statueCheckBox.AutoSize = true;
+ this.statueCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.statueCheckBox.Location = new System.Drawing.Point(272, 81);
+ this.statueCheckBox.Name = "statueCheckBox";
+ this.statueCheckBox.Size = new System.Drawing.Size(126, 19);
+ this.statueCheckBox.TabIndex = 3;
+ this.statueCheckBox.Text = "Statue of Liberty";
+ this.statueCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.statueCheckBox, " The right arm is lifted like the Statue of Liberty. Made for Angel of Libe" +
+ "rty in the \"Doctor Who Volume I\" skin pack. ");
+ this.statueCheckBox.UseSelectable = true;
+ //
+ // zombieCheckBox
+ //
+ this.zombieCheckBox.AutoSize = true;
+ this.zombieCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.zombieCheckBox.Location = new System.Drawing.Point(6, 81);
+ this.zombieCheckBox.Name = "zombieCheckBox";
+ this.zombieCheckBox.Size = new System.Drawing.Size(107, 19);
+ this.zombieCheckBox.TabIndex = 2;
+ this.zombieCheckBox.Text = "Zombie Arms";
+ this.zombieCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.zombieCheckBox, " Both arms will stick up like a Zombie. ");
+ this.zombieCheckBox.UseSelectable = true;
+ //
+ // staticLegsCheckBox
+ //
+ this.staticLegsCheckBox.AutoSize = true;
+ this.staticLegsCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
+ this.staticLegsCheckBox.Location = new System.Drawing.Point(6, 50);
+ this.staticLegsCheckBox.Name = "staticLegsCheckBox";
+ this.staticLegsCheckBox.Size = new System.Drawing.Size(90, 19);
+ this.staticLegsCheckBox.TabIndex = 1;
+ this.staticLegsCheckBox.Text = "Static Legs";
+ this.staticLegsCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.toolTip.SetToolTip(this.staticLegsCheckBox, " These parts will not move in most animations. ");
+ this.staticLegsCheckBox.UseSelectable = true;
+ //
+ // copyButton
+ //
+ this.copyButton.Location = new System.Drawing.Point(425, 119);
+ this.copyButton.Name = "copyButton";
+ this.copyButton.Size = new System.Drawing.Size(173, 23);
+ this.copyButton.TabIndex = 22;
+ this.copyButton.Text = "Copy ANIM Value";
+ this.copyButton.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.copyButton.UseSelectable = true;
+ this.copyButton.Click += new System.EventHandler(this.copyButton_Click);
+ //
+ // importButton
+ //
+ this.importButton.Location = new System.Drawing.Point(32, 119);
+ this.importButton.Name = "importButton";
+ this.importButton.Size = new System.Drawing.Size(186, 23);
+ this.importButton.TabIndex = 23;
+ this.importButton.Text = "Import ANIM";
+ this.importButton.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.importButton.UseSelectable = true;
+ this.importButton.Click += new System.EventHandler(this.importButton_Click);
+ //
+ // exportButton
+ //
+ this.exportButton.Location = new System.Drawing.Point(229, 119);
+ this.exportButton.Name = "exportButton";
+ this.exportButton.Size = new System.Drawing.Size(186, 23);
+ this.exportButton.TabIndex = 24;
+ this.exportButton.Text = "Export Template Texture";
+ this.exportButton.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.exportButton.UseSelectable = true;
+ this.exportButton.Click += new System.EventHandler(this.exportButton_Click);
+ //
+ // animValue
+ //
+ this.animValue.AutoSize = true;
+ this.animValue.FontSize = MetroFramework.MetroLabelSize.Tall;
+ this.animValue.FontWeight = MetroFramework.MetroLabelWeight.Regular;
+ this.animValue.Location = new System.Drawing.Point(260, 60);
+ this.animValue.Name = "animValue";
+ this.animValue.Size = new System.Drawing.Size(110, 25);
+ this.animValue.TabIndex = 25;
+ this.animValue.Text = "0x00000000";
+ this.animValue.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.animValue.Theme = MetroFramework.MetroThemeStyle.Dark;
+ //
+ // uncheckAllButton
+ //
+ this.uncheckAllButton.Location = new System.Drawing.Point(229, 90);
+ this.uncheckAllButton.Name = "uncheckAllButton";
+ this.uncheckAllButton.Size = new System.Drawing.Size(186, 23);
+ this.uncheckAllButton.TabIndex = 26;
+ this.uncheckAllButton.Text = "Uncheck All";
+ this.uncheckAllButton.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.uncheckAllButton.UseSelectable = true;
+ this.uncheckAllButton.Click += new System.EventHandler(this.uncheckAllButton_Click);
+ //
+ // checkAllButton
+ //
+ this.checkAllButton.Location = new System.Drawing.Point(32, 90);
+ this.checkAllButton.Name = "checkAllButton";
+ this.checkAllButton.Size = new System.Drawing.Size(186, 23);
+ this.checkAllButton.TabIndex = 27;
+ this.checkAllButton.Text = "Check All";
+ this.checkAllButton.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.checkAllButton.UseSelectable = true;
+ this.checkAllButton.Click += new System.EventHandler(this.checkAllButton_Click);
+ //
+ // toolTip
+ //
+ this.toolTip.StripAmpersands = true;
+ this.toolTip.Style = MetroFramework.MetroColorStyle.Blue;
+ this.toolTip.StyleManager = null;
+ this.toolTip.Theme = MetroFramework.MetroThemeStyle.Dark;
+ //
+ // resetButton
+ //
+ this.resetButton.Location = new System.Drawing.Point(425, 90);
+ this.resetButton.Name = "resetButton";
+ this.resetButton.Size = new System.Drawing.Size(173, 23);
+ this.resetButton.TabIndex = 28;
+ this.resetButton.Text = "Restore ANIM";
+ this.resetButton.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.resetButton.UseSelectable = true;
+ this.resetButton.Click += new System.EventHandler(this.resetButton_Click);
+ //
+ // templateButton
+ //
+ this.templateButton.Location = new System.Drawing.Point(425, 154);
+ this.templateButton.Name = "templateButton";
+ this.templateButton.Size = new System.Drawing.Size(173, 23);
+ this.templateButton.TabIndex = 29;
+ this.templateButton.Text = "Skin Presets";
+ this.templateButton.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.templateButton.UseSelectable = true;
+ this.templateButton.Click += new System.EventHandler(this.templateButton_Click);
+ //
+ // ANIMEditor
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(630, 554);
+ this.Controls.Add(this.templateButton);
+ this.Controls.Add(this.effectsGroup);
+ this.Controls.Add(this.resetButton);
+ this.Controls.Add(this.checkAllButton);
+ this.Controls.Add(this.uncheckAllButton);
+ this.Controls.Add(this.animValue);
+ this.Controls.Add(this.exportButton);
+ this.Controls.Add(this.importButton);
+ this.Controls.Add(this.copyButton);
+ this.Controls.Add(this.groupBox1);
+ this.Controls.Add(this.effectsGroup2);
+ this.Controls.Add(this.saveButton);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.MaximumSize = new System.Drawing.Size(630, 554);
+ this.MinimizeBox = false;
+ this.MinimumSize = new System.Drawing.Size(630, 554);
+ this.Name = "ANIMEditor";
+ this.Resizable = false;
+ this.Style = MetroFramework.MetroColorStyle.Silver;
+ this.Text = "ANIM Editor";
+ this.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.effectsGroup.ResumeLayout(false);
+ this.effectsGroup.PerformLayout();
+ this.effectsGroup2.ResumeLayout(false);
+ this.effectsGroup2.PerformLayout();
+ this.groupBox1.ResumeLayout(false);
+ this.groupBox1.PerformLayout();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+ private MetroFramework.Controls.MetroButton saveButton;
+ private System.Windows.Forms.GroupBox effectsGroup;
+ private MetroFramework.Controls.MetroCheckBox headCheckBox;
+ private MetroFramework.Controls.MetroCheckBox leftLegCheckBox;
+ private MetroFramework.Controls.MetroCheckBox rightArmCheckBox;
+ private MetroFramework.Controls.MetroCheckBox leftArmCheckBox;
+ private MetroFramework.Controls.MetroCheckBox bodyCheckBox;
+ private MetroFramework.Controls.MetroCheckBox classicCheckBox;
+ private MetroFramework.Controls.MetroCheckBox slimCheckBox;
+ private MetroFramework.Controls.MetroCheckBox rightLegCheckBox;
+ private MetroFramework.Controls.MetroCheckBox rightLegOCheckBox;
+ private MetroFramework.Controls.MetroCheckBox headOCheckBox;
+ private MetroFramework.Controls.MetroCheckBox leftLegOCheckBox;
+ private MetroFramework.Controls.MetroCheckBox rightArmOCheckBox;
+ private MetroFramework.Controls.MetroCheckBox leftArmOCheckBox;
+ private MetroFramework.Controls.MetroCheckBox bodyOCheckBox;
+ private System.Windows.Forms.GroupBox effectsGroup2;
+ private MetroFramework.Controls.MetroCheckBox rightLeggingCheckBox;
+ private MetroFramework.Controls.MetroCheckBox helmetCheckBox;
+ private MetroFramework.Controls.MetroCheckBox leftLeggingCheckBox;
+ private MetroFramework.Controls.MetroCheckBox rightArmorCheckBox;
+ private MetroFramework.Controls.MetroCheckBox leftArmorCheckBox;
+ private MetroFramework.Controls.MetroCheckBox chestplateCheckBox;
+ private System.Windows.Forms.GroupBox groupBox1;
+ private MetroFramework.Controls.MetroCheckBox syncLegsCheckBox;
+ private MetroFramework.Controls.MetroCheckBox staticArmsCheckBox;
+ private MetroFramework.Controls.MetroCheckBox syncArmsCheckBox;
+ private MetroFramework.Controls.MetroCheckBox statueCheckBox;
+ private MetroFramework.Controls.MetroCheckBox zombieCheckBox;
+ private MetroFramework.Controls.MetroCheckBox staticLegsCheckBox;
+ private MetroFramework.Controls.MetroCheckBox bobbingCheckBox;
+ private MetroFramework.Controls.MetroCheckBox santaCheckBox;
+ private MetroFramework.Controls.MetroCheckBox noArmorCheckBox;
+ private MetroFramework.Controls.MetroCheckBox dinnerboneCheckBox;
+ private MetroFramework.Controls.MetroCheckBox crouchCheckBox;
+ private MetroFramework.Controls.MetroCheckBox unknownCheckBox;
+ private MetroFramework.Controls.MetroButton copyButton;
+ private MetroFramework.Controls.MetroButton importButton;
+ private MetroFramework.Controls.MetroButton exportButton;
+ private MetroFramework.Controls.MetroLabel animValue;
+ private MetroFramework.Controls.MetroButton uncheckAllButton;
+ private MetroFramework.Controls.MetroButton checkAllButton;
+ private MetroFramework.Components.MetroToolTip toolTip;
+ private MetroFramework.Controls.MetroButton resetButton;
+ private MetroFramework.Controls.MetroButton templateButton;
+ }
+}
\ No newline at end of file
diff --git a/PCK-Studio/Forms/Editor/ANIMEditor.cs b/PCK-Studio/Forms/Editor/ANIMEditor.cs
new file mode 100644
index 00000000..d13f2863
--- /dev/null
+++ b/PCK-Studio/Forms/Editor/ANIMEditor.cs
@@ -0,0 +1,326 @@
+using System;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Collections.Generic;
+
+using PckStudio.Classes.Utils;
+using PckStudio.Forms.Additional_Popups;
+
+namespace PckStudio.Forms.Editor
+{
+ public partial class ANIMEditor : MetroFramework.Forms.MetroForm
+ {
+ public SkinANIM ResultAnim => ruleset.Value;
+
+ private readonly SkinANIM initialANIM;
+ private ANIMRuleSet ruleset;
+
+ sealed class ANIMRuleSet
+ {
+ public SkinANIM Value => anim;
+ public Action OnCheckboxChanged;
+
+ private class Bictionary : Dictionary
+ {
+ public Bictionary(int capacity)
+ : base(capacity)
+ { }
+
+ public T1 this[T2 index]
+ {
+ get
+ {
+ if (!this.Any(x => x.Value.Equals(index)))
+ throw new KeyNotFoundException();
+ return this.First(x => x.Value.Equals(index)).Key;
+ }
+ }
+
+ internal void AddRange(IEnumerable<(T1, T2)> range)
+ {
+ foreach (var (key, value) in range)
+ {
+ Add(key, value);
+ }
+ }
+ }
+ private Bictionary checkBoxLinkage;
+ private SkinANIM anim;
+ private bool ignoreCheckChanged = false;
+
+ public ANIMRuleSet(params (CheckBox, ANIM_EFFECTS)[] linkage)
+ {
+ checkBoxLinkage = new Bictionary(32);
+ if (linkage.Length < 32)
+ Debug.WriteLine($"Not all {nameof(ANIM_EFFECTS)} are mapped to a given checkbox.");
+
+ checkBoxLinkage.AddRange(linkage);
+ foreach (var (checkbox, _) in linkage)
+ {
+ checkbox.CheckedChanged += checkedChanged;
+ }
+ }
+
+ internal void SetAll(bool state)
+ {
+ foreach (var item in checkBoxLinkage)
+ {
+ IgnoreAndDo(item.Key, checkbox =>
+ {
+ anim.SetFlag(item.Value, state);
+ checkbox.Checked = state;
+ checkbox.Enabled = true;
+ });
+ }
+ }
+
+ internal void ApplyAnim(SkinANIM anim)
+ {
+ this.anim = anim;
+ foreach (var item in checkBoxLinkage)
+ item.Key.Enabled = true;
+ foreach (var item in checkBoxLinkage)
+ {
+ item.Key.Checked = anim.GetFlag(item.Value);
+ }
+ }
+
+ private void checkedChanged(object sender, EventArgs e)
+ {
+ if (!ignoreCheckChanged && sender is CheckBox checkBox && checkBoxLinkage.ContainsKey(checkBox))
+ {
+ switch (checkBoxLinkage[checkBox])
+ {
+ case ANIM_EFFECTS.HEAD_DISABLED:
+ checkBoxLinkage[ANIM_EFFECTS.FORCE_HEAD_ARMOR].Enabled = !checkBox.Checked;
+ break;
+ case ANIM_EFFECTS.BODY_DISABLED:
+ checkBoxLinkage[ANIM_EFFECTS.FORCE_BODY_ARMOR].Enabled = !checkBox.Checked;
+ break;
+ case ANIM_EFFECTS.LEFT_LEG_DISABLED:
+ checkBoxLinkage[ANIM_EFFECTS.FORCE_LEFT_LEG_ARMOR].Enabled = !checkBox.Checked;
+ break;
+ case ANIM_EFFECTS.RIGHT_LEG_DISABLED:
+ checkBoxLinkage[ANIM_EFFECTS.FORCE_RIGHT_LEG_ARMOR].Enabled = !checkBox.Checked;
+ break;
+ case ANIM_EFFECTS.LEFT_ARM_DISABLED:
+ checkBoxLinkage[ANIM_EFFECTS.FORCE_LEFT_ARM_ARMOR].Enabled = !checkBox.Checked;
+ break;
+ case ANIM_EFFECTS.RIGHT_ARM_DISABLED:
+ checkBoxLinkage[ANIM_EFFECTS.FORCE_RIGHT_ARM_ARMOR].Enabled = !checkBox.Checked;
+ break;
+
+ case ANIM_EFFECTS.RESOLUTION_64x64:
+ Uncheck(checkBoxLinkage[ANIM_EFFECTS.SLIM_MODEL]);
+ checkBoxLinkage[ANIM_EFFECTS.SLIM_MODEL].Enabled = !checkBox.Checked;
+ break;
+
+ case ANIM_EFFECTS.SLIM_MODEL:
+ Uncheck(checkBoxLinkage[ANIM_EFFECTS.RESOLUTION_64x64]);
+ checkBoxLinkage[ANIM_EFFECTS.RESOLUTION_64x64].Enabled = !checkBox.Checked;
+ break;
+ default:
+ break;
+ }
+ anim.SetFlag(checkBoxLinkage[checkBox], checkBox.Checked && checkBox.Enabled);
+ OnCheckboxChanged?.Invoke(anim);
+ }
+ }
+
+ private void Uncheck(CheckBox checkBox)
+ {
+ checkBox.Checked = false;
+ }
+
+ private void IgnoreAndDo(CheckBox checkBox, Action action)
+ {
+ ignoreCheckChanged = true;
+ action.Invoke(checkBox);
+ ignoreCheckChanged = false;
+ }
+ }
+
+ public ANIMEditor(string ANIM)
+ {
+ InitializeComponent();
+ if (!SkinANIM.IsValidANIM(ANIM))
+ {
+ DialogResult = DialogResult.Abort;
+ Close();
+ }
+ var anim = initialANIM = SkinANIM.FromString(ANIM);
+ ruleset = new ANIMRuleSet(
+ (bobbingCheckBox, ANIM_EFFECTS.HEAD_BOBBING_DISABLED),
+ (bodyCheckBox, ANIM_EFFECTS.BODY_DISABLED),
+ (bodyOCheckBox, ANIM_EFFECTS.BODY_OVERLAY_DISABLED),
+ (chestplateCheckBox, ANIM_EFFECTS.FORCE_BODY_ARMOR),
+ (classicCheckBox, ANIM_EFFECTS.RESOLUTION_64x64),
+ (crouchCheckBox, ANIM_EFFECTS.DO_BACKWARDS_CROUCH),
+ (dinnerboneCheckBox, ANIM_EFFECTS.DINNERBONE),
+ (headCheckBox, ANIM_EFFECTS.HEAD_DISABLED),
+ (headOCheckBox, ANIM_EFFECTS.HEAD_OVERLAY_DISABLED),
+ (helmetCheckBox, ANIM_EFFECTS.FORCE_HEAD_ARMOR),
+ (leftArmCheckBox, ANIM_EFFECTS.LEFT_ARM_DISABLED),
+ (leftArmOCheckBox, ANIM_EFFECTS.LEFT_ARM_OVERLAY_DISABLED),
+ (leftArmorCheckBox, ANIM_EFFECTS.FORCE_LEFT_ARM_ARMOR),
+ (leftLegCheckBox, ANIM_EFFECTS.LEFT_LEG_DISABLED),
+ (leftLeggingCheckBox, ANIM_EFFECTS.FORCE_LEFT_LEG_ARMOR),
+ (leftLegOCheckBox, ANIM_EFFECTS.LEFT_LEG_OVERLAY_DISABLED),
+ (noArmorCheckBox, ANIM_EFFECTS.ALL_ARMOR_DISABLED),
+ (rightArmCheckBox, ANIM_EFFECTS.RIGHT_ARM_DISABLED),
+ (rightArmOCheckBox, ANIM_EFFECTS.RIGHT_ARM_OVERLAY_DISABLED),
+ (rightArmorCheckBox, ANIM_EFFECTS.FORCE_RIGHT_ARM_ARMOR),
+ (rightLegCheckBox, ANIM_EFFECTS.RIGHT_LEG_DISABLED),
+ (rightLeggingCheckBox, ANIM_EFFECTS.FORCE_RIGHT_LEG_ARMOR),
+ (rightLegOCheckBox, ANIM_EFFECTS.RIGHT_LEG_OVERLAY_DISABLED),
+ (santaCheckBox, ANIM_EFFECTS.BAD_SANTA),
+ (slimCheckBox, ANIM_EFFECTS.SLIM_MODEL),
+ (staticArmsCheckBox, ANIM_EFFECTS.STATIC_ARMS),
+ (staticLegsCheckBox, ANIM_EFFECTS.STATIC_LEGS),
+ (statueCheckBox, ANIM_EFFECTS.STATUE_OF_LIBERTY),
+ (syncArmsCheckBox, ANIM_EFFECTS.SYNCED_ARMS),
+ (syncLegsCheckBox, ANIM_EFFECTS.SYNCED_LEGS),
+ (unknownCheckBox, ANIM_EFFECTS.__BIT_4),
+ (zombieCheckBox, ANIM_EFFECTS.ZOMBIE_ARMS)
+ );
+ ruleset.OnCheckboxChanged = setDisplayAnim;
+ setDisplayAnim(anim);
+ ruleset.ApplyAnim(anim);
+ }
+
+ private void setDisplayAnim(SkinANIM anim)
+ {
+ animValue.Text = anim.ToString();
+ }
+
+ private void saveButton_Click(object sender, EventArgs e)
+ {
+ DialogResult = DialogResult.OK;
+ Close();
+ }
+
+ private void copyButton_Click(object sender, EventArgs e)
+ {
+ Clipboard.SetText(animValue.Text);
+ }
+
+ private void importButton_Click(object sender, EventArgs e)
+ {
+ string value = string.Empty;
+ while (!SkinANIM.IsValidANIM(value))
+ {
+ if (!string.IsNullOrWhiteSpace(value)) MessageBox.Show($"The following value \"{value}\" is not valid. Please try again.");
+ RenamePrompt diag = new RenamePrompt(value);
+ diag.TextLabel.Text = "ANIM";
+ diag.OKButton.Text = "Ok";
+ if (diag.ShowDialog() == DialogResult.OK)
+ {
+ value = diag.NewText;
+ }
+ else return;
+ }
+ ruleset.ApplyAnim(SkinANIM.FromString(value));
+ }
+
+ private void uncheckAllButton_Click(object sender, EventArgs e)
+ {
+ ruleset.SetAll(false);
+ }
+
+ private void checkAllButton_Click(object sender, EventArgs e)
+ {
+ ruleset.SetAll(true);
+ }
+
+ private void exportButton_Click(object sender, EventArgs e)
+ {
+ using SaveFileDialog saveFileDialog = new SaveFileDialog
+ {
+ FileName = animValue.Text + ".png",
+ Filter = "Skin textures|*.png"
+ };
+ if (saveFileDialog.ShowDialog() != DialogResult.OK)
+ return;
+ bool isSlim = ruleset.Value.GetFlag(ANIM_EFFECTS.SLIM_MODEL);
+ bool is64x64 = ruleset.Value.GetFlag(ANIM_EFFECTS.RESOLUTION_64x64);
+ bool isClassic32 = !isSlim && !is64x64;
+
+ Image skin = isSlim ? Properties.Resources.slim_template : Properties.Resources.classic_template;
+
+ Size imgSize = new Size(64, isClassic32 ? 32 : 64);
+
+ Bitmap img = new Bitmap(imgSize.Width, imgSize.Height);
+ using (Graphics graphic = Graphics.FromImage(img))
+ {
+ graphic.DrawImage(skin, new Rectangle(Point.Empty, imgSize), new Rectangle(Point.Empty, imgSize), GraphicsUnit.Pixel);
+ if (ruleset.Value.GetFlag(ANIM_EFFECTS.HEAD_OVERLAY_DISABLED))
+ graphic.FillRectangle(Brushes.Magenta, new Rectangle(32, 0, 32, 16));
+ if (ruleset.Value.GetFlag(ANIM_EFFECTS.HEAD_DISABLED))
+ graphic.FillRectangle(Brushes.Magenta, new Rectangle(0, 0, 32, 16));
+ if (ruleset.Value.GetFlag(ANIM_EFFECTS.BODY_DISABLED))
+ graphic.FillRectangle(Brushes.Magenta, new Rectangle(16, 16, 24, 16));
+ if (img.Height == 64)
+ {
+ if (ruleset.Value.GetFlag(ANIM_EFFECTS.RIGHT_ARM_DISABLED)) graphic.FillRectangle(Brushes.Magenta, new Rectangle(40, 16, 16, 16));
+ if (ruleset.Value.GetFlag(ANIM_EFFECTS.RIGHT_LEG_DISABLED)) graphic.FillRectangle(Brushes.Magenta, new Rectangle(0, 16, 16, 16));
+ if (ruleset.Value.GetFlag(ANIM_EFFECTS.BODY_OVERLAY_DISABLED)) graphic.FillRectangle(Brushes.Magenta, new Rectangle(16, 32, 24, 16));
+ if (ruleset.Value.GetFlag(ANIM_EFFECTS.RIGHT_ARM_OVERLAY_DISABLED)) graphic.FillRectangle(Brushes.Magenta, new Rectangle(40, 32, 16, 16));
+ if (ruleset.Value.GetFlag(ANIM_EFFECTS.RIGHT_LEG_OVERLAY_DISABLED)) graphic.FillRectangle(Brushes.Magenta, new Rectangle(0, 32, 16, 16));
+ if (ruleset.Value.GetFlag(ANIM_EFFECTS.LEFT_LEG_OVERLAY_DISABLED)) graphic.FillRectangle(Brushes.Magenta, new Rectangle(0, 48, 16, 16));
+ if (ruleset.Value.GetFlag(ANIM_EFFECTS.LEFT_LEG_DISABLED)) graphic.FillRectangle(Brushes.Magenta, new Rectangle(16, 48, 16, 16));
+ if (ruleset.Value.GetFlag(ANIM_EFFECTS.LEFT_ARM_DISABLED)) graphic.FillRectangle(Brushes.Magenta, new Rectangle(32, 48, 16, 16));
+ if (ruleset.Value.GetFlag(ANIM_EFFECTS.LEFT_ARM_OVERLAY_DISABLED)) graphic.FillRectangle(Brushes.Magenta, new Rectangle(48, 48, 16, 16));
+ }
+ else
+ {
+ // Since both classic 32 arms and legs use the same texture, removing the texture would remove both limbs instead of just one.
+ // So both must be disabled by the user before they're removed from the texture;
+ if (ruleset.Value.GetFlag(ANIM_EFFECTS.RIGHT_ARM_DISABLED) && ruleset.Value.GetFlag(ANIM_EFFECTS.LEFT_ARM_DISABLED))
+ graphic.FillRectangle(Brushes.Magenta, new Rectangle(40, 16, 16, 16));
+ if (ruleset.Value.GetFlag(ANIM_EFFECTS.RIGHT_LEG_DISABLED) && ruleset.Value.GetFlag(ANIM_EFFECTS.LEFT_LEG_DISABLED))
+ graphic.FillRectangle(Brushes.Magenta, new Rectangle(0, 16, 16, 16));
+ }
+ img.MakeTransparent(Color.Magenta);
+ skin = img;
+ }
+ skin.Save(saveFileDialog.FileName);
+ }
+
+ private void resetButton_Click(object sender, EventArgs e)
+ {
+ ruleset.ApplyAnim((SkinANIM)initialANIM.Clone());
+ }
+
+ static readonly Dictionary Templates = new Dictionary()
+ {
+ { "Steve (64x32)", ANIM_EFFECTS.NONE },
+ { "Steve (64x64)", ANIM_EFFECTS.RESOLUTION_64x64 },
+ { "Alex (64x64)", ANIM_EFFECTS.SLIM_MODEL },
+ { "Zombie Skins", ANIM_EFFECTS.ZOMBIE_ARMS },
+ { "Cetacean Skins", ANIM_EFFECTS.SYNCED_ARMS | ANIM_EFFECTS.SYNCED_LEGS },
+ { "Ski Skins", ANIM_EFFECTS.SYNCED_ARMS | ANIM_EFFECTS.STATIC_LEGS },
+ { "Ghost Skins", ANIM_EFFECTS.STATIC_LEGS | ANIM_EFFECTS.ZOMBIE_ARMS },
+ { "Medusa (Greek Myth.)", ANIM_EFFECTS.SYNCED_LEGS },
+ { "Librarian (Halo)", ANIM_EFFECTS.STATIC_LEGS },
+ { "Grim Reaper (Halloween)", ANIM_EFFECTS.STATIC_LEGS | ANIM_EFFECTS.STATIC_ARMS }
+ };
+
+ private void templateButton_Click(object sender, EventArgs e)
+ {
+ var diag = new ItemSelectionPopUp(Templates.Keys.ToArray());
+ diag.label2.Text = "Presets";
+ diag.okBtn.Text = "Load";
+
+ if (diag.ShowDialog() != DialogResult.OK)
+ return;
+
+ var templateANIM = new SkinANIM(Templates[diag.SelectedItem]);
+ DialogResult prompt = MessageBox.Show(this, "Would you like to add this preset's effects to your current ANIM? Otherwise all of your effects will be cleared. Either choice can be undone by pressing \"Restore ANIM\".", "", MessageBoxButtons.YesNo);
+ if (prompt == DialogResult.Yes)
+ templateANIM = ruleset.Value | templateANIM;
+ ruleset.ApplyAnim(templateANIM);
+ }
+ }
+}
diff --git a/PCK-Studio/Forms/Editor/ANIMEditor.resx b/PCK-Studio/Forms/Editor/ANIMEditor.resx
new file mode 100644
index 00000000..332737e0
--- /dev/null
+++ b/PCK-Studio/Forms/Editor/ANIMEditor.resx
@@ -0,0 +1,2630 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+
+ 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
+ Tfr6LE9nbYpX/JKYCgGFwgAh6szKQQZn6KfRZOPDjLQMGLihYBm9ZdUWA4hO/4UYIBaICWKDNfzM5xMz
+ xA6tSh4qxBQV35v7JTYKhcJBCGgRsHoQxUYMWJpJYdI64B0DFC4wduD0X4gBdpsSE8QGDw2e9MQMsUMM
+ EUvElFf8DjBtDagQMDpLq4BxAroIKDkFywxCCAM6Tv8hXv7EBLFBhedJT8wQO1rxvbnfgRaKAeMEQIEC
+ TTnHUTQuiBGt8F7pu8woTMdJws3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N
+ zc3Nzc3Nzc3Nza2M9r73/T9XFdyT+zuuLAAAAABJRU5ErkJggigAAACAAAAAAAEAAAEAIAAAAAAAAAAC
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAGAAAA
+ CAAAAAoAAAAKAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAA
+ CwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAA
+ CwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAA
+ CwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAA
+ CwAAAAsAAAALAAAACwAAAAsAAAALAAAACgAAAAoAAAAIAAAABQAAAAMAAAABAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAQAAAAQAAAALAAAAFAAAAB4AAAAlAAAAKwAAACwAAAAtAAAALQAAAC0AAAAtAAAA
+ LQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAA
+ LQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAA
+ LQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAA
+ LQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAsAAAA
+ KgAAACUAAAAdAAAAFAAAAAsAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAJAAAAFwAAACoAAABBAAAA
+ VAAAAGEAAABpAAAAbAAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAA
+ bQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAA
+ bQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAA
+ bQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAA
+ bQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAGwAAABpAAAAYQAAAFIAAABBAAAALAAAABkAAAAMAAAA
+ AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAEAAAADwAAACMAAABBAAAAYgAAAIGmpqbN/v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+
+ //7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+
+ //7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+
+ //7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+
+ //7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+
+ ///////+/v7/p6enzAAAAIEAAABlAAAARgAAACoAAAATAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABEAAAArAAAAUgAAAHz/////////
+ //7+/v+YmJj/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/5mZmf////////////////8AAACEAAAA
+ XAAAADcAAAAaAAAACAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAIAAAAPAAAALAAAAFgAAACL//////v7+/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/5OTk///////Y2NjlAAAAawAAAD0AAAAbAAAACAAAAAEAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAACUAAABTJSUllf////9LS0v/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AgIC
+ ////////////AAAAbgAAADwAAAAYAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAQAAAAaAAAARQAAAID/////ExMT/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA///////+/v7/AAAAaAAAADQAAAAQAAAA
+ AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAADQAAAC8AAABo/v7+/2tra/8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA////////////AAAAVgAAACQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAQAAAAZAAAASc3Nzdj+/v7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAAB7AAAA
+ PQAAABMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAACgAAABi/////wMDA/8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wMDA/8ZGRn/Gxsb/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc
+ /xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc
+ /xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc
+ /xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc
+ /xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/Gxsb/woKCv8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/sbGx//////8AAABYAAAAIgAAAAcAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAPAAAANwAAAHj/////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xcXF/8fHx//IyMj
+ /yUlJf8nJyf/Jycn/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo
+ /ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo
+ /ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo
+ /ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo
+ /ycnJ/8nJyf/JiYm/yMjI/8gICD/Ghoa/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////
+ /wAAAHEAAAAyAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAABUAAABE/////4iIiP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8TExP/Hx8f/yUlJf8pKSn/Kysr/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t
+ /y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t
+ /y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t
+ /y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t
+ /y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8sLCz/Kioq/ycnJ/8iIiL/Gxsb
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP/r6+v/ycnJ0gAAAEAAAAATAAAAAQAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAADAAAAGgAAAE/+/v7/Dw8P/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/x0dHf8kJCT/Kioq
+ /y4uLv8wMDD/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx
+ /zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx
+ /zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx
+ /zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx
+ /zExMf8xMTH/MTEx/zAwMP8vLy//LCws/ygoKP8hISH/Ghoa/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /xEREf/+/v7/AAAATQAAABkAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAeAAAAVv////8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/ICAg/ycnJ/8tLS3/MTEx/zIyMv8zMzP/MzMz/zMzM/8zMzP/MzMz
+ /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz
+ /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz
+ /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz
+ /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MjIy/zIyMv8wMDD/LCws
+ /yUlJf8eHh7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAABVAAAAHQAAAAQAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAABQAAACAAAABa/////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wgICP8iIiL/KSkp
+ /y8vL/8yMjL/MzMz/zQ0NP80NDT/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/paWl
+ /zQ0NP80NDT/NDQ0/0tLS/+np6f/p6en/6enp/+np6f/NDQ0/zQ0NP80NDT/Q0ND/6enp/+np6f/p6en
+ /6enp/+np6f/p6en/6enp/+np6f/p6en/zQ0NP+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en
+ /0pKSv80NDT/NDQ0/6enp/+np6f/p6en/6enp/80NDT/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en
+ /6enp/+np6f/p6en/zQ0NP80NDT/MzMz/zExMf8uLi7/KCgo/yEhIf8HBwf/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD//////wAAAFkAAAAgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAIQAAAFv/////AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/GRkZ/yQkJP8rKyv/MTEx/zMzM/80NDT/NDQ0/zQ0NP+urq7/rq6u
+ /66urv+urq7/rq6u/66urv+urq7/rq6u/66urv+rq6v/NDQ0/zQ0NP80NDT/TExM/66urv+urq7/rq6u
+ /66urv80NDT/NDQ0/zQ0NP9ERET/rq6u/66urv+urq7/rq6u/66urv+urq7/rq6u/66urv+urq7/NDQ0
+ /66urv+urq7/rq6u/66urv+urq7/rq6u/66urv+urq7/rq6u/66urv80NDT/rq6u/66urv+urq7/rq6u
+ /zQ0NP+urq7/rq6u/66urv+urq7/rq6u/66urv+urq7/rq6u/66urv+urq7/NDQ0/zQ0NP80NDT/MjIy
+ /y8vL/8qKir/IyMj/xkZGf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAAWwAAACEAAAAFAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAUAAAAhAAAAW/////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8cHBz/JSUl
+ /ywsLP8xMTH/MzMz/zU1Nf81NTX/NTU1/6Ghof+hoaH/oaGh/6Ghof+hoaH/oqKi/7Ozs/+zs7P/s7Oz
+ /7CwsP81NTX/NTU1/zU1Nf9OTk7/s7Oz/7Ozs/+zs7P/s7Oz/zU1Nf81NTX/NTU1/0RERP+zs7P/s7Oz
+ /7Ozs/+zs7P/oaGh/7Ozs/+zs7P/s7Oz/7Ozs/80NDT/s7Oz/7Ozs/+zs7P/s7Oz/6CgoP+goKD/s7Oz
+ /7Ozs/+zs7P/s7Oz/zQ0NP+zs7P/s7Oz/7Ozs/+zs7P/NDQ0/7Ozs/+zs7P/s7Oz/7Ozs/+goKD/oKCg
+ /7Ozs/+zs7P/s7Oz/7Ozs/80NDT/NDQ0/zQ0NP8yMjL/MDAw/ysrK/8kJCT/Gxsb/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA//////8AAABbAAAAIQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc////
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xwcHP8lJSX/LCws/zExMf8zMzP/NTU1/zU1Nf81NTX/NTU1
+ /zU1Nf81NTX/NTU1/zU1Nf81NTX/urq6/7q6uv+6urr/t7e3/zU1Nf81NTX/NTU1/05OTv+6urr/urq6
+ /7q6uv+6urr/NTU1/zU1Nf81NTX/RUVF/7q6uv+6urr/urq6/7S0tP81NTX/urq6/7q6uv+6urr/urq6
+ /zU1Nf+6urr/urq6/7q6uv+6urr/NTU1/zU1Nf+6urr/urq6/7q6uv+6urr/NTU1/7q6uv+6urr/urq6
+ /7q6uv81NTX/urq6/7q6uv+6urr/urq6/zU1Nf81NTX/urq6/7q6uv+6urr/urq6/zU1Nf81NTX/NTU1
+ /zMzM/8xMTH/LCws/yUlJf8cHBz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAFwAAAAiAAAA
+ BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/HBwc
+ /yUlJf8sLCz/MTEx/zMzM/81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf/BwcH/wcHB
+ /8HBwf++vr7/NTU1/zU1Nf81NTX/T09P/8HBwf/BwcH/wcHB/8HBwf81NTX/NTU1/zU1Nf9ERET/wcHB
+ /8HBwf/BwcH/u7u7/zU1Nf/BwcH/wcHB/8HBwf/BwcH/NTU1/8HBwf/BwcH/wcHB/8HBwf81NTX/NTU1
+ /8HBwf/BwcH/wcHB/8HBwf81NTX/wcHB/8HBwf/BwcH/wcHB/zU1Nf/BwcH/wcHB/8HBwf/BwcH/NTU1
+ /zU1Nf/BwcH/wcHB/8HBwf/BwcH/NTU1/zU1Nf81NTX/MzMz/zExMf8sLCz/JSUl/xwcHP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP//////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAA
+ XP////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8dHR3/JiYm/y0tLf8yMjL/NDQ0/zY2Nv82Njb/NjY2
+ /8jIyP/IyMj/yMjI/8jIyP/IyMj/yMjI/8jIyP/IyMj/yMjI/8TExP82Njb/NjY2/zY2Nv9RUVH/yMjI
+ /8jIyP/IyMj/yMjI/zY2Nv82Njb/NTU1/0ZGRv/IyMj/yMjI/8jIyP/BwcH/NTU1/8jIyP/IyMj/yMjI
+ /8jIyP81NTX/yMjI/8jIyP/IyMj/yMjI/zU1Nf81NTX/yMjI/8jIyP/IyMj/yMjI/zU1Nf/IyMj/yMjI
+ /8jIyP/IyMj/NTU1/8jIyP/IyMj/yMjI/8jIyP81NTX/NTU1/8jIyP/IyMj/yMjI/8jIyP81NTX/NTU1
+ /zU1Nf8zMzP/MTEx/ywsLP8lJSX/HBwc/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAABcAAAA
+ IgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /x0dHf8mJib/LS0t/zIyMv80NDT/NjY2/zY2Nv82Njb/z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P
+ /8/Pz//Pz8//y8vL/zY2Nv82Njb/NjY2/1FRUf/Pz8//z8/P/8/Pz//Pz8//NjY2/zY2Nv82Njb/R0dH
+ /8/Pz//Pz8//z8/P/8jIyP82Njb/z8/P/8/Pz//Pz8//z8/P/zY2Nv/Pz8//z8/P/8/Pz//Pz8//NjY2
+ /zY2Nv/Pz8//z8/P/8/Pz//Pz8//NjY2/8/Pz//Pz8//z8/P/8/Pz/82Njb/z8/P/8/Pz//Pz8//z8/P
+ /zY2Nv82Njb/z8/P/8/Pz//Pz8//z8/P/zY2Nv82Njb/NTU1/zMzM/8xMTH/LCws/yUlJf8cHBz/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAA
+ IgAAAFz/////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/HR0d/yYmJv8tLS3/MjIy/zQ0NP82Njb/NjY2
+ /zY2Nv/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/R0dH/NjY2/zY2Nv82Njb/UlJS
+ /9XV1f/V1dX/1dXV/9XV1f82Njb/NjY2/zY2Nv9HR0f/1dXV/9XV1f/V1dX/zc3N/zY2Nv/V1dX/1dXV
+ /9XV1f/V1dX/NjY2/9XV1f/V1dX/1dXV/9XV1f82Njb/NjY2/9XV1f/V1dX/1dXV/9XV1f82Njb/1dXV
+ /9XV1f/V1dX/1dXV/zY2Nv/V1dX/1dXV/9XV1f/V1dX/NjY2/zY2Nv/V1dX/1dXV/9XV1f/V1dX/NjY2
+ /zY2Nv82Njb/NDQ0/zIyMv8tLS3/JiYm/x0dHf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAA
+ XAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8dHR3/JiYm/y0tLf8yMjL/NDQ0/zY2Nv82Njb/NjY2/9zc3P/c3Nz/3Nzc/9zc3P82Njb/NjY2
+ /zY2Nv82Njb/NjY2/zY2Nv82Njb/NjY2/zY2Nv9TU1P/3Nzc/9zc3P/c3Nz/3Nzc/zY2Nv82Njb/NjY2
+ /0hISP/c3Nz/3Nzc/9zc3P/U1NT/NjY2/9zc3P/c3Nz/3Nzc/9zc3P82Njb/3Nzc/9zc3P/c3Nz/3Nzc
+ /zY2Nv82Njb/3Nzc/9zc3P/c3Nz/3Nzc/zY2Nv/c3Nz/3Nzc/9zc3P/c3Nz/NjY2/9zc3P/c3Nz/3Nzc
+ /9zc3P82Njb/NjY2/9zc3P/c3Nz/3Nzc/9zc3P82Njb/NjY2/zY2Nv80NDT/MjIy/y0tLf8mJib/HR0d
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ BgAAACIAAABc/////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/x0dHf8nJyf/Li4u/zMzM/81NTX/Nzc3
+ /zc3N/83Nzf/4+Pj/+Pj4//j4+P/4+Pj/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3
+ /1VVVf/j4+P/4+Pj/+Pj4//j4+P/Nzc3/zc3N/83Nzf/SUlJ/+Pj4//j4+P/4+Pj/9ra2v83Nzf/4+Pj
+ /+Pj4//j4+P/4+Pj/zY2Nv/j4+P/4+Pj/+Pj4//j4+P/NjY2/zY2Nv/j4+P/4+Pj/+Pj4//j4+P/NjY2
+ /+Pj4//j4+P/4+Pj/+Pj4/82Njb/4+Pj/+Pj4//j4+P/4+Pj/zY2Nv82Njb/4+Pj/+Pj4//j4+P/4+Pj
+ /zY2Nv82Njb/NjY2/zQ0NP8yMjL/LS0t/yYmJv8dHR3/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////
+ /wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/HR0d/ycnJ/8uLi7/MzMz/zU1Nf83Nzf/Nzc3/zc3N//q6ur/6urq/+rq6v/q6ur/Nzc3
+ /zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/VVVV/+rq6v/q6ur/6urq/+rq6v83Nzf/Nzc3
+ /zc3N/9KSkr/6urq/+rq6v/q6ur/4eHh/zc3N//q6ur/6urq/+rq6v/q6ur/Nzc3/+rq6v/q6ur/6urq
+ /+rq6v83Nzf/Nzc3/+rq6v/q6ur/6urq/+rq6v83Nzf/6urq/+rq6v/q6ur/6urq/zc3N//q6ur/6urq
+ /+rq6v/q6ur/Nzc3/zc3N//q6ur/6urq/+rq6v/q6ur/Nzc3/zc3N/83Nzf/NTU1/zMzM/8uLi7/Jycn
+ /x0dHf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAYAAAAiAAAAXP////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8dHR3/Jycn/y4uLv8zMzP/NTU1
+ /zc3N/83Nzf/Nzc3//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx/+zs7P83Nzf/8fHx
+ //Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/Nzc3/0pKSv/x8fH/8fHx//Hx8f/n5+f/Nzc3
+ //Hx8f/x8fH/8fHx//Hx8f83Nzf/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx
+ /zc3N//x8fH/8fHx//Hx8f/x8fH/Nzc3//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx
+ //Hx8f83Nzf/Nzc3/zc3N/81NTX/MzMz/y4uLv8nJyf/HR0d/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ //////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/x4eHv8oKCj/Ly8v/zQ0NP82Njb/ODg4/zg4OP84ODj/+Pj4//j4+P/4+Pj/+Pj4
+ //j4+P/4+Pj/+Pj4//j4+P/4+Pj/8vLy/zg4OP/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4
+ //j4+P83Nzf/SkpK//j4+P/4+Pj/+Pj4/+7u7v83Nzf/+Pj4//j4+P/4+Pj/+Pj4/zc3N//4+Pj/+Pj4
+ //j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4/1VVVf83Nzf/Nzc3//j4+P/4+Pj/+Pj4//j4+P83Nzf/+Pj4
+ //j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4/zc3N/83Nzf/Nzc3/zU1Nf8zMzP/Li4u
+ /ycnJ/8dHR3/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAGAAAAIgAAAFz/////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Hh4e/ygoKP8vLy//NDQ0
+ /zY2Nv84ODj/ODg4/zg4OP9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9vb2//ODg4
+ /3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/zg4OP87Ozv/cXFx/3Fxcf9xcXH/bW1t
+ /zg4OP9xcXH/cXFx/3Fxcf9xcXH/ODg4/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/Pj4+
+ /zg4OP84ODj/cXFx/3Fxcf9xcXH/cXFx/zg4OP9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx
+ /3Fxcf9xcXH/Nzc3/zc3N/83Nzf/NTU1/zMzM/8uLi7/Jycn/x0dHf8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP//////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8eHh7/KCgo/y8vL/80NDT/NjY2/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4
+ /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4
+ /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4
+ /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4
+ /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP82Njb/NDQ0
+ /y8vL/8oKCj/Hh4e/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAABcAAAAIgAAAAYAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAABgAAACIAAABc/////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/x4eHv8oKCj/Ly8v
+ /zQ0NP82Njb/ODg4/zg4OP84ODj/pKSk/6SkpP+kpKT/pKSk/6SkpP+kpKT/pKSk/6SkpP84ODj/ODg4
+ /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/pKSk/6SkpP+kpKT/pKSk
+ /6SkpP+kpKT/pKSk/6SkpP+kpKT/pKSk/6SkpP+kpKT/pKSk/6SkpP+kpKT/pKSk/zg4OP84ODj/pKSk
+ /6SkpP+kpKT/pKSk/6SkpP+kpKT/pKSk/6SkpP84ODj/ODg4/zg4OP+kpKT/pKSk/6SkpP+kpKT/pKSk
+ /6SkpP+kpKT/pKSk/zg4OP84ODj/ODg4/zY2Nv80NDT/Ly8v/ygoKP8eHh7/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////AQEB
+ /wEBAf8BAQH/AQEB/wEBAf8BAQH/Hh4e/ygoKP8vLy//NTU1/zc3N/85OTn/OTk5/zk5Of+np6f/p6en
+ /6enp/+np6f/p6en/6enp/+np6f/p6en/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5
+ /zk5Of85OTn/OTk5/zk5Of+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en
+ /6enp/+np6f/p6en/6enp/+np6f/ODg4/zg4OP+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en
+ /zg4OP84ODj/ODg4/6enp/+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/ODg4/zg4OP84ODj/NjY2
+ /zQ0NP8vLy//KCgo/x4eHv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAAXAAAACIAAAAGAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8CAgL/AgIC/wICAv8CAgL/AgIC/wICAv8eHh7/KCgo
+ /y8vL/81NTX/Nzc3/zk5Of85OTn/OTk5/6urq/+rq6v/q6ur/6urq/+rq6v/q6ur/6urq/+rq6v/OTk5
+ /zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/6urq/+rq6v/q6ur
+ /6urq/+rq6v/q6ur/6urq/+rq6v/q6ur/6urq/+rq6v/q6ur/6urq/+rq6v/q6ur/6urq/85OTn/OTk5
+ /6urq/+rq6v/q6ur/6urq/+rq6v/q6ur/6urq/+rq6v/OTk5/zk5Of85OTn/q6ur/6urq/+rq6v/q6ur
+ /6urq/+rq6v/q6ur/6urq/85OTn/OTk5/zk5Of83Nzf/NTU1/y8vL/8oKCj/Hh4e/wEBAf8BAQH/AQEB
+ /wEBAf8BAQH/AQEB//////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc////
+ /wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/x4eHv8oKCj/Ly8v/zU1Nf83Nzf/OTk5/zk5Of85OTn/rq6u
+ /66urv+urq7/rq6u/66urv+urq7/rq6u/66urv85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5
+ /zk5Of85OTn/OTk5/zk5Of85OTn/rq6u/66urv+urq7/rq6u/66urv+urq7/rq6u/66urv+urq7/rq6u
+ /66urv+urq7/rq6u/66urv+urq7/rq6u/zk5Of85OTn/rq6u/66urv+urq7/rq6u/66urv+urq7/rq6u
+ /66urv85OTn/OTk5/zk5Of+urq7/rq6u/66urv+urq7/rq6u/66urv+urq7/rq6u/zk5Of85OTn/OTk5
+ /zc3N/81NTX/Ly8v/ygoKP8eHh7/AgIC/wICAv8CAgL/AgIC/wICAv8CAgL//////wAAAFwAAAAiAAAA
+ BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/Hx8f
+ /ykpKf8wMDD/NjY2/zg4OP86Ojr/Ojo6/zo6Ov+ysrL/srKy/7Kysv+ysrL/srKy/7Kysv+ysrL/srKy
+ /zo6Ov86Ojr/Ojo6/zo6Ov85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of+ysrL/srKy
+ /7Kysv+ysrL/srKy/7Kysv+ysrL/srKy/7Kysv+ysrL/srKy/7Kysv+ysrL/srKy/7Kysv+ysrL/OTk5
+ /zk5Of+ysrL/srKy/7Kysv+ysrL/srKy/7Kysv+ysrL/srKy/zk5Of85OTn/OTk5/7Kysv+ysrL/srKy
+ /7Kysv+ysrL/srKy/7Kysv+ysrL/OTk5/zk5Of85OTn/Nzc3/zU1Nf8vLy//KCgo/x4eHv8DAwP/AwMD
+ /wMDA/8DAwP/AwMD/wMDA///////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAA
+ XP////8EBAT/BAQE/wQEBP8EBAT/BAQE/wQEBP8fHx//KSkp/zAwMP82Njb/ODg4/zo6Ov86Ojr/Ojo6
+ /7W1tf+1tbX/tbW1/7W1tf+1tbX/tbW1/7W1tf+1tbX/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6
+ /zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/7W1tf+1tbX/tbW1/7W1tf+1tbX/tbW1/7W1tf+1tbX/Ojo6
+ /zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/7W1tf+1tbX/tbW1/7W1tf+1tbX/tbW1
+ /7W1tf+1tbX/Ojo6/zo6Ov86Ojr/tbW1/7W1tf+1tbX/tbW1/7W1tf+1tbX/tbW1/7W1tf85OTn/OTk5
+ /zk5Of83Nzf/NTU1/y8vL/8oKCj/Hh4e/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD//////8AAABcAAAA
+ IgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////wQEBP8EBAT/BAQE/wQEBP8EBAT/BAQE
+ /x8fH/8pKSn/MDAw/zY2Nv84ODj/Ojo6/zo6Ov86Ojr/ubm5/7m5uf+5ubn/ubm5/7m5uf+5ubn/ubm5
+ /7m5uf86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/ubm5
+ /7m5uf+5ubn/ubm5/7m5uf+5ubn/ubm5/7m5uf86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6
+ /zo6Ov86Ojr/ubm5/7m5uf+5ubn/ubm5/7m5uf+5ubn/ubm5/7m5uf86Ojr/Ojo6/zo6Ov+5ubn/ubm5
+ /7m5uf+5ubn/ubm5/7m5uf+5ubn/ubm5/zo6Ov86Ojr/Ojo6/zg4OP82Njb/MDAw/ykpKf8fHx//BAQE
+ /wQEBP8EBAT/BAQE/wQEBP8EBAT//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAA
+ IgAAAFz/////BQUF/wUFBf8FBQX/BQUF/wUFBf8FBQX/Hx8f/ykpKf8wMDD/NjY2/zg4OP86Ojr/Ojo6
+ /zo6Ov+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+8vLz/vLy8/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6
+ /zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+8vLz/vLy8
+ /zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov+8vLz/vLy8/7y8vP+8vLz/vLy8
+ /7y8vP+8vLz/vLy8/zo6Ov86Ojr/Ojo6/7y8vP+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+8vLz/Ojo6
+ /zo6Ov86Ojr/ODg4/zY2Nv8wMDD/KSkp/x8fH/8FBQX/BAQE/wQEBP8EBAT/BAQE/wQEBP//////AAAA
+ XAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8GBgb/BgYG/wYGBv8GBgb/BgYG
+ /wYGBv8gICD/Kioq/zExMf83Nzf/OTk5/zs7O/87Ozv/Ozs7/7+/v/+/v7//v7+//7+/v/+/v7//v7+/
+ /7+/v/+/v7//Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7
+ /7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6
+ /zo6Ov86Ojr/Ojo6/7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+/
+ /7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/86Ojr/Ojo6/zo6Ov84ODj/NjY2/zAwMP8pKSn/Hx8f
+ /wUFBf8FBQX/BQUF/wUFBf8FBQX/BQUF//////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ BgAAACIAAABc/////wcHB/8HBwf/BwcH/wcHB/8HBwf/BwcH/yAgIP8qKir/MTEx/zc3N/85OTn/Ozs7
+ /zs7O/87Ozv/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw/87Ozv/Ozs7/zs7O/87Ozv/Ozs7
+ /zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD
+ /8PDw/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/w8PD/8PDw//Dw8P/w8PD
+ /8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD
+ /zs7O/87Ozv/Ozs7/zg4OP82Njb/MDAw/ykpKf8fHx//BgYG/wYGBv8GBgb/BgYG/wYGBv8GBgb/////
+ /wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////BwcH/wcHB/8HBwf/BwcH
+ /wcHB/8HBwf/ICAg/yoqKv8xMTH/Nzc3/zk5Of87Ozv/Ozs7/zs7O//Gxsb/xsbG/8bGxv/Gxsb/xsbG
+ /8bGxv/Gxsb/xsbG/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/Ozs7
+ /zs7O//Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7
+ /zs7O/87Ozv/Ozs7/zs7O//Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG
+ /8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/Ozs7/zs7O/87Ozv/OTk5/zc3N/8xMTH/Kioq
+ /yAgIP8HBwf/BwcH/wcHB/8HBwf/BwcH/wcHB///////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAYAAAAiAAAAXP////8ICAj/CAgI/wgICP8ICAj/CAgI/wgICP8gICD/Kioq/zIyMv84ODj/Ojo6
+ /zw8PP88PDz/PDw8/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK
+ /8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv87Ozv/Ozs7/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK
+ /8rKyv/Kysr/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/8rKyv/Kysr/ysrK
+ /8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK
+ /8rKyv87Ozv/Ozs7/zs7O/85OTn/Nzc3/zExMf8qKir/ICAg/wcHB/8HBwf/BwcH/wcHB/8HBwf/BwcH
+ //////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////wkJCf8JCQn/CQkJ
+ /wkJCf8JCQn/CAgI/yAgIP8qKir/MjIy/zg4OP86Ojr/PDw8/zw8PP88PDz/zs7O/87Ozv/Ozs7/zs7O
+ /87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O
+ /zw8PP88PDz/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv88PDz/PDw8/zw8PP88PDz/PDw8
+ /zw8PP88PDz/PDw8/zw8PP88PDz/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O
+ /87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/zs7O/87Ozv/Ozs7/zk5Of83Nzf/MTEx
+ /yoqKv8gICD/CAgI/wgICP8ICAj/CAgI/wgICP8ICAj//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAGAAAAIgAAAFz/////CQkJ/wkJCf8JCQn/CQkJ/wkJCf8JCQn/ICAg/yoqKv8yMjL/ODg4
+ /zo6Ov88PDz/PDw8/zw8PP/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR
+ /9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/PDw8/zw8PP/R0dH/0dHR/9HR0f/R0dH/0dHR
+ /9HR0f/R0dH/0dHR/zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP/R0dH/0dHR
+ /9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/qamp/zw8PP88PDz/PDw8
+ /zw8PP88PDz/PDw8/zw8PP88PDz/Ojo6/zg4OP8yMjL/Kioq/yAgIP8JCQn/CQkJ/wkJCf8JCQn/CQkJ
+ /wkJCf//////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8KCgr/CgoK
+ /woKCv8KCgr/CgoK/woKCv8hISH/Kysr/zMzM/84ODj/Ojo6/zw8PP88PDz/PDw8/9TU1P/U1NT/1NTU
+ /9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU
+ /9TU1P88PDz/PDw8/9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU/9TU1P/U1NT/PDw8/zw8PP88PDz/PDw8
+ /zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU
+ /9TU1P/U1NT/1NTU/9TU1P+rq6v/PDw8/zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP86Ojr/ODg4
+ /zIyMv8qKir/ICAg/wkJCf8JCQn/CQkJ/wkJCf8JCQn/CQkJ//////8AAABcAAAAIgAAAAYAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAABgAAACIAAABc/////wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/yEhIf8rKyv/MzMz
+ /zg4OP87Ozv/PT09/z09Pf89PT3/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX
+ /9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/z09Pf89PT3/19fX/9fX1//X19f/19fX
+ /9fX1//X19f/19fX/9fX1/89PT3/PT09/z09Pf89PT3/PT09/zw8PP88PDz/PDw8/zw8PP88PDz/19fX
+ /9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/6ysrP88PDz/PDw8
+ /zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zo6Ov84ODj/MjIy/yoqKv8gICD/CgoK/woKCv8KCgr/CgoK
+ /woKCv8KCgr//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////CwsL
+ /wsLC/8LCwv/CwsL/wsLC/8LCwv/ISEh/ysrK/8zMzP/ODg4/zs7O/89PT3/PT09/z09Pf/b29v/29vb
+ /9vb2//b29v/29vb/9vb2//b29v/29vb/z09Pf89PT3/PT09/9vb2//b29v/29vb/9vb2//b29v/29vb
+ /9vb2//b29v/PT09/z09Pf/b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/z09Pf89PT3/PT09
+ /z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf/b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb
+ /9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/PT09/z09Pf89PT3/Ozs7
+ /zg4OP8zMzP/Kysr/yEhIf8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC///////AAAAXAAAACIAAAAGAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8MDAz/DAwM/wwMDP8MDAz/DAwM/wwMDP8hISH/Kysr
+ /zMzM/84ODj/Ozs7/z09Pf89PT3/PT09/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/PT09
+ /z09Pf89PT3/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v89PT3/PT09/97e3v/e3t7/3t7e
+ /97e3v/e3t7/3t7e/97e3v/e3t7/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09
+ /97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e
+ /97e3v/e3t7/3t7e/97e3v89PT3/PT09/z09Pf87Ozv/ODg4/zMzM/8rKyv/ISEh/wsLC/8LCwv/CwsL
+ /wsLC/8LCwv/CwsL//////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc////
+ /w0NDf8NDQ3/DQ0N/w0NDf8NDQ3/DQ0N/yEhIf8sLCz/NDQ0/zk5Of88PDz/Pj4+/z4+Pv8+Pj7/4uLi
+ /+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v8+Pj7/PT09/z09Pf/i4uL/4uLi/+Li4v/i4uL/4uLi
+ /+Li4v/i4uL/4uLi/z09Pf89PT3/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v89PT3/PT09
+ /z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi
+ /+Li4v/FxcX/xcXF/8XFxf/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/z09Pf89PT3/PT09
+ /zs7O/84ODj/MzMz/ysrK/8hISH/DAwM/wwMDP8MDAz/DAwM/wwMDP8MDAz//////wAAAFwAAAAiAAAA
+ BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////DQ0N/w0NDf8NDQ3/DQ0N/w0NDf8NDQ3/ISEh
+ /ywsLP80NDT/OTk5/zw8PP8+Pj7/Pj4+/z4+Pv/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl
+ /z4+Pv8+Pj7/Pj4+/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/Pj4+/z4+Pv/l5eX/5eXl
+ /+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+
+ /z4+Pv/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/z09Pf89PT3/PT09/+Xl5f/l5eX/5eXl
+ /+Xl5f/l5eX/5eXl/+Xl5f/l5eX/PT09/z09Pf89PT3/Ozs7/zg4OP8zMzP/Kysr/yEhIf8NDQ3/DQ0N
+ /w0NDf8NDQ3/DQ0N/w0NDf//////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAA
+ XP////8ODg7/Dg4O/w4ODv8ODg7/Dg4O/w4ODv8hISH/LCws/zQ0NP85OTn/PDw8/z4+Pv8+Pj7/Pj4+
+ /+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en/Pj4+/z4+Pv8+Pj7/6enp/+np6f/p6en/6enp
+ /+np6f/p6en/6enp/+np6f8+Pj7/Pj4+/+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en/Pj4+
+ /z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/+np6f/p6en/6enp/+np6f/p6en/6enp
+ /+np6f/p6en/Pj4+/z4+Pv8+Pj7/6enp/+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f8+Pj7/Pj4+
+ /z4+Pv88PDz/OTk5/zQ0NP8sLCz/ISEh/w0NDf8NDQ3/DQ0N/w0NDf8NDQ3/DQ0N//////8AAABcAAAA
+ IgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////w4ODv8ODg7/Dg4O/w4ODv8ODg7/Dg4O
+ /yIiIv8sLCz/NDQ0/zk5Of88PDz/Pj4+/z4+Pv8+Pj7/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs
+ /+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/z4+Pv8+Pj7/7Ozs
+ /+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs
+ /z4+Pv8+Pj7/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P8+Pj7/Pj4+/z4+Pv/s7Oz/7Ozs
+ /+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/z4+Pv8+Pj7/Pj4+/zw8PP85OTn/NDQ0/ywsLP8hISH/Dg4O
+ /w4ODv8ODg7/Dg4O/w4ODv8ODg7//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAA
+ IgAAAFz/////Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//IiIi/y0tLf80NDT/Ojo6/z09Pf8/Pz//Pz8/
+ /z8/P//w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw
+ //Dw8P/w8PD/8PDw//Dw8P/w8PD/Pz8//z8/P//w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw
+ //Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/Pj4+/z4+Pv/w8PD/8PDw//Dw8P/w8PD/8PDw
+ //Dw8P/w8PD/8PDw/z4+Pv8+Pj7/Pj4+//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/Pj4+
+ /z4+Pv8+Pj7/PDw8/zk5Of80NDT/LCws/yEhIf8ODg7/Dg4O/w4ODv8ODg7/Dg4O/w4ODv//////AAAA
+ XAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8QEBD/EBAQ/xAQEP8QEBD/EBAQ
+ /xAQEP8iIiL/LS0t/zQ0NP86Ojr/PT09/z8/P/8/Pz//Pz8///Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz
+ //Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8/8/Pz//Pz8/
+ //Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz
+ //Pz8/8/Pz//Pz8///Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/Pz8//z8/P/8/Pz//8/Pz
+ //Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8/8/Pz//Pz8//z8/P/89PT3/Ojo6/zQ0NP8tLS3/IiIi
+ /w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P//////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ BgAAACIAAABc/////xEREf8RERH/ERER/xEREf8RERH/ERER/yIiIv8tLS3/NDQ0/zo6Ov89PT3/Pz8/
+ /z8/P/8/Pz//9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2
+ //b29v/29vb/9vb2//b29v/29vb/9vb2/z8/P/8/Pz//9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2
+ //b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2/z8/P/8/Pz//9vb2//b29v/29vb/9vb2
+ //b29v/29vb/9vb2//b29v8/Pz//Pz8//z8/P//29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2
+ /z8/P/8/Pz//Pz8//z09Pf86Ojr/NDQ0/y0tLf8iIiL/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/////
+ /wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////ERER/xEREf8RERH/ERER
+ /xEREf8RERH/IiIi/y0tLf81NTX/Ozs7/z4+Pv9AQED/QEBA/0BAQP/6+vr/+vr6//r6+v/6+vr/+vr6
+ //r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/5+fn/Pz8/
+ /z8/P//6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6
+ //r6+v/6+vr/Pz8//z8/P//6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/z8/P/8/Pz//Pz8/
+ //r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/Pz8//z8/P/8/Pz//PT09/zo6Ov80NDT/LS0t
+ /yIiIv8RERH/ERER/xEREf8RERH/ERER/xEREf//////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAYAAAAiAAAAXP////8SEhL/EhIS/xISEv8SEhL/EhIS/xISEv8iIiL/LS0t/zU1Nf87Ozv/Pj4+
+ /0BAQP9AQED/QEBA/8DAwP/AwMD/v7+//7+/v//AwMD/wMDA/8DAwP/AwMD/v7+//7+/v/+/v7//v7+/
+ /8DAwP/AwMD/v7+//7+/v/+/v7//v7+//7+/v/9AQED/QEBA/7+/v/+/v7//v7+//8DAwP/AwMD/wMDA
+ /8DAwP+/v7//v7+//7+/v//AwMD/wMDA/8DAwP+/v7//v7+//7+/v/9AQED/QEBA/8DAwP/AwMD/v7+/
+ /7+/v/+/v7//v7+//7+/v/+/v7//Pz8//z8/P/8/Pz//vr6+/76+vv+/v7//v7+//7+/v/++vr7/vr6+
+ /76+vv8/Pz//Pz8//z8/P/89PT3/Ojo6/zQ0NP8tLS3/IiIi/xEREf8RERH/ERER/xEREf8RERH/ERER
+ //////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////xISEv8SEhL/EhIS
+ /xISEv8SEhL/EhIS/yIiIv8tLS3/NTU1/zs7O/8+Pj7/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/z4+Pv87Ozv/NTU1
+ /y0tLf8iIiL/EhIS/xISEv8SEhL/EhIS/xISEv8SEhL//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAGAAAAIgAAAFz/////ExMT/xMTE/8TExP/ExMT/xMTE/8TExP/IiIi/y0tLf81NTX/Ozs7
+ /z4+Pv9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/Pj4+/zs7O/81NTX/LS0t/yIiIv8TExP/ExMT/xMTE/8TExP/EhIS
+ /xISEv//////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8UFBT/FBQU
+ /xQUFP8UFBT/FBQU/xQUFP8jIyP/Li4u/zY2Nv88PDz/Pz8//0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP8+Pj7/Ozs7
+ /zU1Nf8tLS3/IiIi/xMTE/8TExP/ExMT/xMTE/8TExP/ExMT//////8AAABcAAAAIgAAAAYAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAABgAAACIAAABc/////xUVFf8VFRX/FRUV/xUVFf8VFRX/FRUV/yMjI/8uLi7/NjY2
+ /zw8PP8/Pz//QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/z8/P/88PDz/NjY2/y4uLv8iIiL/FBQU/xQUFP8UFBT/FBQU
+ /xQUFP8UFBT//////wAAAFwAAAAiAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////FRUV
+ /xUVFf8VFRX/FRUV/xUVFf8VFRX/IyMj/y4uLv82Njb/PDw8/z8/P/9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/Pz8/
+ /zw8PP82Njb/Li4u/yMjI/8VFRX/FRUV/xUVFf8VFRX/FRUV/xUVFf//////AAAAXAAAACIAAAAGAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8WFhb/FhYW/xYWFv8WFhb/FhYW/xYWFv8jIyP/Ly8v
+ /zc3N/89PT3/QEBA/0JCQv9CQkL/QkJC/0JCQv9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9AQED/QEBA/0BAQP9AQED/Pz8/
+ /z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8/
+ /z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8+Pj7/Ozs7/zU1Nf8tLS3/IiIi/xUVFf8VFRX/FRUV
+ /xUVFf8VFRX/FRUV//////8AAABcAAAAIgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc////
+ /xcXF/8XFxf/FxcX/xcXF/8XFxf/FxcX/yMjI/8vLy//Nzc3/z09Pf9AQED/QkJC/0JCQv9CQkL/QkJC
+ /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC
+ /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC
+ /0FBQf9BQUH/QEBA/0BAQP8/Pz//Pz8//z4+Pv8+Pj7/Pj4+/z09Pf89PT3/PT09/z09Pf89PT3/PT09
+ /z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09
+ /zs7O/84ODj/MzMz/ysrK/8hISH/FhYW/xYWFv8WFhb/FhYW/xYWFv8WFhb//////wAAAFwAAAAiAAAA
+ BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////FxcX/xcXF/8XFxf/FxcX/xcXF/8XFxf/IyMj
+ /y8vL/83Nzf/PT09/0BAQP9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC
+ /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC
+ /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9BQUH/QEBA/z8/P/8+Pj7/PT09/zs7O/86Ojr/OTk5
+ /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4
+ /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/Nzc3/zQ0NP8uLi7/Jycn/x4eHv8XFxf/FxcX
+ /xcXF/8XFxf/FxcX/xcXF///////AAAAXAAAACIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAA
+ XP////8YGBj/GBgY/xgYGP8YGBj/GBgY/xgYGP8jIyP/Ly8v/zc3N/89PT3/QEBA/0JCQv9CQkL/QkJC
+ /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC
+ /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QUFB
+ /0BAQP8/Pz//PT09/zs7O/84ODj/NTU1/zMzM/8yMjL/MTEx/zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw
+ /zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw
+ /zAwMP8vLy//LS0t/ygoKP8iIiL/Ghoa/xcXF/8XFxf/FxcX/xcXF/8XFxf/FxcX//////8AAABbAAAA
+ IQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ
+ /yQkJP8vLy//ODg4/z4+Pv9BQUH/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND
+ /0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND
+ /0NDQ/9DQ0P/QkJC/0JCQv9CQkL/QkJC/0FBQf9AQED/Pj4+/zs7O/84ODj/NDQ0/y8vL/8sLCz/KSkp
+ /ycnJ/8mJib/JSUl/yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl
+ /yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl/yQkJP8iIiL/Hh4e/xoaGv8VFRX/GBgY
+ /xgYGP8YGBj/GBgY/xgYGP8YGBj//////wAAAFoAAAAhAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAA
+ IgAAAFz/////GRkZ/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/JCQk/y8vL/84ODj/Pj4+/0FBQf9DQ0P/Q0ND
+ /0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND
+ /0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9CQkL/QUFB
+ /z8/P/87Ozv/Nzc3/zIyMv8sLCz/JiYm/yEhIf8ZGRn/FhYW/xYWFv8WFhb/FhYW/xYWFv8WFhb/FhYW
+ /xYWFv8WFhb/FhYW/xYWFv8WFhb/FhYW/xYWFv8WFhb/FhYW/xYWFv8WFhb/FhYW/xYWFv8WFhb/FhYW
+ /xYWFv8WFhb/FhYW/xYWFv8WFhb/FhYW/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ/xkZGf//////AAAA
+ VwAAAB8AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8aGhr/Ghoa/xoaGv8aGhr/Ghoa
+ /xoaGv8kJCT/Ly8v/zg4OP8+Pj7/QUFB/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND
+ /0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND
+ /0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0JCQv9AQED/PDw8/zc3N/8wMDD/KSkp/yEhIf8aGhr/Ghoa
+ /xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa
+ /xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa
+ /xoaGv8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ//////8AAABPAAAAGgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ BgAAACIAAABc/////xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/yQkJP8wMDD/OTk5/z8/P/9CQkL/RERE
+ /0RERP9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND
+ /0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9CQkL/QUFB
+ /z09Pf84ODj/MTEx/ygoKP8eHh7/Ghoa/xoaGv8aGhr/Ghoa/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ
+ /xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ
+ /xkZGf8ZGRn/GRkZ/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/////
+ /wAAAD8AAAATAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////Gxsb/xsbG/8bGxv/Gxsb
+ /xsbG/8bGxv/JCQk/zAwMP85OTn/Pz8//0JCQv9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE
+ /0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE
+ /0RERP9ERET/RERE/0RERP9ERET/RERE/0NDQ/9AQED/PDw8/zU1Nf8sLCz/ISEh/xsbG/8bGxv/Gxsb
+ /ysrK/82Njb/NjY2/zY2Nv82Njb/NjY2/zY2Nv82Njb/NjY2/zY2Nv82Njb/NjY2/zY2Nv82Njb/NjY2
+ /zY2Nv82Njb/NjY2/zY2Nv82Njb/NjY2/zY2Nv82Njb/NjY2/zY2Nv82Njb/NjY2/xsbG/8bGxv/Gxsb
+ /xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb////////////AAAAKwAAAAwAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAYAAAAiAAAAXP////8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8kJCT/MDAw/zk5Of8/Pz//QkJC
+ /0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE
+ /0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9DQ0P/QkJC
+ /z8/P/85OTn/MDAw/yYmJv8cHBz/HBwc/xwcHP82Njb/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3
+ /zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3
+ /zY2Nv82Njb/NjY2/zY2Nv8sLCz/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG//+/v7/////
+ /wAAADkAAAAVAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////x0dHf8dHR3/HR0d
+ /x0dHf8dHR3/HR0d/yQkJP8wMDD/OTk5/z8/P/9CQkL/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE
+ /0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE
+ /0RERP9ERET/RERE/0RERP9ERET/RERE/0NDQ/9BQUH/PT09/zU1Nf8sLCz/GBgY/xwcHP8cHBz/NTU1
+ /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4
+ /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP83Nzf/Nzc3/zc3N/83Nzf/LS0t/xwcHP8cHBz/HBwc
+ /xwcHP8cHBz/HBwc/xwcHP8cHBz//v7+//////8AAAA+AAAAGgAAAAcAAAABAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAGAAAAIgAAAFz/////HR0d/x0dHf8dHR3/HR0d/x0dHf8dHR3/JSUl/zExMf85OTn/QEBA
+ /0NDQ/9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF
+ /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0RERP9ERET/Q0ND
+ /0FBQf88PDz/MzMz/ygoKP8dHR3/HR0d/xYWFv85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5
+ /zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of84ODj/ODg4/zg4OP84ODj/ODg4
+ /zg4OP84ODj/ODg4/y0tLf8dHR3/HR0d/x0dHf8dHR3/HR0d/x0dHf8dHR3/HR0d////////////AAAA
+ PgAAABsAAAAIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8eHh7/Hh4e
+ /x4eHv8eHh7/Hh4e/x4eHv8lJSX/MTEx/zk5Of9AQED/Q0ND/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF
+ /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF
+ /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9DQ0P/QUFB/zs7O/8xMTH/JiYm/x4eHv8eHh7/Nzc3
+ /zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6
+ /zo6Ov85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of8vLy//HR0d/x0dHf8dHR3/HR0d
+ /x0dHf8dHR3/HR0d/x0dHf///////////wAAAD4AAAAbAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAABgAAACIAAABc/////x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/yUlJf8xMTH/OTk5
+ /0BAQP9DQ0P/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF
+ /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF
+ /0NDQ/9AQED/Ojo6/zAwMP8eHh7/Hh4e/x4eHv87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7
+ /zs7O/87Ozv/Ozs7/zs7O/86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6
+ /zo6Ov86Ojr/ICAg/x4eHv8eHh7/Hh4e/x4eHv8eHh7/Hh4e/x4eHv8eHh7///////////8AAAA+AAAA
+ GwAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////Hx8f
+ /x8fH/8fHx//Hx8f/x8fH/8fHx//JiYm/zIyMv86Ojr/QUFB/0RERP9GRkb/RkZG/0ZGRv9GRkb/RkZG
+ /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF
+ /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/Q0ND/0BAQP85OTn/Ly8v/x4eHv8fHx//Hx8f
+ /zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7
+ /zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/yEhIf8fHx//Hx8f/x8fH/8fHx//Hx8f
+ /x8fH/8fHx//Hx8f////////////AAAAPgAAABsAAAAIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8gICD/ICAg/yAgIP8gICD/ICAg/yAgIP8mJib/MjIy
+ /zo6Ov9BQUH/RERE/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG
+ /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG
+ /0ZGRv9ERET/QUFB/zo6Ov8vLy//Hx8f/yAgIP8gICD/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PDw8
+ /zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP88PDz/PDw8
+ /zw8PP8hISH/Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH////////////wAAAD8AAAAbAAAA
+ BwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc////
+ /yEhIf8hISH/ISEh/yEhIf8hISH/ISEh/yYmJv8yMjL/Ojo6/0FBQf9ERET/RkZG/0ZGRv9GRkb/RkZG
+ /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG
+ /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0RERP9AQED/OTk5/y8vL/8eHh7/ICAg
+ /x8fH/89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/PT09
+ /z09Pf89PT3/PT09/z09Pf89PT3/PT09/z09Pf89PT3/ISEh/yAgIP8gICD/ICAg/yAgIP8gICD/ICAg
+ /yAgIP8gICD///////////8AAAA/AAAAGwAAAAgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////ISEh/yEhIf8hISH/ISEh/yEhIf8hISH/JiYm
+ /zIyMv86Ojr/QUFB/0RERP9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG
+ /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG
+ /0ZGRv9GRkb/RERE/0BAQP85OTn/Ly8v/x8fH/8hISH/ICAg/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+
+ /z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+
+ /xoaGv8hISH/ISEh/yEhIf8hISH/ISEh/yEhIf8hISH/ISEh////////////AAAAPgAAABsAAAAIAAAA
+ AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAA
+ XP////8iIiL/IiIi/yIiIv8iIiL/IiIi/yIiIv8mJib/MjIy/zs7O/9CQkL/RUVF/0dHR/9HR0f/R0dH
+ /0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH
+ /0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0ZGRv9GRkb/RkZG/0VFRf9ERET/QEBA/zk5Of8vLy//Hx8f
+ /yIiIv8hISH/Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8/
+ /z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8YGBj/ISEh/yEhIf8hISH/ISEh/yEhIf8hISH/ISEh
+ /yEhIf///////////wAAAD4AAAAbAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////yMjI/8jIyP/IyMj/yMjI/8jIyP/IyMj
+ /yYmJv8yMjL/Ozs7/0JCQv9FRUX/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH
+ /0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH
+ /0dHR/9HR0f/RkZG/0VFRf9BQUH/Ojo6/y8vL/8gICD/IiIi/yEhIf9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/Ghoa
+ /yIiIv8iIiL/IiIi/yIiIv8iIiL/IiIi/yIiIv8iIiL//v7+//////8AAAA+AAAAGwAAAAgAAAABAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAA
+ IgAAAFz/////IyMj/yMjI/8jIyP/IyMj/yMjI/8jIyP/JiYm/zIyMv87Ozv/QkJC/0VFRf9HR0f/R0dH
+ /0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH
+ /0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9GRkb/RUVF/0FBQf86Ojr/Ly8v
+ /yAgIP8jIyP/IiIi/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/xwcHP8jIyP/IyMj/yMjI/8jIyP/IyMj/yMjI/8jIyP/IyMj
+ //7+/v//////AAAAPgAAABsAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8kJCT/JCQk/yQkJP8kJCT/JCQk
+ /yQkJP8nJyf/MzMz/zw8PP9DQ0P/RkZG/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/R0dH
+ /0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH
+ /0dHR/9HR0f/R0dH/0ZGRv9FRUX/QUFB/zo6Ov8vLy//ICAg/yQkJP8jIyP/QkJC/0JCQv9CQkL/QkJC
+ /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9BQUH/QUFB/0FBQf8eHh7/JCQk
+ /yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk/yQkJP/+/v7//////wAAAD4AAAAbAAAABwAAAAEAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ BgAAACIAAABc/////yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl/ycnJ/8zMzP/PDw8/0NDQ/9GRkb/SEhI
+ /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI
+ /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/R0dH/0ZGRv9CQkL/Ozs7
+ /zAwMP8hISH/JSUl/yQkJP9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND
+ /0NDQ/9DQ0P/QkJC/0JCQv9CQkL/HBwc/yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk/yQkJP8kJCT/////
+ //////8AAAA+AAAAGwAAAAgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////JSUl/yUlJf8lJSX/JSUl
+ /yUlJf8lJSX/Jycn/zMzM/88PDz/Q0ND/0ZGRv9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI
+ /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI
+ /0hISP9ISEj/SEhI/0hISP9HR0f/RkZG/0JCQv87Ozv/MDAw/yEhIf8lJSX/JCQk/0RERP9ERET/RERE
+ /0RERP9ERET/RERE/0RERP9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/x8fH/8lJSX/JSUl
+ /yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl////////////AAAAPwAAABsAAAAHAAAAAQAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAYAAAAiAAAAXP////8mJib/JiYm/yYmJv8mJib/JiYm/yYmJv8nJyf/MzMz/zw8PP9DQ0P/RkZG
+ /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI
+ /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0dHR/9GRkb/QkJC
+ /zs7O/8wMDD/ISEh/yYmJv8lJSX/RUVF/0VFRf9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE
+ /0RERP9ERET/RERE/0RERP8jIyP/JSUl/yUlJf8lJSX/JSUl/yUlJf8lJSX/JSUl/yUlJf/+/v7/////
+ /wAAAD8AAAAcAAAACAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc/////ycnJ/8nJyf/Jycn
+ /ycnJ/8nJyf/Jycn/ycnJ/80NDT/PT09/0RERP9HR0f/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ
+ /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9ISEj/SEhI/0hISP9ISEj/SEhI
+ /0hISP9ISEj/SEhI/0hISP9ISEj/R0dH/0ZGRv9CQkL/Ozs7/zAwMP8hISH/JiYm/yUlJf9GRkb/RUVF
+ /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/IiIi/yYmJv8mJib/JiYm
+ /yYmJv8mJib/JiYm/yYmJv8mJib//v7+//////8AAAA+AAAAGwAAAAgAAAABAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAGAAAAIgAAAFz/////KCgo/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/zQ0NP89PT3/RERE
+ /0dHR/9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ
+ /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9ISEj/R0dH
+ /0NDQ/88PDz/MTEx/yEhIf8nJyf/JiYm/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG
+ /0ZGRv9GRkb/RkZG/yMjI/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn////////////AAAA
+ PgAAABsAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8oKCj/KCgo
+ /ygoKP8oKCj/KCgo/ygoKP8nJyf/NDQ0/z09Pf9ERET/R0dH/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ
+ /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ
+ /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0hISP9HR0f/Q0ND/zw8PP8xMTH/IiIi/ygoKP8nJyf/R0dH
+ /0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/8lJSX/KCgo/ygoKP8oKCj/KCgo
+ /ygoKP8oKCj/KCgo/ygoKP///////f39/gAAAD4AAAAbAAAACAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAABgAAACIAAABc/////ykpKf8pKSn/KSkp/ykpKf8pKSn/KSkp/ygoKP80NDT/Pj4+
+ /0VFRf9ISEj/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ
+ /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SEhI
+ /0dHR/9DQ0P/PDw8/zExMf8iIiL/KSkp/ygoKP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI
+ /0hISP9HR0f/Jycn/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj///////////8AAAA+AAAA
+ GwAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////KSkp
+ /ykpKf8pKSn/KSkp/ykpKf8pKSn/KCgo/zQ0NP8+Pj7/RUVF/0hISP9KSkr/SkpK/0pKSv9KSkr/SkpK
+ /0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK
+ /0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9JSUn/R0dH/0RERP88PDz/MTEx/yMjI/8pKSn/KCgo
+ /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SEhI/ykpKf8pKSn/KSkp/ykpKf8pKSn/KSkp
+ /ykpKf8pKSn/KSkp////////////AAAAPgAAABsAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAAXP////8qKir/Kioq/yoqKv8qKir/Kioq/yoqKv8oKCj/NDQ0
+ /z4+Pv9FRUX/SEhI/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK
+ /0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK
+ /0lJSf9HR0f/RERE/zw8PP8xMTH/IyMj/yoqKv8pKSn/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK
+ /0pKSv8pKSn/Kioq/yoqKv8qKir/Kioq/yoqKv8qKir/Kioq/yoqKv///////f39/gAAAD4AAAAbAAAA
+ CAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACIAAABc////
+ /ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ygoKP80NDT/Pj4+/0VFRf9ISEj/SkpK/0pKSv9KSkr/SkpK
+ /0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK
+ /0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SUlJ/0dHR/9ERET/PDw8/zExMf8jIyP/Kioq
+ /ykpKf9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/KSkp/yoqKv8qKir/Kioq/yoqKv8qKir/Kioq
+ /yoqKv8qKir///////39/f4AAAA+AAAAGwAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAIgAAAFz/////LCws/ywsLP8sLCz/LCws/ywsLP8sLCz/KCgo
+ /zU1Nf8+Pj7/RkZG/0lJSf9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL
+ /0tLS/9LS0v/S0tL/0tLS/9LS0v/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK
+ /0pKSv9JSUn/R0dH/0RERP88PDz/MTEx/yQkJP8rKyv/Kioq/0xMTP9MTEz/TExM/0xMTP9MTEz/S0tL
+ /yoqKv8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr////////////AAAAPAAAABoAAAAIAAAA
+ AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAiAAAA
+ XP////8sLCz/LCws/ywsLP8sLCz/LCws/ywsLP8oKCj/NTU1/z4+Pv9GRkb/SUlJ/0tLS/9LS0v/S0tL
+ /0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL
+ /0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0pKSv9ISEj/RUVF/z09Pf8yMjL/JSUl
+ /ywsLP8rKyv/TU1N/01NTf9NTU3/TExM/0tLS/8sLCz/LCws/ywsLP8sLCz/LCws/ywsLP8sLCz/LCws
+ /ywsLP///////Pz8/QAAADkAAAAZAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAACEAAABb/////y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t
+ /ycnJ/80NDT/Pj4+/0VFRf9JSUn/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL
+ /0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL
+ /0tLS/9LS0v/SkpK/0hISP9FRUX/PT09/zIyMv8lJSX/LCws/ysrK/9OTk7/TU1N/01NTf9LS0v/LCws
+ /ywsLP8sLCz/LCws/ywsLP8sLCz/LCws/ywsLP8sLCz///////v7+/sAAAA5AAAAFwAAAAYAAAABAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAA
+ IQAAAFr/////LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/JiYm/zMzM/89PT3/RUVF/0lJSf9LS0v/S0tL
+ /0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL
+ /0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9KSkr/SEhI/0VFRf89PT3/MjIy
+ /yUlJf8tLS3/LCws/05OTv9OTk7/TU1N/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t
+ ////////////AAAAOAAAABcAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAfAAAAWP////8uLi7/Li4u/y4uLv8uLi7/Li4u
+ /y4uLv8kJCT/MDAw/zo6Ov9DQ0P/SEhI/0pKSv9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL
+ /0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL
+ /0tLS/9LS0v/S0tL/0pKSv9JSUn/RUVF/z4+Pv8yMjL/JiYm/y4uLv8uLi7/T09P/05OTv8uLi7/Li4u
+ /y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv///////////wAAADgAAAAXAAAABgAAAAEAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AwAAABwAAABT/////y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/yQkJP8rKyv/NjY2/z4+Pv9ERET/RkZG
+ /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI
+ /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0ZGRv9CQkL/Ozs7
+ /zAwMP8lJSX/Li4u/y4uLv81NTX/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/////
+ //////8AAAA5AAAAFwAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAFwAAAEn/////MDAw/zAwMP8wMDD/MDAw
+ /zAwMP8wMDD/LS0t/yUlJf8uLi7/Nzc3/z09Pf9AQED/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC
+ /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC
+ /0JCQv9CQkL/QkJC/0JCQv9CQkL/QEBA/z09Pf82Njb/LCws/yQkJP8vLy//Ly8v/y8vL/8vLy//Ly8v
+ /y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v////////////AAAAOQAAABcAAAAGAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAEAAAARAAAAPf////9DQ0P/MDAw/zAwMP8wMDD/MDAw/zAwMP8wMDD/HR0d/yYmJv8tLS3/MzMz
+ /zc3N/85OTn/OTk5/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6
+ /zo6Ov86Ojr/Ojo6/zo6Ov85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of83Nzf/NDQ0
+ /y4uLv8lJSX/IiIi/zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw/zAwMP//////+/v7
+ +gAAADkAAAAXAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAv0dHRyvv7+/8xMTH/MTEx
+ /zExMf8xMTH/MTEx/zExMf8xMTH/HBwc/yMjI/8oKCj/Kysr/y0tLf8uLi7/Li4u/y4uLv8uLi7/Li4u
+ /y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u
+ /y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y0tLf8qKir/JSUl/x4eHv8lJSX/MDAw/zAwMP8wMDD/MDAw
+ /zAwMP8wMDD/MDAw/zAwMP8wMDD///////////8AAAA4AAAAGAAAAAcAAAABAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAABgAAAB8AAABT/////zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MDAw
+ /ykpKf8iIiL/IyMj/yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk
+ /yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk/yQkJP8kJCT/JCQk/yQkJP8kJCT/IyMj
+ /yIiIv8eHh7/JSUl/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx////////////AAAA
+ NwAAABYAAAAGAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAEQAAADj9/f3+6enp
+ /zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy
+ /zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy
+ /zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy
+ /zIyMv8yMjL/MjIy/zIyMv///////////wAAADYAAAAWAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAIAAAAFD/////NTU1/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz
+ /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz
+ /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz
+ /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP///////////8AAAA1AAAA
+ FQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAOAAAA
+ LmxsbIH/////NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0
+ /zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz
+ /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz
+ /zMzM/8zMzP/MzMz///////7+/v7AAAANQAAABUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAATAAAANP//////////NTU1/zQ0NP80NDT/NDQ0
+ /zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0
+ /zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0
+ /zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP//////29vbzgAAADQAAAAVAAAA
+ BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAUAAAAVAAAAMvf39/D/////4ODg/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1
+ /zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1
+ /zU1Nf81NTX/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0
+ /zQ0NP80NDT//////83Nzb4AAAA0AAAAFQAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAATAAAAKAAAAEb9/f3+////
+ //X19f+rq6v/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1
+ /zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1
+ /zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/ra2t///////IyMi2AAAAMgAAABUAAAAFAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAQAAAALAAAAGgAAAC4AAABD0NDQuv/////9/f3+/f39/v39/f79/f3+/f39
+ /v39/f79/f3+/f39/v39/f79/f3+/f39/v39/f79/f3+/f39/v39/f79/f3+/f39/v39/f79/f3+/f39
+ /v39/f79/f3+/f39/v39/f79/f3+/f39/v39/f79/f3+/f39/v39/f79/f3+/f39/v39/f79/f3+/f39
+ /v39/f79/f3+AAAARAAAACoAAAATAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAA
+ DAAAABUAAAAfAAAAJgAAACoAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAA
+ LAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAA
+ LAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAArAAAAKAAAACEAAAAXAAAADAAAAAMAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAUAAAAHAAAACQAAAAkAAAAKAAAA
+ CgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAA
+ CgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAA
+ CgAAAAkAAAAIAAAABgAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////+AAAAAAAAAAAA/////////AAAAAAAAAAAAD////////AAAAAAAAAAAAAf//
+ /////gAAAAAAAAAAAAD///////wAAAAAAAAAAAAAf//////8AAAAAAAAAAAAAD//////+AAAAAAAAAAA
+ AAA///////gAAAAAAAAAAAAAH//////4AAAAAAAAAAAAAB//////8AAAAAAAAAAAAAAP//////AAAAAA
+ AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w
+ AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//
+ ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA
+ AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAA
+ AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w
+ AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//
+ ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA
+ AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAA
+ AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w
+ AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//
+ ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA
+ AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAA
+ AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w
+ AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//
+ ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA
+ AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAB//////8AAAAAAAAAAAAAA///////AAAAAA
+ AAAAAAAAf//////wAAAAAAAAAAAAAP//////8AAAAAAAAAAAAAH///////AAAAAAAAAAAAAD///////w
+ AAAAAAAAAAAAB///////8AAAAAAAAAAAAA////////AAAAAAAAAAAAAf///////wAAAAAAAAAAAAP///
+ ////8AAAAAAAAAAAAH////////AAAAAAAAAAAAD////////wAAAAAAAAAAAB////////8AAAAAAAAAAA
+ A/////////AAAAAAAAAAAAf////////wAAAAAAAAAAAP////////8AAAAAAAAAAAH/////////AAAAAA
+ AAAAAD/////////wAAAAAAAAAAB/////////8AAAAAAAAAAA//////////AAAAAAAAAAAf/////////w
+ AAAAAAAAAAP/////////8AAAAAAAAAAH//////////AAAAAAAAAAD//////////wAAAAAAAAAB//////
+ ////8AAAAAAAAAA///////////AAAAAAAAAAf//////////wAAAAAAAAAP//////////8AAAAAAAAAH/
+ //////////AAAAAAAAAD///////////wAAAAAAAAB///////////8AAAAAAAAA////////////gAAAAA
+ AAAf///////////4AAAAAAAAP////////////AAAAAAAAH////////////wAAAAAAAD////////////+
+ AAAAAAAB/////////////wAAAAAAA//////////////AAAAAAAf/////////////8AAAAAAf////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////8oAAAAgAAAAAABAAABAAgAAAAA
+ AACAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wEBAf8CAgL/AwMD/wQEBP8FBQX/BgYG/wcHB/8ICAj/CQkJ
+ /woKCv8LCwv/DAwM/w0NDf8ODg7/Dw8P/xAQEP8RERH/EhIS/xMTE/8UFBT/FRUV/xYWFv8XFxf/GBgY
+ /xkZGf8aGhr/Gxsb/xwcHP8dHR3/Hh4e/x8fH/8gICD/ISEh/yIiIv8jIyP/JCQk/yUlJf8mJib/Jycn
+ /ygoKP8pKSn/Kioq/ysrK/8sLCz/LS0t/y4uLv8vLy//MDAw/zExMf8yMjL/MzMz/zQ0NP81NTX/NjY2
+ /zc3N/84ODj/OTk5/zo6Ov87Ozv/PDw8/z09Pf8+Pj7/Pz8//0BAQP9BQUH/QkJC/0NDQ/9ERET/RUVF
+ /0ZGRv9HR0f/SEhI/0lJSf9KSkr/S0tL/0xMTP9NTU3/Tk5O/09PT/9QUFD/UVFR/1JSUv9TU1P/VFRU
+ /1VVVf9WVlb/V1dX/1hYWP9ZWVn/Wlpa/1tbW/9cXFz/XV1d/15eXv9fX1//YGBg/2FhYf9iYmL/Y2Nj
+ /2RkZP9lZWX/ZmZm/2dnZ/9oaGj/aWlp/2pqav9ra2v/bGxs/21tbf9ubm7/b29v/3BwcP9ycnL/c3Nz
+ /3R0dP91dXX/dnZ2/3d3d/94eHj/eXl5/3p6ev97e3v/fHx8/319ff9+fn7/f39//4CAgP+BgYH/goKC
+ /4SEhP+FhYX/hoaG/4eHh/+IiIj/iYmJ/4qKiv+Li4v/jIyM/42Njf+Ojo7/j4+P/5CQkP+RkZH/kpKS
+ /5OTk/+UlJT/lZWV/5aWlv+Xl5f/mJiY/5mZmf+ampr/m5ub/5ycnP+dnZ3/np6e/5+fn/+goKD/oaGh
+ /6Kiov+jo6P/pKSk/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw
+ /7Gxsf+ysrL/s7Oz/7S0tP+1tbX/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/v7+/
+ /8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8bGxv/Hx8f/yMjI/8nJyf/Kysr/y8vL/8zMzP/Nzc3/zs7O
+ /8/Pz//Q0ND/0dHR/9LS0v/T09P/1NTU/9XV1f/W1tb/19fX/9jY2P/Z2dn/2tra/9vb2//c3Nz/3d3d
+ /97e3v/f39//4eHh/+Li4v/j4+P/5OTk/+Xl5f/m5ub/5+fn/+jo6P/p6en/6urq/+vr6//s7Oz/7e3t
+ /+7u7v/v7+//8PDw//Hx8f/y8vL/8/Pz//T09P/39/f/+Pj4//r6+v/7+/v//Pz8//////8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAARqfP1dTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU
+ 1NTU1NTU1NTU1NTU1NTU1NTU1NTV2cihPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAOsj2xoBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRk
+ ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRniMf2zlgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAH/xuDcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATen9bAKAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACX9HYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABG5NYZAQEAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAefRVAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa
+ zd0aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLwfgAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAQ1sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAuMoEAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAYp8nYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ ABr0RAAAAAAAAAAGCxEXEhcSFxIXEhcSFxIXEhcSFxIXEhcSFxIXEhcSFxIXEhcSFxIXEhcSFxIXEhcS
+ FxEUFBcSFxIXEhcSFxIXDwsEAAAAAAAAAACG5QEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAjtoEAAAAAAAAER8kKCcpKCooKigqKConKCkqKCooKigqKCooKigqKCooKigqKCooKigq
+ KCooKigqKCopKSkoKigqKCooKigpJicmJCAQBgAAAAAAABDsbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAADNhQAAAAAAAAwhJiovKi8qMCowKjAqMCovMC8qMCowKjAqMCowKjAqMCow
+ KjAqMCowKjAqMCowKjAqMCowKiovKjAqMCowKjApLywqJyUYAAAAAAAAAKW4BgAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOdSAAAAAAAEGigpKjAxMS8vMTExMTEyNCovMTExMTIyLy8w
+ LzExMTExMTExMTExMDExMTExMTEwLzExMTExNzAxMTExMTEyMjAvMTEsKCEXAAAAAAABWeMAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO9B8AAAAAAAogJyk2MTA3OkdAQUFBQUFBOjcw
+ MjlBQUE6NzQ3OEFBQUFBQUFBQTc6REFBQUFBQTk3MkFBQUEyOkRBQUFBQUFBOjcxMSosKCAGAAAAAAAf
+ 8w0BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABb3HwAAAAAADyQpKi83NzaWpaek
+ paWmpqZ5NzcyZqekp3k0NDRmpaanpKWlpqenOoaopqSlpaWmaDQ3pqakpjqCpqekpaWmp6aINzcwNyop
+ IQ0AAAAAASH2FgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFvcfAAAAAAAQJCkx
+ NzExNJeorqiura2qp4U0MjdmqqeugDIxMWmqqqqnra2tqqg/iK6oqK6qra2ceTqqqKitOoavraiuqq2t
+ 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
+ 9hcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf3KAsLCwwNHCo0Ojw6PEDH1tbW
+ 1tbW18XDyNbW1tbW1ta6OknV1tbW1tbW0kc6QDpAOjo/PD+41tbW1tbW1tbW1tbYl1hYWFlWPD86ODg0
+ LBoKCgoKCij2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/YpDAsLCwsaKjY4
+ OkA6Qc7a2dnZ2dnZVTpk2NnZ2dnZ2bo8S9jZ2dnZ2dnVQDo/Oj86Pzw6QMLZ2dnZ2dnZ2dnZ2dnZ2dnZ
+ 2cM6Pzo6PDQqGg4LCwsLKPcXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX9ikM
+ DAwMDxoqNjo6QDo6zdvb29vb29tRPGfb3dvb29vbvTpK2t3b29vb3NxBPz8/Pz9AOj88w9vb29vb29vd
+ 3d3b29vb29zcxkBAOjo4MikcCwsLCwwp9hcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAABf2LA4NDQ0NGik3Nzo6OkbV4eHh4eHh4VU8Z+Te4eHh4eHCPEzc3uHh4eHh3Do6Ojo6Ojo6QTrH
+ 4eHh4eHh4aaWo+Hh4eHh4eHHPzo6Pzo3KhwMDAwMDCn2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAF/YqDQ0NDg8aLDQ6OkY6QNbj4+Pj4+PjWDpn4+Pj4+Pj48Q6SuTj4+Pj4+PcRjpG
+ OkY6RjpBP8fj4+Pj4+PkYjxc4+Th4+Pj480/Pzo6OjIqHA0NDQ0OLPYXAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAX9iwODg4ODBovNzo6QDpE2ubl5+bn5uZVOmrl5+bn5ufmxz9K5Ofl
+ 5+bn5uRHOkA6QDpAOkA6x+bn5ufm5+ZnOl/m5+fn5+bnzjw6QDo8NykgDg0NDQ0q9hcAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf3Kg8PDg4XGiw2OjpAOkDc7Ofs5+zn59XN1ufs5+zn
+ 7efIQUvl7Ofs5+zn6c3Nzc3Nzc3GQTzU5+zn7Ofs52Y6X+fn7Ofs5+nVRj9AOjg3KRwODg4ODiz2FwAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/YpEQ8PDw8aKjk6P0A/Qd7t7e3t7e3t
+ 7e3t7e3t7e3t7cc/S+fv7e3t7e3t7e3t7e3t7eNHOtXu7e3t7e3tZzpg7e3t7e3t7dU/Ojo8OjQsGhAO
+ Dg4OKvcXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX9ywOEBAREh8pNjo8Pz9B
+ 4fDw8PDw8PDw8PDw8PDw8PDv1T9M7PDw8PDw8PDw8PDw8PDx50c61PDw8PDw8PBmP1/w8PDw8PDw2EA/
+ Rjo5NywcDQ8PDxEp9hcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf3LBcRERER
+ Gi83OTpBQEDj8vLy8vLy8vLy8vLy8vLy8vLOOkzy8/Ly8vLy8vLy8vLy8vLsRjrZ8vLy8vLy8mc/X/Ly
+ 8vLy8vLbQD8/Ojo3LB8XEBAQDiz3FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ FPcqEREREhQgLDc6Pzo/Ruf09PT09PT09PT09PT09PT09NVATPL09PT09PT09PT09PT09OxGP9r09PT0
+ 9PT0Zz9g9PT09PT09N1BQUA8PDkqGhERERIXKfYXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAX9i8SEhISEBoqOjw/R0BBnqenp6enp6enp6enp6enp6enlD9Ipaenp6enp6enp6enp6en
+ okc/laenp6enp6dWP1Knp6anp6aml0A/Ojo/NikgEREREQ8p9xcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAABf3LxISEhIXICk4OjpAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
+ QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEFHOjw4LB8SERARFy/2FwAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/YxEhIREhEaMDY8P0BAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
+ QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEA6OjkpIhYUFxISL/YXAAAAAAAA
+ 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
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/c5IRohGhokMTpAQEdGR0ZBRkFGQUZBRkFGR0ZHRkdGR0ZH
+ RkdGR0FBRjg3KRoaJDo6Ojk5ODg6ODo6OTg3OTk6Ojc6NzY4ODk6KRogGiAaGho01+EkAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX9jofGiAaICQxOEBHREZBR0ZGRkZGRkZGRkZE
+ R0FGQUZBRkFGQUZBRkZAOjclGiIwOTo8Ojo6Ojo6PDw6Ojo6Ojw6Ojo6Ojo5OSkfGiEaIRohN9bhJQAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf2Oh8fHx8fJDI6Oj9GR0dHR0dH
+ R0dHR0dHR0RGRkZGRkZGRkZGRkZGQUA6MSQaHzo6Ojw8Ojw/Ojo6PDk6PDo6Ojo6Ojo8OjkqGiAaIBog
+ GjjX4SYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/Y5ICAfHx8lMDhG
+ RkdHRkZGRkZGRkZGRkZGRkdHR0dHR0dHR0dHR0dHPzkwIh8fOTo/Ojo6Pzw6Oj86Ojw8PDo6Ojo6Ojo6
+ KSAfHx8fHx841+ElAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX9zog
+ ICAgICQ3Oj9GRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkRAOjAgISY6QEA6QDpAOkA6OjxBOjxB
+ OkA6PD86PCofICAgICAgONjhJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAABf3OiIiISEhJTA6QUZERkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGREA5LyUgJzpBOjpBOkE6
+ QTpBOkE6OkA6Ojo6QTosICAgICAgIDjZ4SQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAFPc6ISEhISElNzk/RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZEPzkvISIp
+ OjxAOkA6QDpAOkA6P0E6P0E6Rzo8KCEhISEhISE52eElAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAX9zoiICIiIiYwOkFGRkdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRkZG
+ REY6PDAlIig/Rj8/Pz8/Pz8/Pz8/PzpAPzo/OikiISEhHyEhONfhJgAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABT3PCUlISEhJjc5RkdHR0dHR0dHR0dHR0dHR0dHR0dH
+ R0dHR0dHR0dHR0E6MCQhKTpAQEBAQEBAQEBAQEBARj9ARjopICAgICElITzY4SUAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/c6KCUlJSUmMDpBREdHR0dHR0dHR0dH
+ R0dHR0dHR0dHR0dHR0dHR0ZHQTowJCUqRj9AQUFBQUFBQT9AQUE/OkY6KSQlJSUlJSI62+EkAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU9zokJCQkJCY3PEdGR0hI
+ SEhISEhISEhISEdHR0dHR0dHR0dHR0dHR0Q/OjAkJSk/RkE/P0BBQEE/RkFAQUZHPyokJCQkJCImOtjh
+ JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf2QCUlJSUl
+ JzE6REdISEhISEhISEhISEhISEhISEhISEhISEhISEhHREY4MSYlLEZAQEZGRkBGQEZAQEY/QUEpJSQk
+ JCQkJT/a4SUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ F/c/JSUlJSUmNzpBRkhISEhISEhISEhISEhISEhISEhISEhISEhISEdHQTowJigpR0dGQUFBR0FGQEZG
+ QEdAKiUlJSUlJSc63eElAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAX9kEnJiYmJic3OkdHSEhISEhISEhISEhISEhISEhISEhISEhISEhIR0ZGOjAmJilJRkdH
+ R0ZBRkFGQURGPyomJiYmJiYlP9zhJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAARf2PycnJycnKTc6REdJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSEhISEhIRkE5
+ MSYoKkZGRkZHR0dHR0dHREYqJiYmJiYmJkHc4SUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/ZHKCgoKCgoNDpHSElJSUlJSUlJSUlJSUlJSUlJSUlJSUlJ
+ SUlJSUhHRzoyJicvRkZGRkZGRkZGRkRBLCgnJycnJyVB4eEkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU9kAoKCgoKCk3OkRHSUlJSUlJSUlJSUlJSUlJ
+ SUlJSUlJSUlJSUlJSEhEOjEnKDBHR0dHR0dHR0ZERikoKCgoKCgoR+HhJAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf2RigqKikpKTQ6RklJSkpKSkpK
+ SUlJSUlJSUlJSUlJSUlJSUlJSUlIR0E6MicpMUhISEhISEhISEYoKSkoKCgoJkTh4SUAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF/ZHKSooKSkqNzpH
+ SEpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSklHRzowKCgvSUlJSUlJSUlELCkpKCkpKSlH5OEmAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX9kYq
+ KSksLCo0OkZJSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSUhGOjcnKTdKSUpMS0pKRikpLykpKios
+ SOHhJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAARf2RyopLyksKTc6R0hKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpJRkY8MSopNEtLS0tKTEcp
+ KSksLCwpKUjh5CUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAF/ZHLCovKSopNzpKSktLS0tLS0tLS0tLS0tLS0tKSkpKSkpKSkpKSkpIRjo3KCk4
+ S0xMTExGKSosLCopKipR59omAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAEY9kopLC8pLCo3OkRJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tL
+ SklHOjQpKTRPTEtLRCkvLykpLyksVufVDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABb2SCoqMSkwLDc/R0dLS0tLS0tLS0tLS0tLS0tLS0tL
+ S0tLS0tLS0tKSUc6NiosN0xMTEcpLywqKi8vKVjs1g4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGPZIMSkxKikqNDpHSUtLTExMS0tLS0tL
+ S0tLS0tLS0tLS0tLS0tLS0pJRzo0Ki80TExGMSkxKTEqKi9Z59UOAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW9kkvKjAqMCkxOkdHSEtJ
+ SUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlLSklHPDQpLypVRzAvKjAqMCkyWufXDAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARr2SC8vLzAw
+ KCw5OkdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0ZJR0Q6MSkxKjoqLy8vMDIyKlXs1A0AAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ BPFYMDAwMDApJzA3P0ZBR0ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkFBOjkpKTAvLy8vLy8vLypZ8dcN
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAEB24IwMDAwMDAkJyo2OTk8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8OTg2MSYnMDAwMDAw
+ MDAxWe7UBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAC4wjIxMTExMS8lJSgpKjAqMCowKjAqMCowKjAqMCowKjAqMCowKjAqLyol
+ GigwMDAwMDAwL1zx1QoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlr0RzAyMjIxMTEsKigoKSkpKSkpKSkpKSkpKSkpKSkpKSkp
+ KSkpKSgoJyUlMDExMTEyMjJZ8ccBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeSnNzQxMTAxMDEwMTAxMDEwMTAxMDEwMTIy
+ MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjAxWfHPAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf/ZqMjcwNzI3MjcyNzI3Mjcy
+ NzI3MjcyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyN1/xxwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuO1YNjc0NDQ0
+ NDQ0NDQ0NDQ0NDQ0NDQ3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzJh8MoBAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH
+ 2+dvNDQyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjQ0NDQ0YvDCBgAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAGx/awVzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NDQ0NGLuxAEAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAiOf0xJeCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKe
+ 8M4OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITV4+Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl
+ 5eXl5eXl5uSwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////4AAAAAAAAAAAD////////8AAAAAAAAAAAAP///////8AAAAAAAAAAAAB///////+
+ AAAAAAAAAAAAAP///////AAAAAAAAAAAAAB///////wAAAAAAAAAAAAAP//////4AAAAAAAAAAAAAD//
+ ////+AAAAAAAAAAAAAAf//////gAAAAAAAAAAAAAH//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA
+ AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAA
+ AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w
+ AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//
+ ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA
+ AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAA
+ AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w
+ AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//
+ ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA
+ AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAA
+ AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w
+ AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//
+ ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAA
+ AAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAA
+ AAAAAAAAD//////wAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////w
+ AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAA//
+ ////8AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAH//////wAAAAAAAAAAAAAD//////8AAAAAAAAAAA
+ AAB///////AAAAAAAAAAAAAA///////wAAAAAAAAAAAAAf//////8AAAAAAAAAAAAAP///////AAAAAA
+ AAAAAAAH///////wAAAAAAAAAAAAD///////8AAAAAAAAAAAAB////////AAAAAAAAAAAAA////////w
+ AAAAAAAAAAAAf///////8AAAAAAAAAAAAP////////AAAAAAAAAAAAH////////wAAAAAAAAAAAD////
+ ////8AAAAAAAAAAAB/////////AAAAAAAAAAAA/////////wAAAAAAAAAAAf////////8AAAAAAAAAAA
+ P/////////AAAAAAAAAAAH/////////wAAAAAAAAAAD/////////8AAAAAAAAAAB//////////AAAAAA
+ AAAAA//////////wAAAAAAAAAAf/////////8AAAAAAAAAAP//////////AAAAAAAAAAH//////////w
+ AAAAAAAAAD//////////8AAAAAAAAAB///////////AAAAAAAAAA///////////wAAAAAAAAAf//////
+ ////8AAAAAAAAAP///////////AAAAAAAAAH///////////wAAAAAAAAD///////////+AAAAAAAAB//
+ //////////gAAAAAAAA////////////8AAAAAAAAf////////////AAAAAAAAP////////////4AAAAA
+ AAH/////////////AAAAAAAD/////////////8AAAAAAB//////////////wAAAAAB//////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////ygAAABAAAAAgAAAAAEAIAAAAAAAAIAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAIAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAA
+ AwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAA
+ AwAAAAMAAAADAAAAAwAAAAMAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAABgAAAB8AAAA8AAAASQAAAEoAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAA
+ SwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAA
+ SwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEoAAABKAAAAQwAAAC4AAAASAAAAAgAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEtJSUmm////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////AAAA
+ dQAAADEAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAFj/////AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/zIyMv//////AAAAPgAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAADv/////AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAAAsAAAAAQAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAA8AAAB3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8RERH/AAAA
+ awAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAj/////wAAAP8AAAD/AAAA/xcXF/8kJCT/KSkp/yoqKv8qKir/Kioq
+ /yoqKv8qKir/Kioq/yoqKv8qKir/Kioq/yoqKv8qKir/Kioq/yoqKv8qKir/Kioq/yoqKv8qKir/Kioq
+ /yoqKv8qKir/Kioq/yoqKv8qKir/Kioq/yoqKv8qKir/Kioq/yoqKv8qKir/Kioq/ygoKP8hISH/AAAA
+ /wAAAP8AAAD/AAAA//7+/v8AAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANP////8AAAD/AAAA/wAAAP8jIyP/Li4u
+ /zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy
+ /zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy
+ /zIyMv8xMTH/LCws/yEhIf8AAAD/AAAA/wAAAP//////AAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADr/////AAAA
+ /wAAAP8AAAD/Jycn/zExMf80NDT/NDQ0/6qqqv+qqqr/qqqq/6qqqv80NDT/NDQ0/6qqqv+qqqr/NDQ0
+ /zQ0NP+qqqr/qqqq/6qqqv+qqqr/qqqq/zQ0NP+qqqr/qqqq/6qqqv+qqqr/NDQ0/6qqqv+qqqr/NDQ0
+ /6qqqv+qqqr/qqqq/6qqqv80NDT/NDQ0/zExMf8nJyf/AAAA/wAAAP8AAAD//////wAAADkAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAEAAAA7/////wAAAP8AAAD/AAAA/ykpKf8yMjL/NTU1/zU1Nf81NTX/NTU1/7e3t/+3t7f/NTU1
+ /zU1Nf+3t7f/t7e3/zU1Nf81NTX/t7e3/7e3t/81NTX/t7e3/7e3t/81NTX/t7e3/7e3t/+3t7f/t7e3
+ /zU1Nf+3t7f/t7e3/zU1Nf+3t7f/t7e3/7e3t/+3t7f/NDQ0/zQ0NP8xMTH/KCgo/wAAAP8AAAD/AAAA
+ //////8AAAA7AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAO/////8AAAD/AAAA/wAAAP8qKir/MzMz/zY2Nv82Njb/NTU1
+ /zU1Nf/FxcX/xcXF/zU1Nf81NTX/xcXF/8XFxf81NTX/NTU1/8XFxf/FxcX/NTU1/8XFxf/FxcX/NTU1
+ /8XFxf/FxcX/xcXF/8XFxf81NTX/xcXF/8XFxf81NTX/xcXF/8XFxf/FxcX/xcXF/zU1Nf81NTX/MjIy
+ /ykpKf8AAAD/AAAA/wAAAP//////AAAAOwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////AAAA/wAAAP8AAAD/Kioq
+ /zMzM/82Njb/NjY2/9PT0//T09P/09PT/9PT0/82Njb/NjY2/9PT0//T09P/NjY2/zY2Nv/T09P/09PT
+ /zY2Nv/T09P/09PT/zY2Nv/T09P/09PT/9PT0//T09P/NjY2/9PT0//T09P/NjY2/9PT0//T09P/09PT
+ /9PT0/82Njb/NjY2/zMzM/8qKir/AAAA/wAAAP8AAAD//////wAAADsAAAABAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7////
+ /wAAAP8AAAD/AAAA/ysrK/80NDT/Nzc3/zc3N//g4OD/4ODg/zc3N/83Nzf/NjY2/zY2Nv/g4OD/4ODg
+ /zY2Nv82Njb/4ODg/+Dg4P82Njb/4ODg/+Dg4P82Njb/4ODg/+Dg4P/g4OD/4ODg/zY2Nv/g4OD/4ODg
+ /zY2Nv/g4OD/4ODg/+Dg4P/g4OD/NjY2/zY2Nv8zMzP/Kioq/wAAAP8AAAD/AAAA//////8AAAA7AAAA
+ AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAABAAAAO/////8AAAD/AAAA/wAAAP8rKyv/NDQ0/zc3N/83Nzf/7e3t/+3t7f/t7e3/7e3t
+ /zc3N//t7e3/7e3t/+3t7f/t7e3/7e3t/+3t7f/t7e3/Nzc3/+3t7f/t7e3/Nzc3/+3t7f/t7e3/7e3t
+ /+3t7f83Nzf/7e3t/+3t7f83Nzf/7e3t/+3t7f/t7e3/7e3t/zc3N/83Nzf/NDQ0/ysrK/8AAAD/AAAA
+ /wAAAP//////AAAAOwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////AAAA/wAAAP8AAAD/LCws/zU1Nf84ODj/ODg4
+ //r6+v/6+vr/+vr6//r6+v84ODj/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/zg4OP/6+vr/+vr6
+ /zg4OP/6+vr/+vr6//r6+v/6+vr/Nzc3//r6+v/6+vr/Nzc3//r6+v/6+vr/+vr6//r6+v83Nzf/Nzc3
+ /zQ0NP8rKyv/AAAA/wAAAP8AAAD//////wAAADsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7/////wAAAP8AAAD/AAAA
+ /ywsLP81NTX/ODg4/01NTf+jo6P/o6Oj/6Ojo/+ZmZn/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/o6Oj
+ /6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/84ODj/o6Oj/6Ojo/+jo6P/o6Oj/zg4OP+fn5//o6Oj
+ /6Ojo/+jo6P/RUVF/zg4OP81NTX/LCws/wAAAP8AAAD/AAAA//////8AAAA7AAAAAQAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA
+ O/////8CAgL/AQEB/wEBAf8sLCz/NjY2/zk5Of9RUVH/qamp/6mpqf+pqan/oKCg/zk5Of85OTn/OTk5
+ /zk5Of85OTn/OTk5/6mpqf+pqan/qamp/6mpqf+pqan/qamp/6mpqf+pqan/OTk5/6mpqf+pqan/qamp
+ /6mpqf84ODj/pqam/6mpqf+pqan/qamp/0ZGRv84ODj/NTU1/ywsLP8BAQH/AQEB/wEBAf//////AAAA
+ OwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAQAAADv/////AwMD/wMDA/8DAwP/LCws/zY2Nv85OTn/UlJS/7CwsP+wsLD/sLCw
+ /6Wlpf85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of+wsLD/sLCw/7CwsP+wsLD/sLCw/7CwsP+wsLD/sLCw
+ /zk5Of+wsLD/sLCw/7CwsP+wsLD/OTk5/6ysrP+wsLD/sLCw/7CwsP9ISEj/OTk5/zY2Nv8sLCz/AgIC
+ /wICAv8CAgL//////wAAADsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7/////wQEBP8EBAT/BAQE/y0tLf83Nzf/Ojo6
+ /1NTU/+3t7f/t7e3/7e3t/+rq6v/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/t7e3/7e3t/+3t7f/t7e3
+ /zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/t7e3/7e3t/+3t7f/t7e3/zo6Ov+ysrL/t7e3/7e3t/+3t7f/SUlJ
+ /zo6Ov83Nzf/LS0t/wMDA/8DAwP/AwMD//////8AAAA7AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAO/////8GBgb/BgYG
+ /wYGBv8uLi7/ODg4/zs7O/9VVVX/vr6+/76+vv++vr7/sbGx/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6
+ /76+vv++vr7/vr6+/76+vv86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/76+vv++vr7/vr6+/76+vv+/v7//vr6+
+ /76+vv++vr7/vr6+/0lJSf86Ojr/Nzc3/y0tLf8FBQX/BQUF/wUFBf//////AAAAOwAAAAEAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AQAAADv/////BwcH/wcHB/8HBwf/Li4u/zg4OP87Ozv/VlZW/8XFxf/FxcX/xcXF/7e3t/87Ozv/Ozs7
+ /zs7O/87Ozv/Ozs7/zs7O//FxcX/xcXF/8XFxf/FxcX/Ozs7/zs7O/87Ozv/Ozs7/zs7O//FxcX/xcXF
+ /8XFxf/FxcX/xcXF/8XFxf/FxcX/xcXF/8XFxf9KSkr/Ozs7/zg4OP8uLi7/BgYG/wYGBv8GBgb/////
+ /wAAADsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAEAAAA7/////wgICP8ICAj/CAgI/y8vL/85OTn/PDw8/1hYWP/MzMz/zMzM
+ /8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP88PDz/zMzM/8zMzP/MzMz/zMzM/zw8PP87Ozv/Ozs7
+ /zs7O/87Ozv/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/SkpK/zs7O/84ODj/Li4u
+ /wcHB/8HBwf/BwcH//////8AAAA7AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAO/////8KCgr/CgoK/woKCv8vLy//OTk5
+ /zw8PP9YWFj/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/PDw8/9LS0v/S0tL/0tLS
+ /9LS0v88PDz/PDw8/zw8PP88PDz/PDw8/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v88PDz/PDw8
+ /zw8PP88PDz/OTk5/y8vL/8JCQn/CQkJ/wkJCf//////AAAAOwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////CwsL
+ /wsLC/8LCwv/MDAw/zo6Ov89PT3/WVlZ/9nZ2f/Z2dn/2dnZ/8vLy/9PT0//2dnZ/9nZ2f/Z2dn/2dnZ
+ /z09Pf/Z2dn/2dnZ/9nZ2f/Z2dn/PT09/z09Pf89PT3/PT09/z09Pf/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ
+ /9nZ2f/Z2dn/09PT/9PT0/9KSkr/PDw8/zk5Of8vLy//CgoK/woKCv8KCgr//////wAAADsAAAABAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAEAAAA7/////wwMDP8MDAz/DAwM/zAwMP86Ojr/PT09/1paWv/g4OD/4ODg/+Dg4P/Nzc3/PT09
+ /+Dg4P/g4OD/4ODg/+Dg4P89PT3/4ODg/+Dg4P/g4OD/4ODg/z09Pf89PT3/PT09/z09Pf89PT3/4ODg
+ /+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/TU1N/z09Pf86Ojr/MDAw/wwMDP8MDAz/CwsL
+ //////8AAAA7AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAO/////8ODg7/Dg4O/w4ODv8wMDD/Ozs7/z4+Pv9cXFz/5+fn
+ /+fn5//n5+f/1NTU/z4+Pv/n5+f/5+fn/+fn5//n5+f/Pj4+/+fn5//n5+f/5+fn/+fn5/8+Pj7/Pj4+
+ /z4+Pv8+Pj7/Pj4+/+fn5//n5+f/5+fn/+fn5/8+Pj7/39/f/+fn5//n5+f/5+fn/05OTv8+Pj7/Ozs7
+ /zAwMP8NDQ3/DQ0N/w0NDf//////AAAAOwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////Dw8P/w8PD/8PDw//MTEx
+ /zw8PP8/Pz//XV1d/+7u7v/u7u7/7u7u/+7u7v/u7u7/7u7u/+7u7v/u7u7/7u7u/z4+Pv/u7u7/7u7u
+ /+7u7v/u7u7/7u7u/+7u7v/u7u7/7u7u/z4+Pv/u7u7/7u7u/+7u7v/u7u7/Pj4+/+bm5v/u7u7/7u7u
+ /+7u7v9OTk7/Pj4+/zs7O/8wMDD/Dg4O/w4ODv8ODg7//////wAAADsAAAABAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7////
+ /xAQEP8QEBD/EBAQ/zExMf88PDz/Pz8//11dXf/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1
+ //X19f8/Pz//9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f8/Pz//9fX1//X19f/19fX/9fX1
+ /z8/P//s7Oz/9fX1//X19f/19fX/UFBQ/z8/P/88PDz/MTEx/xAQEP8QEBD/EBAQ//////8AAAA7AAAA
+ AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAABAAAAO/////8SEhL/EhIS/xISEv8yMjL/PT09/0BAQP9eXl7//Pz8//z8/P/8/Pz//Pz8
+ //z8/P/8/Pz//Pz8//z8/P/8/Pz/QEBA//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz/Pz8/
+ //z8/P/8/Pz//Pz8//z8/P8/Pz//8/Pz//z8/P/8/Pz//Pz8/1BQUP8/Pz//PDw8/zExMf8RERH/ERER
+ /xEREf//////AAAAOwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////ExMT/xMTE/8TExP/MjIy/z09Pf9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /z09Pf8yMjL/EhIS/xISEv8SEhL//////wAAADsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7/////xQUFP8UFBT/FBQU
+ /zMzM/8+Pj7/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP89PT3/MjIy/xQUFP8UFBT/FBQU//////8AAAA7AAAAAQAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA
+ O/////8WFhb/FhYW/xYWFv8zMzP/Pj4+/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/Pj4+/zMzM/8VFRX/FRUV/xUVFf//////AAAA
+ OwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAQAAADv/////FxcX/xcXF/8XFxf/NDQ0/z8/P/9CQkL/QkJC/0JCQv9CQkL/QkJC
+ /0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0FBQf8/Pz//PT09
+ /zw8PP87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zg4OP8uLi7/FhYW
+ /xYWFv8WFhb//////wAAADsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7/////xgYGP8YGBj/GBgY/zQ0NP9AQED/Q0ND
+ /0NDQ/9DQ0P/Q0ND/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC
+ /0BAQP88PDz/NjY2/y8vL/8sLCz/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr
+ /ysrK/8pKSn/ISEh/xgYGP8YGBj/GBgY//////8AAAA6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAO/////8aGhr/Ghoa
+ /xoaGv80NDT/QEBA/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND
+ /0NDQ/9DQ0P/Q0ND/0FBQf88PDz/MTEx/yQkJP8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ
+ /xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ/xkZGf//////AAAANAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AQAAADv/////Gxsb/xsbG/8bGxv/NTU1/0FBQf9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE
+ /0RERP9ERET/RERE/0NDQ/9DQ0P/Q0ND/0JCQv8+Pj7/MjIy/x8fH/8bGxv/GBgY/zY2Nv82Njb/NjY2
+ /zY2Nv82Njb/NjY2/zY2Nv81NTX/NTU1/zU1Nf81NTX/NTU1/xwcHP8aGhr/Ghoa/xoaGv8aGhr/////
+ /wAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAEAAAA7/////xwcHP8cHBz/HBwc/zU1Nf9BQUH/RERE/0RERP9ERET/RERE
+ /0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0RERP9CQkL/Ozs7/ykpKf8cHBz/Nzc3
+ /zg4OP84ODj/ODg4/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/8cHBz/HBwc
+ /xwcHP8cHBz//v7+/wAAADwAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAO/////8eHh7/Hh4e/x4eHv82Njb/QkJC
+ /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/QkJC
+ /zc3N/8ZGRn/HR0d/zo6Ov85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/zk5Of85OTn/OTk5
+ /zk5Of8dHR3/HR0d/x0dHf8dHR3//////wAAAD8AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////Hx8f
+ /x8fH/8fHx//NjY2/0JCQv9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF
+ /0VFRf9FRUX/RUVF/0JCQv81NTX/Hx8f/ykpKf87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7
+ /zs7O/87Ozv/Ozs7/zo6Ov8eHh7/Hh4e/x4eHv8eHh7//v7+/wAAAD4AAAAIAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAEAAAA7/////yAgIP8gICD/ICAg/zc3N/9DQ0P/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG
+ /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9CQkL/NTU1/yAgIP86Ojr/PT09/z09Pf89PT3/PT09
+ /z09Pf89PT3/PT09/z09Pf89PT3/PT09/zw8PP8gICD/ICAg/yAgIP8gICD//v7+/wAAAD4AAAAHAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAO/////8iIiL/IiIi/yIiIv84ODj/RERE/0dHR/9HR0f/RkZG
+ /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/QkJC/zU1Nf8hISH/Pz8/
+ /z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8+Pj7/Pj4+/z4+Pv8hISH/ISEh/yEhIf8hISH/////
+ /wAAAD4AAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////IyMj/yMjI/8jIyP/ODg4
+ /0RERP9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH
+ /0NDQ/81NTX/IyMj/0FBQf9BQUH/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP8iIiL/IiIi
+ /yIiIv8iIiL//////wAAAD8AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7////
+ /yUlJf8lJSX/JSUl/zg4OP9FRUX/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI
+ /0hISP9ISEj/SEhI/0hISP9DQ0P/NTU1/yQkJP9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC
+ /0JCQv8kJCT/JCQk/yQkJP8kJCT//////wAAAD4AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAABAAAAO/////8mJib/JiYm/yYmJv84ODj/RUVF/0hISP9ISEj/SEhI/0hISP9ISEj/SEhI
+ /0hISP9ISEj/SEhI/0hISP9ISEj/SEhI/0hISP9ISEj/RERE/zY2Nv8lJSX/RERE/0RERP9ERET/RERE
+ /0RERP9ERET/RERE/0RERP8lJSX/JSUl/yUlJf8lJSX//////wAAAD4AAAAHAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADv/////Jycn/ycnJ/8nJyf/OTk5/0ZGRv9JSUn/SUlJ
+ /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0VFRf83Nzf/Jycn
+ /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv8nJyf/Jycn/ycnJ/8nJyf//////wAAAD4AAAAHAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7/////ykpKf8pKSn/KSkp
+ /zk5Of9GRkb/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ
+ /0lJSf9FRUX/Nzc3/ygoKP9ISEj/SEhI/0hISP9ISEj/SEhI/0dHR/8oKCj/KCgo/ygoKP8oKCj/////
+ /wAAAD8AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA
+ O/////8qKir/Kioq/yoqKv86Ojr/R0dH/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK
+ /0pKSv9KSkr/SkpK/0pKSv9KSkr/RkZG/zc3N/8pKSn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf8pKSn/KSkp
+ /ykpKf8pKSn//////wAAAD4AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAQAAADv/////Kysr/ysrK/8rKyv/Ojo6/0dHR/9KSkr/SkpK/0pKSv9KSkr/SkpK
+ /0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0ZGRv83Nzf/Kysr/0tLS/9LS0v/S0tL
+ /0tLS/8rKyv/Kysr/ysrK/8rKyv//////wAAAD0AAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA6/////ywsLP8sLCz/LCws/zo6Ov9ISEj/S0tL
+ /0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9HR0f/ODg4
+ /ywsLP9NTU3/TU1N/0tLS/8sLCz/LCws/ywsLP8sLCz//////wAAADoAAAAGAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOf////8uLi7/Li4u
+ /y4uLv84ODj/R0dH/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL
+ /0pKSv9KSkr/RkZG/zg4OP8tLS3/SUlJ/05OTv8tLS3/LS0t/y0tLf8tLS3//////wAAADkAAAAHAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAADD/////Ly8v/y8vL/8vLy//Li4u/z4+Pv9FRUX/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG
+ /0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0JCQv80NDT/Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//////
+ /wAAADgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAd/////zAwMP8wMDD/MDAw/x0dHf8rKyv/MjIy/zQ0NP80NDT/NDQ0
+ /zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP8xMTH/JiYm/zAwMP8wMDD/MDAw
+ /zAwMP8wMDD//////wAAADcAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsXFxbkyMjL/MjIy/zIyMv8yMjL/MjIy
+ /zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8xMTH/MTEx
+ /zExMf8xMTH/MTEx/zExMf8xMTH//////wAAADYAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAn////
+ /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz
+ /zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP//////wAAADUAAAAFAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAABQAAADT/////NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0
+ /zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT//////wAAADUAAAAGAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAIrS0tJ3/////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /wAAAC8AAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAA
+ EgAAABcAAAAXAAAAFwAAABcAAAAXAAAAFwAAABcAAAAXAAAAFwAAABcAAAAXAAAAFwAAABcAAAAXAAAA
+ FwAAABcAAAAXAAAAFgAAAA4AAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////////////////////////////////////////////
+ ///4AAAAAD////AAAAAAD///4AAAAAAH///gAAAAAAf//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AA
+ AAAAA///wAAAAAAD///AAAAAAAP//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AAAAAAA///wAAAAAAD
+ ///AAAAAAAP//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AA
+ AAAAA///wAAAAAAD///AAAAAAAP//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AAAAAAA///wAAAAAAD
+ ///AAAAAAAP//8AAAAAAA///wAAAAAAD///AAAAAAAP//8AAAAAAB///wAAAAAAP///AAAAAAB///8AA
+ AAAAP///wAAAAAB////AAAAAAP///8AAAAAB////wAAAAAP////AAAAAB////8AAAAAP////wAAAAB//
+ ///AAAAAP////8AAAAB/////wAAAAP/////AAAAB/////8AAAAP/////wAAAB//////gAAAP//////AA
+ AB//////+AAAP/////////////////////////////////////////////////////////8oAAAAQAAA
+ AIAAAAABAAgAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wEBAf8CAgL/AwMD/wQEBP8FBQX/BgYG
+ /wcHB/8ICAj/CQkJ/woKCv8LCwv/DAwM/w0NDf8ODg7/Dw8P/xAQEP8RERH/EhIS/xMTE/8UFBT/FRUV
+ /xYWFv8XFxf/GBgY/xkZGf8aGhr/Gxsb/xwcHP8dHR3/Hh4e/x8fH/8gICD/ISEh/yIiIv8jIyP/JCQk
+ /yUlJf8mJib/Jycn/ygoKP8pKSn/Kioq/ysrK/8sLCz/LS0t/y4uLv8vLy//MDAw/zExMf8yMjL/MzMz
+ /zQ0NP81NTX/NjY2/zc3N/84ODj/OTk5/zo6Ov87Ozv/PDw8/z09Pf8+Pj7/Pz8//0BAQP9BQUH/QkJC
+ /0NDQ/9ERET/RUVF/0ZGRv9HR0f/SEhI/0lJSf9KSkr/S0tL/01NTf9PT0//UFBQ/1FRUf9TU1P/VVVV
+ /1ZWVv9XV1f/WFhY/1lZWf9bW1v/XV1d/15eXv9fX1//YGBg/2NjY/9kZGT/ZWVl/2ZmZv9nZ2f/aGho
+ /2lpaf9qamr/a2tr/2xsbP9tbW3/bm5u/29vb/9wcHD/cXFx/3Nzc/90dHT/dXV1/3Z2dv93d3f/eHh4
+ /3l5ef96enr/e3t7/3x8fP99fX3/fn5+/39/f/+AgID/gYGB/4KCgv+Dg4P/hISE/4WFhf+Ghob/h4eH
+ /4iIiP+JiYn/ioqK/4yMjP+Ojo7/j4+P/5CQkP+RkZH/kpKS/5OTk/+UlJT/lZWV/5aWlv+Xl5f/mJiY
+ /5mZmf+ampr/m5ub/5ycnP+dnZ3/np6e/5+fn/+goKD/oaGh/6Kiov+jo6P/pKSk/6Wlpf+mpqb/p6en
+ /6ioqP+pqan/qqqq/62trf+urq7/r6+v/7CwsP+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/vb29
+ /76+vv+/v7//wMDA/8LCwv/Dw8P/xMTE/8XFxf/Gxsb/x8fH/8rKyv/Ly8v/zMzM/83Nzf/Ozs7/z8/P
+ /9DQ0P/R0dH/0tLS/9PT0//U1NT/1tbW/9fX1//Y2Nj/2dnZ/9ra2v/c3Nz/3d3d/97e3v/f39//4ODg
+ /+Hh4f/j4+P/5eXl/+bm5v/n5+f/6Ojo/+np6f/r6+v/7e3t/+7u7v/x8fH/9PT0//X19f8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ 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
+ AAAAA///wAAAAAAH///AAAAAAA///8AAAAAAH///wAAAAAA////AAAAAAH///8AAAAAA////wAAAAAH/
+ ///AAAAAA////8AAAAAH////wAAAAA/////AAAAAH////8AAAAA/////wAAAAH/////AAAAA/////8AA
+ AAH/////wAAAA//////AAAAH/////+AAAA//////8AAAH//////4AAA/////////////////////////
+ /////////////////////////////////ygAAAAwAAAAYAAAAAEAIAAAAAAAAEgAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAA
+ AQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAF4AAABhAAAAYQAAAGEAAABhAAAAYQAAAGEAAABhAAAA
+ YQAAAGEAAABhAAAAYQAAAGEAAABhAAAAYQAAAGEAAABhAAAAYQAAAGEAAABhAAAAYQAAAGEAAABhAAAA
+ YQAAAGEAAABXAAAALgAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJeXl6tOzs7/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAHQAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAB5AAAACQAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPwAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9ubm7/AAAA
+ NgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ bQAAAP8AAAD/AAAA/ykpKf8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v
+ /y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y4uLv8mJib/AAAA
+ /wAAAP8AAAD/AAAAaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAD3Nzc3AAAAP8AAAD/Hh4e/zAwMP80NDT/p6en/6enp/+np6f/p6en/zQ0NP+np6f/p6en
+ /zQ0NP+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/NDQ0/6enp/+np6f/p6en/6enp/+np6f/p6en
+ /zQ0NP8vLy//HR0d/wAAAP8AAAD/3d3d3QAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AAAAP8AAAD/ISEh/zIyMv81NTX/NTU1/zU1Nf+6urr/urq6
+ /zU1Nf+6urr/urq6/zU1Nf+6urr/urq6/7q6uv+6urr/urq6/7q6uv+6urr/urq6/7q6uv+6urr/urq6
+ /7q6uv+6urr/urq6/zU1Nf8yMjL/ISEh/wAAAP8AAAD/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AAAAP8AAAD/ISEh/zMzM/82Njb/zMzM
+ /8zMzP/MzMz/zMzM/zY2Nv/MzMz/zMzM/zY2Nv/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM
+ /8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/zU1Nf8yMjL/ISEh/wAAAP8AAAD/3Nzc3gAAAAQAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AAAAP8AAAD/IiIi
+ /zQ0NP83Nzf/3t7e/97e3v82Njb/NjY2/zY2Nv/e3t7/3t7e/zY2Nv/e3t7/3t7e/97e3v/e3t7/3t7e
+ /97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/zY2Nv8zMzP/ISEh/wAAAP8AAAD/3Nzc
+ 3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc
+ 3AAAAP8AAAD/IiIi/zQ0NP83Nzf/7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v
+ /+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/zc3N/80NDT/IiIi
+ /wAAAP8AAAD/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAE3Nzc3AAAAP8AAAD/IyMj/zU1Nf84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4
+ /zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4
+ /zg4OP81NTX/IyMj/wAAAP8AAAD/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AEBAf8BAQH/IyMj/zY2Nv85OTn/qKio/6ioqP+oqKj/OTk5
+ /zk5Of85OTn/OTk5/zk5Of+oqKj/qKio/6ioqP+oqKj/qKio/6ioqP84ODj/qKio/6ioqP+oqKj/ODg4
+ /6ioqP+oqKj/qKio/zg4OP81NTX/IyMj/wEBAf8AAAD/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AMDA/8DAwP/JCQk/zc3N/86Ojr/sbGx
+ /7Gxsf+xsbH/OTk5/zk5Of85OTn/OTk5/zk5Of+xsbH/sbGx/7Gxsf+xsbH/sbGx/7Gxsf85OTn/sbGx
+ /7Gxsf+xsbH/OTk5/7Gxsf+xsbH/sbGx/zk5Of82Njb/IyMj/wICAv8CAgL/3Nzc3gAAAAQAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AUFBf8FBQX/JCQk
+ /zc3N/86Ojr/urq6/7q6uv+6urr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov+6urr/urq6/7q6uv86Ojr/Ojo6
+ /zo6Ov86Ojr/urq6/7q6uv+6urr/Ojo6/7q6uv+6urr/urq6/zo6Ov83Nzf/JCQk/wQEBP8EBAT/3Nzc
+ 3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc
+ 3AcHB/8HBwf/JSUl/zg4OP87Ozv/xMTE/8TExP/ExMT/Ozs7/zs7O/87Ozv/Ozs7/zs7O//ExMT/xMTE
+ /8TExP87Ozv/Ozs7/zs7O/87Ozv/xMTE/8TExP/ExMT/xMTE/8TExP/ExMT/xMTE/zs7O/84ODj/JSUl
+ /wYGBv8GBgb/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAE3Nzc3AgICP8ICAj/JSUl/zg4OP88PDz/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N
+ /zw8PP/Nzc3/zc3N/83Nzf88PDz/PDw8/zw8PP88PDz/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N
+ /zs7O/84ODj/JSUl/wgICP8ICAj/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AoKCv8KCgr/JiYm/zk5Of89PT3/1tbW/9bW1v/W1tb/1tbW
+ /9bW1v/W1tb/1tbW/zw8PP/W1tb/1tbW/9bW1v88PDz/PDw8/zw8PP88PDz/1tbW/9bW1v/W1tb/1tbW
+ /9bW1v88PDz/PDw8/zw8PP84ODj/JSUl/woKCv8KCgr/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3AwMDP8MDAz/JiYm/zk5Of89PT3/39/f
+ /9/f3//f39//PT09/9/f3//f39//39/f/z09Pf/f39//39/f/9/f3/89PT3/PT09/z09Pf89PT3/39/f
+ /9/f3//f39//39/f/9/f3//f39//39/f/z09Pf85OTn/JiYm/wsLC/8LCwv/3Nzc3gAAAAQAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3A4ODv8ODg7/JiYm
+ /zo6Ov8+Pj7/6Ojo/+jo6P/o6Oj/Pj4+/+jo6P/o6Oj/6Ojo/z4+Pv/o6Oj/6Ojo/+jo6P8+Pj7/Pj4+
+ /z4+Pv8+Pj7/6Ojo/+jo6P/o6Oj/Pj4+/+jo6P/o6Oj/6Ojo/z4+Pv86Ojr/JiYm/w0NDf8NDQ3/3Nzc
+ 3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc
+ 3BAQEP8QEBD/Jycn/zs7O/8/Pz//8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy/z8/P//y8vL/8vLy
+ //Ly8v/y8vL/8vLy//Ly8v8/Pz//8vLy//Ly8v/y8vL/Pz8///Ly8v/y8vL/8vLy/z4+Pv86Ojr/JiYm
+ /w8PD/8PDw//3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAE3Nzc3BISEv8RERH/KCgo/zw8PP9AQED/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7
+ /z8/P//7+/v/+/v7//v7+//7+/v/+/v7//v7+/8/Pz//+/v7//v7+//7+/v/Pz8///v7+//7+/v/+/v7
+ /z8/P/87Ozv/Jycn/xEREf8RERH/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3BMTE/8TExP/KCgo/zw8PP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /0BAQP9AQED/QEBA/0BAQP88PDz/KCgo/xISEv8SEhL/3Nzc3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3BUVFf8VFRX/KCgo/z09Pf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QUFB/0FBQf89PT3/KCgo/xQUFP8UFBT/3Nzc3gAAAAQAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3BcXF/8XFxf/KSkp
+ /z4+Pv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QUFB
+ /z8/P/89PT3/PT09/z09Pf89PT3/PT09/zw8PP88PDz/PDw8/zw8PP85OTn/JSUl/xYWFv8WFhb/3Nzc
+ 3gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc
+ 3BkZGf8ZGRn/Kioq/z8/P/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0JCQv9CQkL/QkJC
+ /0JCQv8/Pz//Nzc3/y0tLf8oKCj/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8kJCT/GBgY
+ /xgYGP8YGBj/3d3d3QAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAE3Nzc3BoaGv8aGhr/Kioq/z8/P/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND
+ /0NDQ/9DQ0P/Q0ND/0FBQf81NTX/ICAg/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa
+ /xoaGv8aGhr/Ghoa/xoaGv8aGhr/wcHBuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3BwcHP8cHBz/Kioq/0BAQP9ERET/RERE/0RERP9ERET/RERE
+ /0RERP9ERET/RERE/0RERP9ERET/RERE/z09Pf8nJyf/HBwc/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3
+ /zc3N/83Nzf/Nzc3/zc3N/8cHBz/HBwc/xwcHP//////AAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3B4eHv8eHh7/Kysr/0FBQf9FRUX/RUVF
+ /0VFRf9FRUX/RUVF/0VFRf9FRUX/RUVF/0VFRf9FRUX/RERE/zk5Of8dHR3/Ojo6/zo6Ov86Ojr/Ojo6
+ /zk5Of85OTn/OTk5/zk5Of85OTn/OTk5/x0dHf8dHR3/HR0d//7+/v8AAAAlAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3CAgIP8gICD/LCws
+ /0JCQv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RUVF/zc3N/8fHx//PDw8
+ /zw8PP88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP87Ozv/Hx8f/x8fH/8fHx///v7+/wAAACUAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc
+ 3CEhIf8hISH/LCws/0JCQv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RkZG/0ZGRv9GRkb/RUVF
+ /zc3N/8hISH/Pz8//z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv8hISH/ISEh/yEhIf/+/v7/AAAA
+ JQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAE3Nzc3CMjI/8jIyP/LCws/0NDQ/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH
+ /0dHR/9HR0f/RkZG/zg4OP8jIyP/QUFB/0FBQf9BQUH/QUFB/0FBQf9BQUH/QEBA/yMjI/8jIyP/IyMj
+ //////8AAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3CUlJf8lJSX/LS0t/0RERP9ISEj/SEhI/0hISP9ISEj/SEhI
+ /0hISP9ISEj/SEhI/0hISP9ISEj/R0dH/zk5Of8lJSX/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/JSUl
+ /yUlJf8lJSX//////wAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3CcnJ/8nJyf/LS0t/0VFRf9JSUn/SUlJ
+ /0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/R0dH/zk5Of8nJyf/RkZG/0ZGRv9GRkb/RUVF
+ /0VFRf8mJib/JiYm/yYmJv//////AAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc3CkpKf8pKSn/Li4u
+ /0VFRf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SUlJ/0lJSf9JSUn/SEhI/zo6Ov8oKCj/SEhI
+ /0hISP9ISEj/SEhI/ygoKP8oKCj/KCgo//////8AAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3Nzc
+ 3CoqKv8qKir/Li4u/0ZGRv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SkpK/0pKSv9KSkr/SUlJ
+ /zo6Ov8qKir/SkpK/0pKSv9KSkr/Kioq/yoqKv8qKir//////wAAACQAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAE3Nzc3CwsLP8sLCz/Li4u/0dHR/9LS0v/S0tL/0tLS/9LS0v/S0tL/0tLS/9LS0v/S0tL
+ /0tLS/9LS0v/SkpK/zs7O/8sLCz/TU1N/01NTf8sLCz/LCws/ywsLP//////AAAAIgAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAC3Nzc3C4uLv8uLi7/Kioq/0VFRf9LS0v/S0tL/0tLS/9LS0v/S0tL
+ /0tLS/9LS0v/S0tL/0tLS/9LS0v/SkpK/zs7O/8uLi7/T09P/y4uLv8uLi7/Li4u//////8AAAAhAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZTAwMP8wMDD/IiIi/zQ0NP89PT3/Pj4+
+ /z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/PT09/zExMf8wMDD/MDAw/zAwMP8wMDD/////
+ /wAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyMv8yMjL/MjIy
+ /zIyMv8pKSn/KSkp/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8xMTH/MTEx
+ /zExMf//////AAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ CP39/f4zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz
+ /zMzM/8zMzP/MzMz//////8AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAA7/////TExM/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1
+ /zU1Nf81NTX/NTU1/zU1Nf81NTX//////wAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAFQAAACMAAAAkAAAAJAAAACQAAAAkAAAA
+ JAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAiAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP///////wAA////
+ ////AAD///////8AAP+AAAAD/wAA/wAAAAH/AAD/AAAAAP8AAP8AAAAA/wAA/gAAAAB/AAD+AAAAAH8A
+ AP4AAAAAfwAA/gAAAAB/AAD+AAAAAH8AAP4AAAAAfwAA/gAAAAB/AAD+AAAAAH8AAP4AAAAAfwAA/gAA
+ AAB/AAD+AAAAAH8AAP4AAAAAfwAA/gAAAAB/AAD+AAAAAH8AAP4AAAAAfwAA/gAAAAB/AAD+AAAAAH8A
+ AP4AAAAAfwAA/gAAAAB/AAD+AAAAAH8AAP4AAAAAfwAA/gAAAAD/AAD+AAAAAf8AAP4AAAAD/wAA/gAA
+ AAf/AAD+AAAAD/8AAP4AAAAf/wAA/gAAAD//AAD+AAAAf/8AAP4AAAD//wAA/gAAAf//AAD+AAAD//8A
+ AP8AAAf//wAA/wAAD///AAD/AAAf//8AAP+AAD///wAA////////AAD///////8AAP///////wAA////
+ ////AAAoAAAAMAAAAGAAAAABAAgAAAAAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wEBAf8CAgL/AwMD
+ /wQEBP8FBQX/BgYG/wcHB/8ICAj/CQkJ/woKCv8LCwv/DAwM/w0NDf8ODg7/Dw8P/xAQEP8RERH/EhIS
+ /xMTE/8UFBT/FRUV/xYWFv8XFxf/GBgY/xkZGf8aGhr/Gxsb/xwcHP8dHR3/Hh4e/x8fH/8gICD/ISEh
+ /yIiIv8jIyP/JCQk/yUlJf8mJib/Jycn/ygoKP8pKSn/Kioq/ysrK/8sLCz/LS0t/y4uLv8vLy//MDAw
+ /zExMf8yMjL/MzMz/zQ0NP81NTX/NjY2/zc3N/84ODj/OTk5/zo6Ov87Ozv/PDw8/z09Pf8+Pj7/Pz8/
+ /0BAQP9BQUH/QkJC/0NDQ/9ERET/RUVF/0ZGRv9HR0f/SEhI/0lJSf9KSkr/S0tL/0xMTP9NTU3/Tk5O
+ /09PT/9RUVH/U1NT/1RUVP9VVVX/VlZW/1dXV/9aWlr/XFxc/11dXf9eXl7/X19f/2FhYf9iYmL/Y2Nj
+ /2VlZf9nZ2f/aGho/2lpaf9sbGz/bW1t/25ubv9zc3P/dnZ2/3d3d/95eXn/enp6/3t7e/98fHz/fX19
+ /35+fv9/f3//gYGB/4iIiP+JiYn/kpKS/5WVlf+Wlpb/l5eX/5iYmP+ZmZn/mpqa/5ubm/+cnJz/nZ2d
+ /56env+fn5//oKCg/6Ghof+ioqL/pKSk/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6urq/+srKz/ra2t
+ /6+vr/+xsbH/srKy/7S0tP+1tbX/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/v7+//8DAwP/BwcH/wsLC
+ /8PDw//ExMT/xcXF/8bGxv/Hx8f/yMjI/8nJyf/Kysr/zMzM/83Nzf/Ozs7/z8/P/9LS0v/U1NT/1dXV
+ /9bW1v/Y2Nj/2tra/9vb2//e3t7/39/f/+Dg4P/h4eH/4uLi/+Pj4//k5OT/5+fn/+jo6P/v7+//8fHx
+ //Ly8v8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ 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
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAP8AAAD/Ly8v/zU1Nf81NTX/vr6+/zU1Nf++vr7/NTU1
+ /76+vv9tbW3/sLCw/76+vv++vr7/i4uL/6urq/++vr7/vr6+/zU1Nf8vLy//AAAA/wAAAP8AAAARAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAA/wAAAP8wMDD/NjY2/9nZ2f+NjY3/NjY2
+ /9nZ2f82Njb/2dnZ/3R0dP/IyMj/2dnZ/9nZ2f+Xl5f/wMDA/9nZ2f/Z2dn/NjY2/zAwMP8AAAD/AAAA
+ /wAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAD/AAAA/zExMf83Nzf/9PT0
+ //T09P/v7+//9PT0//T09P/09PT/enp6/+Hh4f/09PT/9PT0/6Ojo//W1tb/9PT0//T09P83Nzf/MDAw
+ /wAAAP8AAAD/AAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQEBAf8BAQH/MjIy
+ /zk5Of+mpqb/pqam/zg4OP84ODj/ODg4/6ampv+mpqb/pqam/6ampv85OTn/pqam/6Wlpf+mpqb/pqam
+ /zg4OP8xMTH/AAAA/wAAAP8AAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAwMD
+ /wMDA/8zMzP/Ojo6/7Ozs/+zs7P/Ojo6/zo6Ov86Ojr/s7Oz/7Ozs/+ysrL/srKy/zo6Ov+zs7P/s7Oz
+ /7Ozs/+zs7P/OTk5/zIyMv8DAwP/AwMD/wAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAABEGBgb/BgYG/zQ0NP87Ozv/wcHB/8HBwf87Ozv/Ozs7/zs7O//BwcH/wcHB/zs7O/87Ozv/PDw8
+ /8HBwf/BwcH/wcHB/8HBwf86Ojr/MzMz/wYGBv8FBQX/AAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAEQkJCf8JCQn/NTU1/zw8PP/Pz8//z8/P/8/Pz//Pz8//Pz8//8/Pz//Pz8//PDw8
+ /zw8PP89PT3/z8/P/8/Pz//Pz8//z8/P/zw8PP81NTX/CAgI/wgICP8AAAARAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAARCwsL/wsLC/82Njb/PT09/93d3f/d3d3/3Nzc/93d3f9AQED/3d3d
+ /93d3f89PT3/PT09/z4+Pv/d3d3/3d3d/93d3f/d3d3/PT09/zY2Nv8LCwv/CwsL/wAAABEAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEODg7/Dg4O/zc3N/8+Pj7/6urq/+rq6v/p6en/6urq
+ /0FBQf/q6ur/6urq/0NDQ/9DQ0P/Pz8//+rq6v/o6Oj/6urq/+rq6v8+Pj7/Nzc3/w4ODv8ODg7/AAAA
+ EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEREREf8RERH/ODg4/z8/P//4+Pj/+Pj4
+ //j4+P/4+Pj/QkJC//j4+P/4+Pj/+Pj4//j4+P9AQED/+Pj4//b29v/4+Pj/+Pj4/z8/P/84ODj/EBAQ
+ /xAQEP8AAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARFBQU/xQUFP85OTn/QUFB
+ /0FBQf9BQUH/QUFB/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA
+ /zk5Of8TExP/ExMT/wAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEWFhb/FhYW
+ /zo6Ov9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9BQUH/QUFB/0FBQf8/Pz//Pj4+/z4+Pv8+Pj7/Pj4+
+ /z4+Pv8+Pj7/Nzc3/xYWFv8WFhb/AAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ ERkZGf8ZGRn/Ozs7/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/PDw8/ykpKf8gICD/Hx8f
+ /x8fH/8fHx//Hx8f/x8fH/8bGxv/GBgY/xgYGP8AAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAARHBwc/xwcHP88PDz/RERE/0RERP9ERET/RERE/0RERP9ERET/RERE/0FBQf8kJCT/NDQ0
+ /zc3N/82Njb/NjY2/zY2Nv82Njb/NjY2/xsbG/8bGxv//v7+/wAAAAIAAAAAAAAAAAAAAAAAAAAAAAAA
+ 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
+ /yAgIP8iIiL/IyMj/yQkJP8lJSX/JiYm/ycnJ/8oKCj/KSkp/yoqKv8rKyv/LCws/y0tLf8uLi7/Ly8v
+ /zAwMP8xMTH/MjIy/zMzM/80NDT/NTU1/zY2Nv83Nzf/ODg4/zk5Of86Ojr/Ozs7/zw8PP89PT3/Pj4+
+ /z8/P/9AQED/QUFB/0JCQv9DQ0P/RERE/0VFRf9GRkb/R0dH/0hISP9JSUn/SkpK/0tLS/9MTEz/TU1N
+ /05OTv9PT0//UFBQ/1FRUf9SUlL/U1NT/1RUVP9VVVX/VlZW/1dXV/9YWFj/WVlZ/1paWv9bW1v/XV1d
+ /15eXv9fX1//YGBg/2FhYf9iYmL/Y2Nj/2VlZf9mZmb/Z2dn/2lpaf9qamr/bGxs/3Jycv95eXn/e3t7
+ /3x8fP9+fn7/f39//4CAgP+BgYH/hYWF/4aGhv+IiIj/jIyM/42Njf+Ojo7/j4+P/5CQkP+RkZH/k5OT
+ /5WVlf+ampr/m5ub/5ycnP+enp7/oaGh/6ampv+np6f/qKio/6mpqf+qqqr/q6ur/7CwsP+zs7P/tLS0
+ /7a2tv+7u7v/vLy8/729vf++vr7/v7+//8HBwf/CwsL/w8PD/8fHx//IyMj/ysrK/87Ozv/Pz8//09PT
+ /9TU1P/V1dX/19fX/9zc3P/d3d3/4eHh/+Pj4//q6ur/6+vr/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ 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
+ APAD/wDwB/8A////AP///wAoAAAAGAAAADAAAAABAAgAAAAAAIAEAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ /wICAv8FBQX/BgYG/wkJCf8MDAz/DQ0N/w8PD/8QEBD/ERER/xMTE/8UFBT/FxcX/xgYGP8bGxv/HBwc
+ /x8fH/8gICD/IiIi/yMjI/8kJCT/JSUl/yYmJv8nJyf/KCgo/ykpKf8qKir/Kysr/ywsLP8tLS3/Li4u
+ /y8vL/8wMDD/MTEx/zMzM/80NDT/NTU1/zY2Nv83Nzf/ODg4/zk5Of86Ojr/Ozs7/z09Pf8+Pj7/Pz8/
+ /0BAQP9BQUH/QkJC/0NDQ/9ERET/RUVF/0dHR/9ISEj/SkpK/0tLS/9NTU3/Tk5O/09PT/9QUFD/UlJS
+ /1VVVf9aWlr/W1tb/19fX/9hYWH/aWlp/2pqav9sbGz/bm5u/3BwcP9xcXH/c3Nz/3R0dP91dXX/eXl5
+ /3x8fP+AgID/goKC/4SEhP+FhYX/hoaG/4uLi/+MjIz/kZGR/5SUlP+Wlpb/mJiY/5qamv+cnJz/oaGh
+ /6Kiov+jo6P/pqam/6urq/+srKz/ra2t/6+vr/+xsbH/s7Oz/7W1tf+/v7//y8vL/9HR0f/j4+P/5OTk
+ /+bm5v8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAMz4+Pj4+Pj4+PT4+PiUAAAAAAAAAAQFBHxMTExQU
+ EhQVERMTEyVDAAAAAAAAAFEPCBERERARDxIQERIREAUQTwAAAAABAFkAFThQQFJBVlJWUFJXQRYAWQAA
+ AAAAAFkBF0ZaPmFJXmJhYmFeShcAWQEAAAABAFgAGEVeTV5WWVthVVhkRBkAWQAAAAAAAFkCGkJgMyhJ
+ X1pLYUlgQxkBWQABAAABAFkCHEllPDVNZSg0ZV1lSRkEWQAAAAAAAFkFHE1nZmdWZyw1Z2ddPxkGWQAA
+ AAABAFkHGk9pWGlaaDo9aWNpURoGWQEAAAAAAFkLIVFqampcampbalVqTxkIWQEAAAAAAFkLIS0vLy8v
+ Ly8sLi4sLSUMWQAAAAAAAFoMIzMwMDAwMCwlISElIRcMWQAAAAAAAFoNIzIyMjIzMBkZHxkcHA4nWgAA
+ AAAAAFoRJzMzMzMzLBkrKCgoGihUAAAAAAAAAFkSJjQ0NDQ0LCAvLygaLlQAAAAAAAAAAFoXKDU1NTU1
+ LiUyMxozVAAAAAAAAAABAFoaKTY2NjY2Lyc1ITVWAAAAAAAAAAAAAFwfKTc3Nzc2LiglOFUAAAAAAAAA
+ AAAAAFowISMjJSUlJRo5VgAAAAAAAAAAAAAAAABRPjs7Ozo5OUBWAAAAAAAAAAAAAAAAAAAATVZWVlZW
+ Vk8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A8AAPAPAADwDwAA8A8AAP
+ APAADwDwAA8A8AAPAPAADwDwAA8A8AAPAPAADwDwAA8A8AAPAPAAHwDwAD8A8AB/APAA/wDwAf8A8AP/
+ APAH/wD///8A////ACgAAAAQAAAAIAAAAAEAIAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAOzs7/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAbQAAAP8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/wAAAP8AAABpAAAA
+ AAAAAAAAAAAAAAAAANzc3N0hISH/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP8hISH/3Nzc
+ 3QAAAAAAAAAAAAAAAAAAAADc3NzdIyMj/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/IyMj
+ /9zc3N0AAAAAAAAAAAAAAAAAAAAA3Nzc3SQkJP+6urr/Ojo6/zo6Ov+6urr/Ojo6/7q6uv86Ojr/urq6
+ /yQkJP/c3NzdAAAAAAAAAAAAAAAAAAAAANzc3N0mJib/1tbW/9bW1v/W1tb/1tbW/zw8PP/W1tb/1tbW
+ /zw8PP8lJSX/3Nzc3QAAAAAAAAAAAAAAAAAAAADc3NzdJycn//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy
+ /z8/P//y8vL/JiYm/9zc3N0AAAAAAAAAAAAAAAAAAAAA3Nzc3SgoKP9BQUH/QUFB/0FBQf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/ygoKP/c3NzdAAAAAAAAAAAAAAAAAAAAANzc3N0qKir/Q0ND/0NDQ/9DQ0P/Q0ND
+ /yAgIP8aGhr/Ghoa/xoaGv8aGhr/wMDAvAAAAAAAAAAAAAAAAAAAAADc3NzdLCws/0ZGRv9GRkb/RkZG
+ /0VFRf88PDz/PDw8/zw8PP8fHx///v7+/wAAAAAAAAAAAAAAAAAAAAAAAAAA3Nzc3S0tLf9ISEj/SEhI
+ /0hISP9HR0f/Q0ND/0NDQ/8lJSX//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzc3N0uLi7/SkpK
+ /0pKSv9KSkr/SUlJ/0pKSv8qKir//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlIiIi
+ /z4+Pv8+Pj7/Pj4+/z09Pf8wMDD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AExMTP81NTX/NTU1/zU1Nf81NTX//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8A
+ AOAHAADgBwAAwAMAAMADAADAAwAAwAMAAMADAADAAwAAwAMAAMAHAADADwAAwB8AAOA/AADgfwAA//8A
+ ACgAAAAQAAAAIAAAAAEACAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAANDQ3/Dw8P/xoaGv8bGxv/HBwc
+ /x4eHv8hISH/JCQk/yUlJf8nJyf/KCgo/yoqKv8rKyv/LS0t/y8vL/8xMTH/MjIy/zU1Nf82Njb/ODg4
+ /zk5Of87Ozv/PDw8/z09Pf8+Pj7/Pz8//0BAQP9BQUH/QkJC/0NDQ/9ERET/RkZG/0hISP9KSkr/W1tb
+ /3BwcP9xcXH/cnJy/3x8fP9/f3//goKC/4ODg/+IiIj/iYmJ/5aWlv+YmJj/mZmZ/5ubm/+ioqL/o6Oj
+ /6Wlpf+mpqb/qKio/6mpqf+qqqr/ra2t/7CwsP+4uLj/urq6/8HBwf/Q0ND/1dXV/9jY2P/n5+f/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAA
+ AAAAIxIODQwNCw0MDhkjAAAAACEAFBURHx8WGxMAHwAAAAASAiMkKDM2MzUpAhsAAAAAGwMpJyYzNSws
+ KAISAAAAABQDKyUbOSItMyoEHgAAAAAgBy87Nz0WNzwmBRYAAAAAGAczPjo/Ojo4MwcgAAAAACEJGRsY
+ GRkYGRsKHwAAAAAfCR8aHx8NCwwLAiIAAAAAIg4gHx8aDxUYCyIiAAAAACEPICAfHxIfDiIlAAAAAAAi
+ ESEhIR4VFCIiAAAAAAAAIg4WGBUUESMiAAAAAAAAACwiISIhISMhAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AP//AADgBwAA4AcAAMADAADAAwAAwAMAAMADAADAAwAAwAMAAMADAADABwAAwA8AAMAfAADgPwAA4H8A
+ AP//AAA=
+
+
+
\ No newline at end of file
diff --git a/PCK-Studio/Forms/Editor/Animation.cs b/PCK-Studio/Forms/Editor/Animation.cs
new file mode 100644
index 00000000..66f25134
--- /dev/null
+++ b/PCK-Studio/Forms/Editor/Animation.cs
@@ -0,0 +1,146 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using PckStudio.Extensions;
+using System.Text;
+
+
+// TODO: change namespace
+namespace PckStudio.Forms.Editor
+{
+ sealed class Animation
+ {
+ public const int MinimumFrameTime = 1;
+
+ public int FrameCount => frames.Count;
+
+ public int TextureCount => frameTextures.Count;
+
+ public Frame this[int frameIndex] => frames[frameIndex];
+
+ // TODO: implement this
+ public bool Interpolate { get; set; } = false;
+
+ private readonly List frameTextures;
+
+ private readonly List frames = new List();
+
+
+ public Animation(IEnumerable image)
+ {
+ frameTextures = new List(image);
+ }
+
+ public Animation(IEnumerable frameTextures, string ANIM) : this(frameTextures)
+ {
+ ParseAnim(ANIM);
+ }
+
+ public struct Frame
+ {
+ public readonly Image Texture;
+ public int Ticks;
+
+ public Frame(Image texture) : this(texture, MinimumFrameTime)
+ { }
+
+ public Frame(Image texture, int frameTime)
+ {
+ Texture = texture;
+ Ticks = frameTime;
+ }
+ }
+
+ private void ParseAnim(string ANIM)
+ {
+ _ = ANIM ?? throw new ArgumentNullException(nameof(ANIM));
+ ANIM = (Interpolate = ANIM.StartsWith("#")) ? ANIM.Substring(1) : ANIM;
+ string[] animData = ANIM.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
+ int lastFrameTime = MinimumFrameTime;
+ if (animData.Length <= 0)
+ for (int i = 0; i < TextureCount; i++)
+ {
+ AddFrame(i);
+ }
+
+ foreach (string frameInfo in animData)
+ {
+ string[] frameData = frameInfo.Split('*');
+ //if (frameData.Length < 2)
+ // continue; // shouldn't happen
+ int currentFrameIndex = 0;
+ int.TryParse(frameData[0], out currentFrameIndex);
+
+ // Some textures like the Halloween 2015's Lava texture don't have a
+ // frame time parameter for certain frames.
+ // This will detect that and place the last frame time in its place.
+ // This is accurate to console edition behavior.
+ // - MattNL
+ int currentFrameTime = string.IsNullOrEmpty(frameData[1]) ? lastFrameTime : int.Parse(frameData[1]);
+ AddFrame(currentFrameIndex, currentFrameTime);
+ lastFrameTime = currentFrameTime;
+ }
+ }
+
+ public Frame AddFrame(int frameTextureIndex) => AddFrame(frameTextureIndex, MinimumFrameTime);
+ public Frame AddFrame(int frameTextureIndex, int frameTime)
+ {
+ if (frameTextureIndex < 0 || frameTextureIndex >= frameTextures.Count)
+ throw new ArgumentOutOfRangeException(nameof(frameTextureIndex));
+ Frame f = new Frame(frameTextures[frameTextureIndex], frameTime);
+ frames.Add(f);
+ return f;
+ }
+
+ public bool RemoveFrame(int frameIndex)
+ {
+ frames.RemoveAt(frameIndex);
+ return true;
+ }
+
+ public Frame GetFrame(int index) => frames[index];
+
+ public List GetFrames()
+ {
+ return frames;
+ }
+
+ public List GetFrameTextures()
+ {
+ return frameTextures;
+ }
+
+ public int GetTextureIndex(Image frameTexture)
+ {
+ _ = frameTexture ?? throw new ArgumentNullException(nameof(frameTexture));
+ return frameTextures.IndexOf(frameTexture);
+ }
+
+ public void SetFrame(Frame frame, int frameTextureIndex, int frameTime = MinimumFrameTime)
+ => SetFrame(frames.IndexOf(frame), frameTextureIndex, frameTime);
+ public void SetFrame(int frameIndex, int frameTextureIndex, int frameTime = MinimumFrameTime)
+ {
+ frames[frameIndex] = new Frame(frameTextures[frameTextureIndex], frameTime);
+ }
+
+ public string BuildAnim()
+ {
+ StringBuilder stringBuilder = new StringBuilder(Interpolate ? "#" : string.Empty);
+ foreach (var frame in frames)
+ stringBuilder.Append($"{GetTextureIndex(frame.Texture)}*{frame.Ticks},");
+ return stringBuilder.ToString(0, stringBuilder.Length - 1);
+ }
+
+ public Image BuildTexture(bool isClockOrCompass, List linearImages = default!)
+ {
+ int width = frameTextures[0].Width;
+ int height = frameTextures[0].Height;
+ if (width != height)
+ throw new Exception("Invalid size");
+
+ var textures = isClockOrCompass ? linearImages : frameTextures;
+
+ return ImageExtensions.CombineImages(textures, ImageLayoutDirection.Vertical);
+ }
+ }
+}
diff --git a/PCK-Studio/Forms/Editor/AnimationEditor.cs b/PCK-Studio/Forms/Editor/AnimationEditor.cs
index 9e22f9a1..06970be2 100644
--- a/PCK-Studio/Forms/Editor/AnimationEditor.cs
+++ b/PCK-Studio/Forms/Editor/AnimationEditor.cs
@@ -2,248 +2,35 @@
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
-using System.Collections.Generic;
using System.Drawing;
-using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
-using System.Threading;
-using System.Threading.Tasks;
using System.Windows.Forms;
-using PckStudio.Classes.FileTypes;
using PckStudio.Forms.Additional_Popups.Animation;
using PckStudio.Forms.Utilities;
-using PckStudio.Classes.Extentions;
-using System.Runtime.CompilerServices;
-using System.Diagnostics;
+using PckStudio.Extensions;
using OMI.Formats.Pck;
namespace PckStudio.Forms.Editor
{
- public partial class AnimationEditor : MetroForm
+ public partial class AnimationEditor : MetroForm
{
PckFile.FileData animationFile;
Animation currentAnimation;
AnimationPlayer player;
bool isItem = false;
- string animationSection => AnimationUtil.GetAnimationSection(isItem);
+ string animationSection => AnimationResources.GetAnimationSection(isItem);
public string TileName = string.Empty;
- sealed class Animation
- {
- public const int MinimumFrameTime = 1;
+ private bool IsEditingSpecial => IsSpecialTile(TileName);
- private readonly List frameTextures;
-
- private readonly List frames = new List();
-
- public Frame this[int frameIndex] => frames[frameIndex];
-
- // not implemented rn...
- public bool Interpolate { get; set; } = false;
-
- public Animation(Image image)
- {
- frameTextures = new List(image.CreateImageList(ImageExtentions.ImageLayoutDirection.Horizontal));
- }
-
- public Animation(Image image, string ANIM) : this(image)
- {
- ParseAnim(ANIM);
- }
-
- public struct Frame
- {
- public readonly Image Texture;
- public int Ticks;
-
- public static implicit operator Image(Frame f) => f.Texture;
-
- public Frame(Image texture) : this(texture, MinimumFrameTime)
- {}
-
- public Frame(Image texture, int frameTime)
- {
- Texture = texture;
- Ticks = frameTime;
- }
- }
-
- public void ParseAnim(string ANIM)
- {
- _ = ANIM ?? throw new ArgumentNullException(nameof(ANIM));
- ANIM = (Interpolate = ANIM.StartsWith("#")) ? ANIM.Substring(1) : ANIM;
- string[] animData = ANIM.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
- int lastFrameTime = MinimumFrameTime;
- if (animData.Length <= 0)
- {
- for(int i = 0; i < FrameTextureCount; i++)
- {
- AddFrame(i, 1);
- }
- }
- else
- {
- foreach (string frameInfo in animData)
- {
- string[] frameData = frameInfo.Split('*');
- //if (frameData.Length < 2)
- // continue; // shouldn't happen
- int currentFrameIndex = int.TryParse(frameData[0], out currentFrameIndex) ? currentFrameIndex : 0;
-
- // Some textures like the Halloween 2015's Lava texture don't have a
- // frame time parameter for certain frames.
- // This will detect that and place the last frame time in its place.
- // This is accurate to console edition behavior.
- // - MattNL
- int currentFrameTime = string.IsNullOrEmpty(frameData[1]) ? lastFrameTime : int.Parse(frameData[1]);
- AddFrame(currentFrameIndex, currentFrameTime);
- lastFrameTime = currentFrameTime;
- }
- }
- }
- public Frame AddFrame(int frameTextureIndex) => AddFrame(frameTextureIndex, MinimumFrameTime);
- public Frame AddFrame(int frameTextureIndex, int frameTime)
- {
- if (frameTextureIndex < 0 || frameTextureIndex >= frameTextures.Count)
- throw new ArgumentOutOfRangeException(nameof(frameTextureIndex));
- Frame f = new Frame(frameTextures[frameTextureIndex], frameTime);
- frames.Add(f);
- return f;
- }
-
- public bool RemoveFrame(int frameIndex)
- {
- frames.RemoveAt(frameIndex);
- return true;
- }
-
- public Frame GetFrame(int index) => frames[index];
-
- public List GetFrames()
- {
- return frames;
- }
-
- public List GetFrameTextures()
- {
- return frameTextures;
- }
-
- public int GetFrameIndex(Image frameTexture)
- {
- _ = frameTexture ?? throw new ArgumentNullException(nameof(frameTexture));
- return frameTextures.IndexOf(frameTexture);
- }
-
- public int FrameCount => frames.Count;
- public int FrameTextureCount => frameTextures.Count;
-
- public void SetFrame(Frame frame, int frameTextureIndex, int frameTime = MinimumFrameTime)
- => SetFrame(frames.IndexOf(frame), frameTextureIndex, frameTime);
- public void SetFrame(int frameIndex, int frameTextureIndex, int frameTime = MinimumFrameTime)
- {
- frames[frameIndex] = new Frame(frameTextures[frameTextureIndex], frameTime);
- }
-
- public string BuildAnim()
- {
- string animationData = Interpolate ? "#" : string.Empty;
- frames.ForEach(frame => animationData += $"{GetFrameIndex(frame)}*{frame.Ticks},");
- return animationData.TrimEnd(',');
- }
-
- public Image BuildTexture(AnimationEditor ae)
- {
- int width = frameTextures[0].Width;
- int height = frameTextures[0].Height;
- if (width != height) throw new Exception("Invalid size");
-
- bool isClockOrCompass = ae.TileName == "clock" || ae.TileName == "compass";
-
- List linearImages = new List();
- foreach (TreeNode n in ae.frameTreeView.Nodes) linearImages.Add(frameTextures[n.ImageIndex]);
-
- var img = new Bitmap(width, height * (isClockOrCompass ? linearImages.Count : FrameTextureCount));
- int pos_y = 0;
-
- using (var g = Graphics.FromImage(img))
- (isClockOrCompass ? linearImages : frameTextures).ForEach(texture =>
- {
- g.DrawImage(texture, 0, pos_y);
- pos_y += height;
- });
- return img;
- }
- }
-
- sealed class AnimationPlayer
+ private bool IsSpecialTile(string tileName)
{
- public const int BaseTickSpeed = 48;
- public bool IsPlaying { get; private set; } = false;
-
- private int currentAnimationFrameIndex = 0;
- private PictureBox display;
- private Animation _animation;
- private CancellationTokenSource cts = new CancellationTokenSource();
-
- public AnimationPlayer(PictureBox display)
- {
- SetContext(display);
- }
-
- private async void DoAnimate()
- {
- _ = display ?? throw new ArgumentNullException(nameof(display));
- _ = _animation ?? throw new ArgumentNullException(nameof(_animation));
- IsPlaying = true;
- while (!cts.IsCancellationRequested)
- {
- if (currentAnimationFrameIndex >= _animation.FrameCount)
- currentAnimationFrameIndex = 0;
- Animation.Frame frame = SetFrameDisplayed(currentAnimationFrameIndex++);
- await Task.Delay(BaseTickSpeed * frame.Ticks);
- }
- IsPlaying = false;
- }
-
- public void Start(Animation animation)
- {
- _animation = animation;
- cts = new CancellationTokenSource();
- Task.Run(DoAnimate, cts.Token);
- }
-
- public void Stop([CallerMemberName] string callerName = default!)
- {
- Debug.WriteLine($"{nameof(AnimationPlayer.Stop)} called from {callerName}!");
- cts.Cancel();
- }
-
- public Animation.Frame GetCurrentFrame() => _animation[currentAnimationFrameIndex];
-
- public void SetContext(PictureBox display) => this.display = display;
-
- public void SelectFrame(Animation animation, int index)
- {
- _animation = animation;
- if (IsPlaying) Stop();
- SetFrameDisplayed(index);
- currentAnimationFrameIndex = index;
- }
-
- private Animation.Frame SetFrameDisplayed(int i)
- {
- Monitor.Enter(_animation);
- Animation.Frame frame = _animation[i];
- display.Image = frame;
- Monitor.Exit(_animation);
- return frame;
- }
- }
+ return tileName == "clock" || tileName == "compass";
+ }
public AnimationEditor(PckFile.FileData file)
{
@@ -252,7 +39,7 @@ namespace PckStudio.Forms.Editor
isItem = file.Filename.Split('/').Contains("items");
TileName = Path.GetFileNameWithoutExtension(file.Filename);
- InterpolationCheckbox.Visible = !(TileName == "clock" || TileName == "compass");
+ InterpolationCheckbox.Visible = !IsEditingSpecial;
InterpolationCheckbox.Checked = InterpolationCheckbox.Visible;
bulkAnimationSpeedToolStripMenuItem.Enabled = InterpolationCheckbox.Visible;
importJavaAnimationToolStripMenuItem.Enabled = InterpolationCheckbox.Visible;
@@ -262,12 +49,14 @@ namespace PckStudio.Forms.Editor
using MemoryStream textureMem = new MemoryStream(animationFile.Data);
var texture = new Bitmap(textureMem);
- currentAnimation = animationFile.Properties.HasProperty("ANIM")
- ? new Animation(texture, animationFile.Properties.GetPropertyValue("ANIM"))
- : new Animation(texture);
+ var frameTextures = texture.CreateImageList(ImageLayoutDirection.Vertical);
+
+ currentAnimation = animationFile.Properties.HasProperty("ANIM")
+ ? new Animation(frameTextures, animationFile.Properties.GetPropertyValue("ANIM"))
+ : new Animation(frameTextures);
player = new AnimationPlayer(pictureBoxWithInterpolationMode1);
- foreach (JObject content in AnimationUtil.tileData[animationSection].Children())
+ foreach (JObject content in AnimationResources.tileData[animationSection].Children())
{
var prop = content.Properties().FirstOrDefault(prop => prop.Name == TileName);
if (prop is JProperty)
@@ -286,7 +75,15 @@ namespace PckStudio.Forms.Editor
// $"Frame: {i}, Frame Time: {Animation.MinimumFrameTime}"
TextureIcons.Images.Clear();
TextureIcons.Images.AddRange(currentAnimation.GetFrameTextures().ToArray());
- currentAnimation.GetFrames().ForEach(f => frameTreeView.Nodes.Add("", $"for {f.Ticks} frames", currentAnimation.GetFrameIndex(f.Texture), currentAnimation.GetFrameIndex(f.Texture)));
+ foreach (var frame in currentAnimation.GetFrames())
+ {
+ var imageIndex = currentAnimation.GetTextureIndex(frame.Texture);
+ frameTreeView.Nodes.Add(new TreeNode($"for {frame.Ticks} frames")
+ {
+ ImageIndex = imageIndex,
+ SelectedImageIndex = imageIndex,
+ });
+ }
player.SelectFrame(currentAnimation, 0);
}
@@ -304,8 +101,8 @@ namespace PckStudio.Forms.Editor
private void StartAnimationBtn_Click(object sender, EventArgs e)
{
- // crash fix: when pushing the play button on occasions, the animation will play twice the intended speed and crash PCK Studio after one iteration
- player.Stop(); // force the player to stop before starting
+ // prevent player from crashing
+ player.Stop();
AnimationPlayBtn.Enabled = !(AnimationStopBtn.Enabled = !AnimationStopBtn.Enabled);
if (currentAnimation.FrameCount > 1)
{
@@ -338,12 +135,13 @@ namespace PckStudio.Forms.Editor
private void saveToolStripMenuItem1_Click(object sender, EventArgs e)
{
-
string anim = currentAnimation.BuildAnim();
- animationFile.Properties.SetProperty("ANIM", TileName == "clock" || TileName == "compass" ? "" : anim);
+
+ animationFile.Properties.SetProperty("ANIM", IsEditingSpecial ? "" : anim);
using (var stream = new MemoryStream())
{
- currentAnimation.BuildTexture(this).Save(stream, ImageFormat.Png);
+ var texture = currentAnimation.BuildTexture(IsEditingSpecial);
+ texture.Save(stream, ImageFormat.Png);
animationFile.SetData(stream.ToArray());
}
//Reusing this for the tile path
@@ -431,7 +229,7 @@ namespace PckStudio.Forms.Editor
private void treeView1_doubleClick(object sender, EventArgs e)
{
var frame = currentAnimation.GetFrame(frameTreeView.SelectedNode.Index);
- using FrameEditor diag = new FrameEditor(frame.Ticks, currentAnimation.GetFrameIndex(frame.Texture), TextureIcons);
+ using FrameEditor diag = new FrameEditor(frame.Ticks, currentAnimation.GetTextureIndex(frame.Texture), TextureIcons);
if (diag.ShowDialog(this) == DialogResult.OK)
{
/* Found a bug here. When passing the frame variable, it would replace the first instance of that frame and time
@@ -464,15 +262,10 @@ namespace PckStudio.Forms.Editor
private void bulkAnimationSpeedToolStripMenuItem_Click(object sender, EventArgs e)
{
- SetBulkSpeed diag = new SetBulkSpeed(frameTreeView);
- if(diag.ShowDialog(this) == DialogResult.OK)
+ SetBulkSpeed diag = new SetBulkSpeed();
+ if (diag.ShowDialog(this) == DialogResult.OK)
{
- var list = currentAnimation.GetFrames();
- for (int i = 0; i < list.Count; i++)
- {
- Animation.Frame f = list[i];
- currentAnimation.SetFrame(f, currentAnimation.GetFrameIndex(f), diag.time);
- }
+ currentAnimation.GetFrames().ForEach(frame => frame.Ticks = diag.Ticks);
LoadAnimationTreeView();
}
diag.Dispose();
@@ -485,15 +278,12 @@ namespace PckStudio.Forms.Editor
if (query == DialogResult.No) return;
OpenFileDialog fileDialog = new OpenFileDialog();
- fileDialog.Multiselect = false;
fileDialog.Title = "Please select a valid Minecaft: Java Edition animation script";
// It's marked as .png.mcmeta just in case
// some weirdo tries to pass a pack.mcmeta or something
// -MattNL
fileDialog.Filter = "Animation Scripts (*.mcmeta)|*.png.mcmeta";
- fileDialog.CheckPathExists = true;
- fileDialog.CheckFileExists = true;
if (fileDialog.ShowDialog(this) != DialogResult.OK) return;
Console.WriteLine("Selected Animation Script: " + fileDialog.FileName);
@@ -504,8 +294,8 @@ namespace PckStudio.Forms.Editor
return;
}
using MemoryStream textureMem = new MemoryStream(File.ReadAllBytes(textureFile));
- var new_animation = new Animation(Image.FromStream(textureMem));
-
+ var textures = Image.FromStream(textureMem).CreateImageList(ImageLayoutDirection.Horizontal);
+ var new_animation = new Animation(textures);
try
{
JObject mcmeta = JObject.Parse(File.ReadAllText(fileDialog.FileName));
@@ -540,7 +330,7 @@ namespace PckStudio.Forms.Editor
}
else
{
- for (int i = 0; i < new_animation.FrameTextureCount; i++)
+ for (int i = 0; i < new_animation.TextureCount; i++)
{
new_animation.AddFrame(i, frameTime);
}
@@ -566,13 +356,13 @@ namespace PckStudio.Forms.Editor
if (TileName != diag.SelectedTile) isItem = diag.IsItem;
TileName = diag.SelectedTile;
- InterpolationCheckbox.Visible = !(TileName == "clock" || TileName == "compass");
- InterpolationCheckbox.Checked = InterpolationCheckbox.Visible;
- bulkAnimationSpeedToolStripMenuItem.Enabled = InterpolationCheckbox.Visible;
- importJavaAnimationToolStripMenuItem.Enabled = InterpolationCheckbox.Visible;
- exportJavaAnimationToolStripMenuItem.Enabled = InterpolationCheckbox.Visible;
+ InterpolationCheckbox.Checked =
+ bulkAnimationSpeedToolStripMenuItem.Enabled =
+ importJavaAnimationToolStripMenuItem.Enabled =
+ exportJavaAnimationToolStripMenuItem.Enabled =
+ InterpolationCheckbox.Visible = !IsEditingSpecial;
- foreach (JObject content in AnimationUtil.tileData[animationSection].Children())
+ foreach (JObject content in AnimationResources.tileData[animationSection].Children())
{
var first = content.Properties().FirstOrDefault(p => p.Name == TileName);
if (first is JProperty p) tileLabel.Text = (string)p.Value;
@@ -584,31 +374,39 @@ namespace PckStudio.Forms.Editor
{
SaveFileDialog fileDialog = new SaveFileDialog();
fileDialog.Title = "Please choose where you want to save your new animation";
-
fileDialog.Filter = "Animation Scripts (*.mcmeta)|*.png.mcmeta";
- fileDialog.CheckPathExists = true;
- if (fileDialog.ShowDialog(this) != DialogResult.OK) return;
+ if (fileDialog.ShowDialog(this) == DialogResult.OK)
+ {
+ JObject mcmeta = ConvertAnimationToJava(currentAnimation);
+ string jsondata = JsonConvert.SerializeObject(mcmeta, Formatting.Indented);
+ string filename = fileDialog.FileName;
+ File.WriteAllText(filename, jsondata);
+ var finalTexture = currentAnimation.BuildTexture(isClockOrCompass: false);
+ finalTexture.Save(Path.GetFileNameWithoutExtension(filename)); // removes ".mcmeta" from filename!
+ MessageBox.Show("Animation was successfully exported to " + filename, "Export successful!");
+ }
+ }
- JObject mcmeta = new JObject();
- JObject animation = new JObject();
- JArray frames = new JArray();
- currentAnimation.GetFrames().ForEach(f => {
- JObject frame = new JObject();
- frame["index"] = currentAnimation.GetFrameIndex(f.Texture);
- frame["time"] = f.Ticks;
- frames.Add(frame);
- });
- animation["interpolation"] = InterpolationCheckbox.Checked;
- animation["frames"] = frames;
- mcmeta["comment"] = "Animation converted via PCK Studio";
- mcmeta["animation"] = animation;
- File.WriteAllText(fileDialog.FileName, JsonConvert.SerializeObject(mcmeta, Formatting.Indented));
- string fn = fileDialog.FileName;
- currentAnimation.BuildTexture(this).Save(fn.Remove(fn.Length - 7));
- MessageBox.Show("Your animation was successfully exported at " + fn, "Successful export");
- }
+ private JObject ConvertAnimationToJava(Animation animation)
+ {
+ JObject janimation = new JObject();
+ JObject mcmeta = new JObject();
+ mcmeta["comment"] = $"Animation converted by {ProductName}";
+ mcmeta["animation"] = janimation;
+ JArray jframes = new JArray();
+ foreach (var frame in animation.GetFrames())
+ {
+ JObject jframe = new JObject();
+ jframe["index"] = animation.GetTextureIndex(frame.Texture);
+ jframe["time"] = frame.Ticks;
+ jframes.Add(jframe);
+ };
+ janimation["interpolation"] = InterpolationCheckbox.Checked;
+ janimation["frames"] = jframes;
+ return mcmeta;
+ }
- private void howToInterpolation_Click(object sender, EventArgs e)
+ private void howToInterpolation_Click(object sender, EventArgs e)
{
MessageBox.Show("The Interpolation effect is when the animtion smoothly translates between the frames instead of simply displaying the next one. This can be seen with some vanilla Minecraft textures such as Magma and Prismarine.\n\nThe \"Interpolates\" checkbox at the bottom controls this.", "Interpolation");
}
diff --git a/PCK-Studio/Forms/Editor/AnimationPlayer.cs b/PCK-Studio/Forms/Editor/AnimationPlayer.cs
new file mode 100644
index 00000000..bca7ca62
--- /dev/null
+++ b/PCK-Studio/Forms/Editor/AnimationPlayer.cs
@@ -0,0 +1,76 @@
+using System;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using System.Runtime.CompilerServices;
+using System.Diagnostics;
+
+namespace PckStudio.Forms.Editor
+{
+ // TODO: write as a UI control ??
+ sealed class AnimationPlayer
+ {
+ public const int BaseTickSpeed = 48;
+ public bool IsPlaying { get; private set; } = false;
+
+ private int currentAnimationFrameIndex = 0;
+ private PictureBox display;
+ private Animation _animation;
+ private CancellationTokenSource cts = new CancellationTokenSource();
+
+ public AnimationPlayer(PictureBox display)
+ {
+ SetContext(display);
+ }
+
+ private async void DoAnimate()
+ {
+ _ = display ?? throw new ArgumentNullException(nameof(display));
+ _ = _animation ?? throw new ArgumentNullException(nameof(_animation));
+ IsPlaying = true;
+ while (!cts.IsCancellationRequested)
+ {
+ if (currentAnimationFrameIndex >= _animation.FrameCount)
+ currentAnimationFrameIndex = 0;
+ Animation.Frame frame = SetDisplayFrame(currentAnimationFrameIndex++);
+ await Task.Delay(BaseTickSpeed * frame.Ticks);
+ }
+ IsPlaying = false;
+ }
+
+ public void Start(Animation animation)
+ {
+ _animation = animation;
+ cts = new CancellationTokenSource();
+ Task.Run(DoAnimate, cts.Token);
+ }
+
+ public void Stop([CallerMemberName] string callerName = default!)
+ {
+ Debug.WriteLine($"{nameof(AnimationPlayer.Stop)} called from {callerName}!");
+ cts.Cancel();
+ }
+
+ public Animation.Frame GetCurrentFrame() => _animation[currentAnimationFrameIndex];
+
+ public void SetContext(PictureBox display) => this.display = display;
+
+ public void SelectFrame(Animation animation, int index)
+ {
+ _animation = animation;
+ if (IsPlaying)
+ Stop();
+ SetDisplayFrame(index);
+ currentAnimationFrameIndex = index;
+ }
+
+ private Animation.Frame SetDisplayFrame(int frameIndex)
+ {
+ Monitor.Enter(_animation);
+ Animation.Frame frame = _animation[frameIndex];
+ display.Image = frame.Texture;
+ Monitor.Exit(_animation);
+ return frame;
+ }
+ }
+}
diff --git a/PCK-Studio/Forms/Editor/AudioEditor.Designer.cs b/PCK-Studio/Forms/Editor/AudioEditor.Designer.cs
index bd643284..a9011a57 100644
--- a/PCK-Studio/Forms/Editor/AudioEditor.Designer.cs
+++ b/PCK-Studio/Forms/Editor/AudioEditor.Designer.cs
@@ -29,304 +29,312 @@ namespace PckStudio.Forms.Editor
///
private void InitializeComponent()
{
- this.components = new System.ComponentModel.Container();
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AudioEditor));
- this.treeView1 = new System.Windows.Forms.TreeView();
- this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
- this.addCategoryStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.removeCategoryStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.changeCategoryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.catImages = new System.Windows.Forms.ImageList(this.components);
- this.menuStrip = new System.Windows.Forms.MenuStrip();
- this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.saveToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
- this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.creditsEditorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.deleteUnusedBINKAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.openDataFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.bulkReplaceExistingTracksToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.organizeTracksToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.howToAddSongsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.whatAreTheCategoriesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.howToEditCreditsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.optimizeDataFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.bINKACompressionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.treeView2 = new System.Windows.Forms.TreeView();
- this.contextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(this.components);
- this.addEntryMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.removeEntryMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.verifyFileLocationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.playOverworldInCreative = new MetroFramework.Controls.MetroCheckBox();
- this.compressionUpDown = new System.Windows.Forms.NumericUpDown();
- this.metroLabel1 = new MetroFramework.Controls.MetroLabel();
- this.contextMenuStrip1.SuspendLayout();
- this.menuStrip.SuspendLayout();
- this.contextMenuStrip2.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.compressionUpDown)).BeginInit();
- this.SuspendLayout();
- //
- // treeView1
- //
- resources.ApplyResources(this.treeView1, "treeView1");
- this.treeView1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
- this.treeView1.ContextMenuStrip = this.contextMenuStrip1;
- this.treeView1.ForeColor = System.Drawing.Color.White;
- this.treeView1.ImageList = this.catImages;
- this.treeView1.LabelEdit = true;
- this.treeView1.Name = "treeView1";
- this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);
- this.treeView1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeView1_KeyDown);
- //
- // contextMenuStrip1
- //
- this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AudioEditor));
+ this.treeView1 = new System.Windows.Forms.TreeView();
+ this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.addCategoryStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.removeCategoryStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.changeCategoryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.catImages = new System.Windows.Forms.ImageList(this.components);
+ this.menuStrip = new System.Windows.Forms.MenuStrip();
+ this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.saveToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.creditsEditorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.deleteUnusedBINKAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.openDataFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.bulkReplaceExistingTracksToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.organizeTracksToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.howToAddSongsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.whatAreTheCategoriesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.howToEditCreditsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.optimizeDataFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.bINKACompressionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.treeView2 = new System.Windows.Forms.TreeView();
+ this.contextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.addEntryMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.removeEntryMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.verifyFileLocationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.playOverworldInCreative = new MetroFramework.Controls.MetroCheckBox();
+ this.compressionUpDown = new System.Windows.Forms.NumericUpDown();
+ this.metroLabel1 = new MetroFramework.Controls.MetroLabel();
+ this.convertToWAVToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.contextMenuStrip1.SuspendLayout();
+ this.menuStrip.SuspendLayout();
+ this.contextMenuStrip2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.compressionUpDown)).BeginInit();
+ this.SuspendLayout();
+ //
+ // treeView1
+ //
+ resources.ApplyResources(this.treeView1, "treeView1");
+ this.treeView1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ this.treeView1.ContextMenuStrip = this.contextMenuStrip1;
+ this.treeView1.ForeColor = System.Drawing.Color.White;
+ this.treeView1.ImageList = this.catImages;
+ this.treeView1.LabelEdit = true;
+ this.treeView1.Name = "treeView1";
+ this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);
+ this.treeView1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeView1_KeyDown);
+ //
+ // contextMenuStrip1
+ //
+ this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.addCategoryStripMenuItem,
this.removeCategoryStripMenuItem,
this.changeCategoryToolStripMenuItem});
- this.contextMenuStrip1.Name = "contextMenuStrip1";
- resources.ApplyResources(this.contextMenuStrip1, "contextMenuStrip1");
- //
- // addCategoryStripMenuItem
- //
- resources.ApplyResources(this.addCategoryStripMenuItem, "addCategoryStripMenuItem");
- this.addCategoryStripMenuItem.Name = "addCategoryStripMenuItem";
- this.addCategoryStripMenuItem.Click += new System.EventHandler(this.addCategoryStripMenuItem_Click);
- //
- // removeCategoryStripMenuItem
- //
- this.removeCategoryStripMenuItem.Name = "removeCategoryStripMenuItem";
- resources.ApplyResources(this.removeCategoryStripMenuItem, "removeCategoryStripMenuItem");
- this.removeCategoryStripMenuItem.Click += new System.EventHandler(this.removeCategoryStripMenuItem_Click);
- //
- // changeCategoryToolStripMenuItem
- //
- this.changeCategoryToolStripMenuItem.Name = "changeCategoryToolStripMenuItem";
- resources.ApplyResources(this.changeCategoryToolStripMenuItem, "changeCategoryToolStripMenuItem");
- this.changeCategoryToolStripMenuItem.Click += new System.EventHandler(this.setCategoryToolStripMenuItem_Click);
- //
- // catImages
- //
- this.catImages.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("catImages.ImageStream")));
- this.catImages.TransparentColor = System.Drawing.Color.Transparent;
- this.catImages.Images.SetKeyName(0, "0_overworld.png");
- this.catImages.Images.SetKeyName(1, "1_nether.png");
- this.catImages.Images.SetKeyName(2, "2_end.png");
- this.catImages.Images.SetKeyName(3, "4_creative.png");
- this.catImages.Images.SetKeyName(4, "3_menu.png");
- this.catImages.Images.SetKeyName(5, "5_mg01.png");
- this.catImages.Images.SetKeyName(6, "6_mg02.png");
- this.catImages.Images.SetKeyName(7, "7_mg03.png");
- this.catImages.Images.SetKeyName(8, "8_unused.png");
- //
- // menuStrip
- //
- resources.ApplyResources(this.menuStrip, "menuStrip");
- this.menuStrip.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
- this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.contextMenuStrip1.Name = "contextMenuStrip1";
+ resources.ApplyResources(this.contextMenuStrip1, "contextMenuStrip1");
+ //
+ // addCategoryStripMenuItem
+ //
+ resources.ApplyResources(this.addCategoryStripMenuItem, "addCategoryStripMenuItem");
+ this.addCategoryStripMenuItem.Name = "addCategoryStripMenuItem";
+ this.addCategoryStripMenuItem.Click += new System.EventHandler(this.addCategoryStripMenuItem_Click);
+ //
+ // removeCategoryStripMenuItem
+ //
+ this.removeCategoryStripMenuItem.Name = "removeCategoryStripMenuItem";
+ resources.ApplyResources(this.removeCategoryStripMenuItem, "removeCategoryStripMenuItem");
+ this.removeCategoryStripMenuItem.Click += new System.EventHandler(this.removeCategoryStripMenuItem_Click);
+ //
+ // changeCategoryToolStripMenuItem
+ //
+ this.changeCategoryToolStripMenuItem.Name = "changeCategoryToolStripMenuItem";
+ resources.ApplyResources(this.changeCategoryToolStripMenuItem, "changeCategoryToolStripMenuItem");
+ this.changeCategoryToolStripMenuItem.Click += new System.EventHandler(this.setCategoryToolStripMenuItem_Click);
+ //
+ // catImages
+ //
+ this.catImages.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("catImages.ImageStream")));
+ this.catImages.TransparentColor = System.Drawing.Color.Transparent;
+ this.catImages.Images.SetKeyName(0, "0_overworld.png");
+ this.catImages.Images.SetKeyName(1, "1_nether.png");
+ this.catImages.Images.SetKeyName(2, "2_end.png");
+ this.catImages.Images.SetKeyName(3, "4_creative.png");
+ this.catImages.Images.SetKeyName(4, "3_menu.png");
+ this.catImages.Images.SetKeyName(5, "5_mg01.png");
+ this.catImages.Images.SetKeyName(6, "6_mg02.png");
+ this.catImages.Images.SetKeyName(7, "7_mg03.png");
+ this.catImages.Images.SetKeyName(8, "8_unused.png");
+ //
+ // menuStrip
+ //
+ resources.ApplyResources(this.menuStrip, "menuStrip");
+ this.menuStrip.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.fileToolStripMenuItem,
this.toolsToolStripMenuItem,
this.helpToolStripMenuItem});
- this.menuStrip.Name = "menuStrip";
- //
- // fileToolStripMenuItem
- //
- this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.menuStrip.Name = "menuStrip";
+ //
+ // fileToolStripMenuItem
+ //
+ this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.saveToolStripMenuItem1});
- this.fileToolStripMenuItem.ForeColor = System.Drawing.Color.White;
- this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
- resources.ApplyResources(this.fileToolStripMenuItem, "fileToolStripMenuItem");
- //
- // saveToolStripMenuItem1
- //
- resources.ApplyResources(this.saveToolStripMenuItem1, "saveToolStripMenuItem1");
- this.saveToolStripMenuItem1.Name = "saveToolStripMenuItem1";
- this.saveToolStripMenuItem1.Click += new System.EventHandler(this.saveToolStripMenuItem1_Click);
- //
- // toolsToolStripMenuItem
- //
- this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.fileToolStripMenuItem.ForeColor = System.Drawing.Color.White;
+ this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
+ resources.ApplyResources(this.fileToolStripMenuItem, "fileToolStripMenuItem");
+ //
+ // saveToolStripMenuItem1
+ //
+ resources.ApplyResources(this.saveToolStripMenuItem1, "saveToolStripMenuItem1");
+ this.saveToolStripMenuItem1.Name = "saveToolStripMenuItem1";
+ this.saveToolStripMenuItem1.Click += new System.EventHandler(this.saveToolStripMenuItem1_Click);
+ //
+ // toolsToolStripMenuItem
+ //
+ this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.creditsEditorToolStripMenuItem,
this.deleteUnusedBINKAsToolStripMenuItem,
this.openDataFolderToolStripMenuItem,
this.bulkReplaceExistingTracksToolStripMenuItem,
this.organizeTracksToolStripMenuItem});
- this.toolsToolStripMenuItem.ForeColor = System.Drawing.Color.White;
- this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem";
- resources.ApplyResources(this.toolsToolStripMenuItem, "toolsToolStripMenuItem");
- //
- // creditsEditorToolStripMenuItem
- //
- this.creditsEditorToolStripMenuItem.Name = "creditsEditorToolStripMenuItem";
- resources.ApplyResources(this.creditsEditorToolStripMenuItem, "creditsEditorToolStripMenuItem");
- this.creditsEditorToolStripMenuItem.Click += new System.EventHandler(this.creditsEditorToolStripMenuItem_Click);
- //
- // deleteUnusedBINKAsToolStripMenuItem
- //
- this.deleteUnusedBINKAsToolStripMenuItem.Name = "deleteUnusedBINKAsToolStripMenuItem";
- resources.ApplyResources(this.deleteUnusedBINKAsToolStripMenuItem, "deleteUnusedBINKAsToolStripMenuItem");
- this.deleteUnusedBINKAsToolStripMenuItem.Click += new System.EventHandler(this.deleteUnusedBINKAsToolStripMenuItem_Click);
- //
- // openDataFolderToolStripMenuItem
- //
- this.openDataFolderToolStripMenuItem.Name = "openDataFolderToolStripMenuItem";
- resources.ApplyResources(this.openDataFolderToolStripMenuItem, "openDataFolderToolStripMenuItem");
- this.openDataFolderToolStripMenuItem.Click += new System.EventHandler(this.openDataFolderToolStripMenuItem_Click);
- //
- // bulkReplaceExistingTracksToolStripMenuItem
- //
- this.bulkReplaceExistingTracksToolStripMenuItem.Name = "bulkReplaceExistingTracksToolStripMenuItem";
- resources.ApplyResources(this.bulkReplaceExistingTracksToolStripMenuItem, "bulkReplaceExistingTracksToolStripMenuItem");
- this.bulkReplaceExistingTracksToolStripMenuItem.Click += new System.EventHandler(this.bulkReplaceExistingFilesToolStripMenuItem_Click);
- //
- // organizeTracksToolStripMenuItem
- //
- this.organizeTracksToolStripMenuItem.Name = "organizeTracksToolStripMenuItem";
- resources.ApplyResources(this.organizeTracksToolStripMenuItem, "organizeTracksToolStripMenuItem");
- this.organizeTracksToolStripMenuItem.Click += new System.EventHandler(this.organizeTracksToolStripMenuItem_Click);
- //
- // helpToolStripMenuItem
- //
- this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.toolsToolStripMenuItem.ForeColor = System.Drawing.Color.White;
+ this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem";
+ resources.ApplyResources(this.toolsToolStripMenuItem, "toolsToolStripMenuItem");
+ //
+ // creditsEditorToolStripMenuItem
+ //
+ this.creditsEditorToolStripMenuItem.Name = "creditsEditorToolStripMenuItem";
+ resources.ApplyResources(this.creditsEditorToolStripMenuItem, "creditsEditorToolStripMenuItem");
+ this.creditsEditorToolStripMenuItem.Click += new System.EventHandler(this.creditsEditorToolStripMenuItem_Click);
+ //
+ // deleteUnusedBINKAsToolStripMenuItem
+ //
+ this.deleteUnusedBINKAsToolStripMenuItem.Name = "deleteUnusedBINKAsToolStripMenuItem";
+ resources.ApplyResources(this.deleteUnusedBINKAsToolStripMenuItem, "deleteUnusedBINKAsToolStripMenuItem");
+ this.deleteUnusedBINKAsToolStripMenuItem.Click += new System.EventHandler(this.deleteUnusedBINKAsToolStripMenuItem_Click);
+ //
+ // openDataFolderToolStripMenuItem
+ //
+ this.openDataFolderToolStripMenuItem.Name = "openDataFolderToolStripMenuItem";
+ resources.ApplyResources(this.openDataFolderToolStripMenuItem, "openDataFolderToolStripMenuItem");
+ this.openDataFolderToolStripMenuItem.Click += new System.EventHandler(this.openDataFolderToolStripMenuItem_Click);
+ //
+ // bulkReplaceExistingTracksToolStripMenuItem
+ //
+ this.bulkReplaceExistingTracksToolStripMenuItem.Name = "bulkReplaceExistingTracksToolStripMenuItem";
+ resources.ApplyResources(this.bulkReplaceExistingTracksToolStripMenuItem, "bulkReplaceExistingTracksToolStripMenuItem");
+ this.bulkReplaceExistingTracksToolStripMenuItem.Click += new System.EventHandler(this.bulkReplaceExistingFilesToolStripMenuItem_Click);
+ //
+ // organizeTracksToolStripMenuItem
+ //
+ this.organizeTracksToolStripMenuItem.Name = "organizeTracksToolStripMenuItem";
+ resources.ApplyResources(this.organizeTracksToolStripMenuItem, "organizeTracksToolStripMenuItem");
+ this.organizeTracksToolStripMenuItem.Click += new System.EventHandler(this.organizeTracksToolStripMenuItem_Click);
+ //
+ // helpToolStripMenuItem
+ //
+ this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.howToAddSongsToolStripMenuItem,
this.whatAreTheCategoriesToolStripMenuItem,
this.howToEditCreditsToolStripMenuItem,
this.optimizeDataFolderToolStripMenuItem,
this.bINKACompressionToolStripMenuItem});
- this.helpToolStripMenuItem.ForeColor = System.Drawing.Color.White;
- this.helpToolStripMenuItem.Name = "helpToolStripMenuItem";
- resources.ApplyResources(this.helpToolStripMenuItem, "helpToolStripMenuItem");
- //
- // howToAddSongsToolStripMenuItem
- //
- this.howToAddSongsToolStripMenuItem.Name = "howToAddSongsToolStripMenuItem";
- resources.ApplyResources(this.howToAddSongsToolStripMenuItem, "howToAddSongsToolStripMenuItem");
- this.howToAddSongsToolStripMenuItem.Click += new System.EventHandler(this.howToAddSongsToolStripMenuItem_Click);
- //
- // whatAreTheCategoriesToolStripMenuItem
- //
- this.whatAreTheCategoriesToolStripMenuItem.Name = "whatAreTheCategoriesToolStripMenuItem";
- resources.ApplyResources(this.whatAreTheCategoriesToolStripMenuItem, "whatAreTheCategoriesToolStripMenuItem");
- this.whatAreTheCategoriesToolStripMenuItem.Click += new System.EventHandler(this.whatAreTheCategoriesToolStripMenuItem_Click);
- //
- // howToEditCreditsToolStripMenuItem
- //
- this.howToEditCreditsToolStripMenuItem.Name = "howToEditCreditsToolStripMenuItem";
- resources.ApplyResources(this.howToEditCreditsToolStripMenuItem, "howToEditCreditsToolStripMenuItem");
- this.howToEditCreditsToolStripMenuItem.Click += new System.EventHandler(this.howToEditCreditsToolStripMenuItem_Click);
- //
- // optimizeDataFolderToolStripMenuItem
- //
- this.optimizeDataFolderToolStripMenuItem.Name = "optimizeDataFolderToolStripMenuItem";
- resources.ApplyResources(this.optimizeDataFolderToolStripMenuItem, "optimizeDataFolderToolStripMenuItem");
- this.optimizeDataFolderToolStripMenuItem.Click += new System.EventHandler(this.optimizeDataFolderToolStripMenuItem_Click);
- //
- // bINKACompressionToolStripMenuItem
- //
- this.bINKACompressionToolStripMenuItem.Name = "bINKACompressionToolStripMenuItem";
- resources.ApplyResources(this.bINKACompressionToolStripMenuItem, "bINKACompressionToolStripMenuItem");
- this.bINKACompressionToolStripMenuItem.Click += new System.EventHandler(this.BINKACompressionToolStripMenuItem_Click);
- //
- // treeView2
- //
- this.treeView2.AllowDrop = true;
- resources.ApplyResources(this.treeView2, "treeView2");
- this.treeView2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
- this.treeView2.ContextMenuStrip = this.contextMenuStrip2;
- this.treeView2.ForeColor = System.Drawing.Color.White;
- this.treeView2.Name = "treeView2";
- this.treeView2.DragDrop += new System.Windows.Forms.DragEventHandler(this.Binka_DragDrop);
- this.treeView2.DragEnter += new System.Windows.Forms.DragEventHandler(this.treeView2_DragEnter);
- this.treeView2.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeView2_KeyDown);
- //
- // contextMenuStrip2
- //
- this.contextMenuStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.helpToolStripMenuItem.ForeColor = System.Drawing.Color.White;
+ this.helpToolStripMenuItem.Name = "helpToolStripMenuItem";
+ resources.ApplyResources(this.helpToolStripMenuItem, "helpToolStripMenuItem");
+ //
+ // howToAddSongsToolStripMenuItem
+ //
+ this.howToAddSongsToolStripMenuItem.Name = "howToAddSongsToolStripMenuItem";
+ resources.ApplyResources(this.howToAddSongsToolStripMenuItem, "howToAddSongsToolStripMenuItem");
+ this.howToAddSongsToolStripMenuItem.Click += new System.EventHandler(this.howToAddSongsToolStripMenuItem_Click);
+ //
+ // whatAreTheCategoriesToolStripMenuItem
+ //
+ this.whatAreTheCategoriesToolStripMenuItem.Name = "whatAreTheCategoriesToolStripMenuItem";
+ resources.ApplyResources(this.whatAreTheCategoriesToolStripMenuItem, "whatAreTheCategoriesToolStripMenuItem");
+ this.whatAreTheCategoriesToolStripMenuItem.Click += new System.EventHandler(this.whatAreTheCategoriesToolStripMenuItem_Click);
+ //
+ // howToEditCreditsToolStripMenuItem
+ //
+ this.howToEditCreditsToolStripMenuItem.Name = "howToEditCreditsToolStripMenuItem";
+ resources.ApplyResources(this.howToEditCreditsToolStripMenuItem, "howToEditCreditsToolStripMenuItem");
+ this.howToEditCreditsToolStripMenuItem.Click += new System.EventHandler(this.howToEditCreditsToolStripMenuItem_Click);
+ //
+ // optimizeDataFolderToolStripMenuItem
+ //
+ this.optimizeDataFolderToolStripMenuItem.Name = "optimizeDataFolderToolStripMenuItem";
+ resources.ApplyResources(this.optimizeDataFolderToolStripMenuItem, "optimizeDataFolderToolStripMenuItem");
+ this.optimizeDataFolderToolStripMenuItem.Click += new System.EventHandler(this.optimizeDataFolderToolStripMenuItem_Click);
+ //
+ // bINKACompressionToolStripMenuItem
+ //
+ this.bINKACompressionToolStripMenuItem.Name = "bINKACompressionToolStripMenuItem";
+ resources.ApplyResources(this.bINKACompressionToolStripMenuItem, "bINKACompressionToolStripMenuItem");
+ this.bINKACompressionToolStripMenuItem.Click += new System.EventHandler(this.BINKACompressionToolStripMenuItem_Click);
+ //
+ // treeView2
+ //
+ this.treeView2.AllowDrop = true;
+ resources.ApplyResources(this.treeView2, "treeView2");
+ this.treeView2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ this.treeView2.ContextMenuStrip = this.contextMenuStrip2;
+ this.treeView2.ForeColor = System.Drawing.Color.White;
+ this.treeView2.Name = "treeView2";
+ this.treeView2.DragDrop += new System.Windows.Forms.DragEventHandler(this.Binka_DragDrop);
+ this.treeView2.DragEnter += new System.Windows.Forms.DragEventHandler(this.treeView2_DragEnter);
+ this.treeView2.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeView2_KeyDown);
+ //
+ // contextMenuStrip2
+ //
+ this.contextMenuStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.addEntryMenuItem,
this.removeEntryMenuItem,
- this.verifyFileLocationToolStripMenuItem});
- this.contextMenuStrip2.Name = "contextMenuStrip1";
- resources.ApplyResources(this.contextMenuStrip2, "contextMenuStrip2");
- //
- // addEntryMenuItem
- //
- resources.ApplyResources(this.addEntryMenuItem, "addEntryMenuItem");
- this.addEntryMenuItem.Name = "addEntryMenuItem";
- this.addEntryMenuItem.Click += new System.EventHandler(this.addEntryMenuItem_Click);
- //
- // removeEntryMenuItem
- //
- this.removeEntryMenuItem.Name = "removeEntryMenuItem";
- resources.ApplyResources(this.removeEntryMenuItem, "removeEntryMenuItem");
- this.removeEntryMenuItem.Click += new System.EventHandler(this.removeEntryMenuItem_Click);
- //
- // verifyFileLocationToolStripMenuItem
- //
- this.verifyFileLocationToolStripMenuItem.Name = "verifyFileLocationToolStripMenuItem";
- resources.ApplyResources(this.verifyFileLocationToolStripMenuItem, "verifyFileLocationToolStripMenuItem");
- this.verifyFileLocationToolStripMenuItem.Click += new System.EventHandler(this.verifyFileLocationToolStripMenuItem_Click);
- //
- // playOverworldInCreative
- //
- resources.ApplyResources(this.playOverworldInCreative, "playOverworldInCreative");
- this.playOverworldInCreative.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
- this.playOverworldInCreative.ForeColor = System.Drawing.SystemColors.Window;
- this.playOverworldInCreative.Name = "playOverworldInCreative";
- this.playOverworldInCreative.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.playOverworldInCreative.UseCustomBackColor = true;
- this.playOverworldInCreative.UseCustomForeColor = true;
- this.playOverworldInCreative.UseSelectable = true;
- //
- // compressionUpDown
- //
- this.compressionUpDown.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
- this.compressionUpDown.ForeColor = System.Drawing.SystemColors.Window;
- resources.ApplyResources(this.compressionUpDown, "compressionUpDown");
- this.compressionUpDown.Maximum = new decimal(new int[] {
+ this.verifyFileLocationToolStripMenuItem,
+ this.convertToWAVToolStripMenuItem});
+ this.contextMenuStrip2.Name = "contextMenuStrip1";
+ resources.ApplyResources(this.contextMenuStrip2, "contextMenuStrip2");
+ //
+ // addEntryMenuItem
+ //
+ resources.ApplyResources(this.addEntryMenuItem, "addEntryMenuItem");
+ this.addEntryMenuItem.Name = "addEntryMenuItem";
+ this.addEntryMenuItem.Click += new System.EventHandler(this.addEntryMenuItem_Click);
+ //
+ // removeEntryMenuItem
+ //
+ this.removeEntryMenuItem.Name = "removeEntryMenuItem";
+ resources.ApplyResources(this.removeEntryMenuItem, "removeEntryMenuItem");
+ this.removeEntryMenuItem.Click += new System.EventHandler(this.removeEntryMenuItem_Click);
+ //
+ // verifyFileLocationToolStripMenuItem
+ //
+ this.verifyFileLocationToolStripMenuItem.Name = "verifyFileLocationToolStripMenuItem";
+ resources.ApplyResources(this.verifyFileLocationToolStripMenuItem, "verifyFileLocationToolStripMenuItem");
+ this.verifyFileLocationToolStripMenuItem.Click += new System.EventHandler(this.verifyFileLocationToolStripMenuItem_Click);
+ //
+ // playOverworldInCreative
+ //
+ resources.ApplyResources(this.playOverworldInCreative, "playOverworldInCreative");
+ this.playOverworldInCreative.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ this.playOverworldInCreative.ForeColor = System.Drawing.SystemColors.Window;
+ this.playOverworldInCreative.Name = "playOverworldInCreative";
+ this.playOverworldInCreative.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.playOverworldInCreative.UseCustomBackColor = true;
+ this.playOverworldInCreative.UseCustomForeColor = true;
+ this.playOverworldInCreative.UseSelectable = true;
+ //
+ // compressionUpDown
+ //
+ this.compressionUpDown.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ this.compressionUpDown.ForeColor = System.Drawing.SystemColors.Window;
+ resources.ApplyResources(this.compressionUpDown, "compressionUpDown");
+ this.compressionUpDown.Maximum = new decimal(new int[] {
9,
0,
0,
0});
- this.compressionUpDown.Minimum = new decimal(new int[] {
+ this.compressionUpDown.Minimum = new decimal(new int[] {
1,
0,
0,
0});
- this.compressionUpDown.Name = "compressionUpDown";
- this.compressionUpDown.Value = new decimal(new int[] {
+ this.compressionUpDown.Name = "compressionUpDown";
+ this.compressionUpDown.Value = new decimal(new int[] {
4,
0,
0,
0});
- //
- // metroLabel1
- //
- resources.ApplyResources(this.metroLabel1, "metroLabel1");
- this.metroLabel1.Name = "metroLabel1";
- this.metroLabel1.Theme = MetroFramework.MetroThemeStyle.Dark;
- //
- // AudioEditor
- //
- resources.ApplyResources(this, "$this");
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.Controls.Add(this.metroLabel1);
- this.Controls.Add(this.compressionUpDown);
- this.Controls.Add(this.playOverworldInCreative);
- this.Controls.Add(this.treeView1);
- this.Controls.Add(this.treeView2);
- this.Controls.Add(this.menuStrip);
- this.Name = "AudioEditor";
- this.Style = MetroFramework.MetroColorStyle.Silver;
- this.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.AudioEditor_FormClosed);
- this.Shown += new System.EventHandler(this.AudioEditor_Shown);
- this.contextMenuStrip1.ResumeLayout(false);
- this.menuStrip.ResumeLayout(false);
- this.menuStrip.PerformLayout();
- this.contextMenuStrip2.ResumeLayout(false);
- ((System.ComponentModel.ISupportInitialize)(this.compressionUpDown)).EndInit();
- this.ResumeLayout(false);
- this.PerformLayout();
+ //
+ // metroLabel1
+ //
+ resources.ApplyResources(this.metroLabel1, "metroLabel1");
+ this.metroLabel1.Name = "metroLabel1";
+ this.metroLabel1.Theme = MetroFramework.MetroThemeStyle.Dark;
+ //
+ // convertToWAVToolStripMenuItem
+ //
+ this.convertToWAVToolStripMenuItem.Name = "convertToWAVToolStripMenuItem";
+ resources.ApplyResources(this.convertToWAVToolStripMenuItem, "convertToWAVToolStripMenuItem");
+ this.convertToWAVToolStripMenuItem.Click += new System.EventHandler(this.convertToWAVToolStripMenuItem_Click);
+ //
+ // AudioEditor
+ //
+ resources.ApplyResources(this, "$this");
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.metroLabel1);
+ this.Controls.Add(this.compressionUpDown);
+ this.Controls.Add(this.playOverworldInCreative);
+ this.Controls.Add(this.treeView1);
+ this.Controls.Add(this.treeView2);
+ this.Controls.Add(this.menuStrip);
+ this.Name = "AudioEditor";
+ this.Style = MetroFramework.MetroColorStyle.Silver;
+ this.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.AudioEditor_FormClosed);
+ this.Shown += new System.EventHandler(this.AudioEditor_Shown);
+ this.contextMenuStrip1.ResumeLayout(false);
+ this.menuStrip.ResumeLayout(false);
+ this.menuStrip.PerformLayout();
+ this.contextMenuStrip2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.compressionUpDown)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
}
@@ -361,5 +369,6 @@ namespace PckStudio.Forms.Editor
private System.Windows.Forms.ToolStripMenuItem bulkReplaceExistingTracksToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem changeCategoryToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem organizeTracksToolStripMenuItem;
- }
+ private System.Windows.Forms.ToolStripMenuItem convertToWAVToolStripMenuItem;
+ }
}
\ No newline at end of file
diff --git a/PCK-Studio/Forms/Editor/AudioEditor.cs b/PCK-Studio/Forms/Editor/AudioEditor.cs
index 5f47eb52..76cb8cca 100644
--- a/PCK-Studio/Forms/Editor/AudioEditor.cs
+++ b/PCK-Studio/Forms/Editor/AudioEditor.cs
@@ -25,7 +25,7 @@ namespace PckStudio.Forms.Editor
public partial class AudioEditor : MetroForm
{
public string defaultType = "yes";
- PCKAudioFile audioFile = null;
+ PckAudioFile audioFile = null;
PckFile.FileData audioPCK;
LOCFile loc;
bool _isLittleEndian = false;
@@ -44,15 +44,15 @@ namespace PckStudio.Forms.Editor
"Unused?"
};
- private string GetCategoryFromId(PCKAudioFile.AudioCategory.EAudioType categoryId)
- => categoryId >= PCKAudioFile.AudioCategory.EAudioType.Overworld &&
- categoryId <= PCKAudioFile.AudioCategory.EAudioType.Unused
+ private string GetCategoryFromId(PckAudioFile.AudioCategory.EAudioType categoryId)
+ => categoryId >= PckAudioFile.AudioCategory.EAudioType.Overworld &&
+ categoryId <= PckAudioFile.AudioCategory.EAudioType.Unused
? Categories[(int)categoryId]
: "Not valid";
- private PCKAudioFile.AudioCategory.EAudioType GetCategoryId(string category)
+ private PckAudioFile.AudioCategory.EAudioType GetCategoryId(string category)
{
- return (PCKAudioFile.AudioCategory.EAudioType)Categories.IndexOf(category);
+ return (PckAudioFile.AudioCategory.EAudioType)Categories.IndexOf(category);
}
public AudioEditor(PckFile.FileData file, LOCFile locFile, bool isLittleEndian)
@@ -64,7 +64,8 @@ namespace PckStudio.Forms.Editor
audioPCK = file;
using (var stream = new MemoryStream(file.Data))
{
- audioFile = PCKAudioFileReader.Read(stream, isLittleEndian);
+ var reader = new PckAudioFileReader(isLittleEndian ? OMI.Endianness.LittleEndian : OMI.Endianness.BigEndian);
+ audioFile = reader.FromStream(stream);
}
SetUpTree();
@@ -76,10 +77,10 @@ namespace PckStudio.Forms.Editor
treeView1.Nodes.Clear();
foreach (var category in audioFile.Categories)
{
- if(category.audioType == PCKAudioFile.AudioCategory.EAudioType.Creative)
+ if(category.audioType == PckAudioFile.AudioCategory.EAudioType.Creative)
{
if (category.Name == "include_overworld" &&
- audioFile.TryGetCategory(PCKAudioFile.AudioCategory.EAudioType.Overworld, out PCKAudioFile.AudioCategory overworldCategory))
+ audioFile.TryGetCategory(PckAudioFile.AudioCategory.EAudioType.Overworld, out PckAudioFile.AudioCategory overworldCategory))
{
foreach (var name in category.SongNames.ToList())
{
@@ -95,7 +96,7 @@ namespace PckStudio.Forms.Editor
treeNode.Tag = category;
treeView1.Nodes.Add(treeNode);
}
- playOverworldInCreative.Enabled = audioFile.HasCategory(PCKAudioFile.AudioCategory.EAudioType.Creative);
+ playOverworldInCreative.Enabled = audioFile.HasCategory(PckAudioFile.AudioCategory.EAudioType.Creative);
treeView1.EndUpdate();
}
@@ -120,7 +121,7 @@ namespace PckStudio.Forms.Editor
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
treeView2.Nodes.Clear();
- if (e.Node.Tag is PCKAudioFile.AudioCategory category)
+ if (e.Node.Tag is PckAudioFile.AudioCategory category)
foreach (var name in category.SongNames)
{
treeView2.Nodes.Add(name);
@@ -140,7 +141,7 @@ namespace PckStudio.Forms.Editor
var category = audioFile.GetCategory(GetCategoryId(add.SelectedItem));
- if (GetCategoryId(add.SelectedItem) == PCKAudioFile.AudioCategory.EAudioType.Creative)
+ if (GetCategoryId(add.SelectedItem) == PckAudioFile.AudioCategory.EAudioType.Creative)
{
playOverworldInCreative.Visible = true;
playOverworldInCreative.Checked = false;
@@ -160,7 +161,7 @@ namespace PckStudio.Forms.Editor
private void addEntryMenuItem_Click(object sender, EventArgs e)
{
- if (treeView1.SelectedNode is TreeNode t && t.Tag is PCKAudioFile.AudioCategory)
+ if (treeView1.SelectedNode is TreeNode t && t.Tag is PckAudioFile.AudioCategory)
{
if (!parent.CreateDataFolder()) return;
@@ -181,7 +182,7 @@ namespace PckStudio.Forms.Editor
if (treeView1.SelectedNode is TreeNode main &&
audioFile.RemoveCategory(GetCategoryId(treeView1.SelectedNode.Text)))
{
- if(GetCategoryId(treeView1.SelectedNode.Text) == PCKAudioFile.AudioCategory.EAudioType.Creative)
+ if(GetCategoryId(treeView1.SelectedNode.Text) == PckAudioFile.AudioCategory.EAudioType.Creative)
{
playOverworldInCreative.Visible = false;
playOverworldInCreative.Checked = false;
@@ -205,7 +206,7 @@ namespace PckStudio.Forms.Editor
private void removeEntryMenuItem_Click(object sender, EventArgs e)
{
- if (treeView2.SelectedNode != null && treeView1.SelectedNode.Tag is PCKAudioFile.AudioCategory category)
+ if (treeView2.SelectedNode != null && treeView1.SelectedNode.Tag is PckAudioFile.AudioCategory category)
{
category.SongNames.Remove(treeView2.SelectedNode.Text);
treeView2.SelectedNode.Remove();
@@ -260,7 +261,7 @@ namespace PckStudio.Forms.Editor
}
else if (user_prompt == DialogResult.No)
{
- if (treeView1.SelectedNode is TreeNode node && node.Tag is PCKAudioFile.AudioCategory cat)
+ if (treeView1.SelectedNode is TreeNode node && node.Tag is PckAudioFile.AudioCategory cat)
{
//adds song without affecting the binka file
cat.SongNames.Add(songName);
@@ -317,7 +318,7 @@ namespace PckStudio.Forms.Editor
}
// this is repeated again becuase this is meant to prevent any files that fail to convert from being added to the category
- if (treeView1.SelectedNode is TreeNode t && t.Tag is PCKAudioFile.AudioCategory category)
+ if (treeView1.SelectedNode is TreeNode t && t.Tag is PckAudioFile.AudioCategory category)
{
category.SongNames.Add(songName);
treeView2.Nodes.Add(songName);
@@ -344,15 +345,15 @@ namespace PckStudio.Forms.Editor
private void saveToolStripMenuItem1_Click(object sender, EventArgs e)
{
- if (!audioFile.HasCategory(PCKAudioFile.AudioCategory.EAudioType.Overworld) ||
- !audioFile.HasCategory(PCKAudioFile.AudioCategory.EAudioType.Nether) ||
- !audioFile.HasCategory(PCKAudioFile.AudioCategory.EAudioType.End))
+ if (!audioFile.HasCategory(PckAudioFile.AudioCategory.EAudioType.Overworld) ||
+ !audioFile.HasCategory(PckAudioFile.AudioCategory.EAudioType.Nether) ||
+ !audioFile.HasCategory(PckAudioFile.AudioCategory.EAudioType.End))
{
MessageBox.Show("Your changes were not saved. The game will crash when loading your pack if the Overworld, Nether and End categories don't all exist with at least one valid song.", "Mandatory Categories Missing");
return;
}
- PCKAudioFile.AudioCategory overworldCategory = audioFile.GetCategory(PCKAudioFile.AudioCategory.EAudioType.Overworld);
+ PckAudioFile.AudioCategory overworldCategory = audioFile.GetCategory(PckAudioFile.AudioCategory.EAudioType.Overworld);
bool songs_missing = false;
foreach (var category in audioFile.Categories)
@@ -374,7 +375,7 @@ namespace PckStudio.Forms.Editor
}
category.Name = "";
- if (playOverworldInCreative.Checked && category.audioType == PCKAudioFile.AudioCategory.EAudioType.Creative)
+ if (playOverworldInCreative.Checked && category.audioType == PckAudioFile.AudioCategory.EAudioType.Creative)
{
foreach (var name in overworldCategory.SongNames)
{
@@ -396,7 +397,8 @@ namespace PckStudio.Forms.Editor
using (var stream = new MemoryStream())
{
- PCKAudioFileWriter.Write(stream, audioFile, _isLittleEndian);
+ var writer = new PckAudioFileWriter(audioFile, _isLittleEndian ? OMI.Endianness.LittleEndian : OMI.Endianness.BigEndian);
+ writer.WriteToStream(stream);
audioPCK.SetData(stream.ToArray());
}
DialogResult = DialogResult.OK;
@@ -560,7 +562,7 @@ namespace PckStudio.Forms.Editor
private void convertToWAVToolStripMenuItem_Click(object sender, EventArgs e)
{
- if (treeView2.SelectedNode != null && treeView1.SelectedNode.Tag is PCKAudioFile.AudioCategory)
+ if (treeView2.SelectedNode != null && treeView1.SelectedNode.Tag is PckAudioFile.AudioCategory)
{
Binka.ToWav(Path.Combine(parent.GetDataPath(), treeView2.SelectedNode.Text + ".binka"), Path.Combine(parent.GetDataPath()));
}
@@ -568,7 +570,7 @@ namespace PckStudio.Forms.Editor
private void setCategoryToolStripMenuItem_Click(object sender, EventArgs e)
{
- if (!(treeView1.SelectedNode is TreeNode t && t.Tag is PCKAudioFile.AudioCategory category)) return;
+ if (!(treeView1.SelectedNode is TreeNode t && t.Tag is PckAudioFile.AudioCategory category)) return;
string[] available = Categories.FindAll(str => !audioFile.HasCategory(GetCategoryId(str))).ToArray();
if (available.Length > 0)
@@ -579,7 +581,7 @@ namespace PckStudio.Forms.Editor
audioFile.RemoveCategory(category.audioType);
- audioFile.AddCategory(category.parameterType, GetCategoryId(add.SelectedItem), category.audioType == PCKAudioFile.AudioCategory.EAudioType.Overworld && playOverworldInCreative.Checked ? "include_overworld" : "");
+ audioFile.AddCategory(category.parameterType, GetCategoryId(add.SelectedItem), category.audioType == PckAudioFile.AudioCategory.EAudioType.Overworld && playOverworldInCreative.Checked ? "include_overworld" : "");
var newCategory = audioFile.GetCategory(GetCategoryId(add.SelectedItem));
diff --git a/PCK-Studio/Forms/Editor/AudioEditor.resx b/PCK-Studio/Forms/Editor/AudioEditor.resx
index ea023737..e032d6ce 100644
--- a/PCK-Studio/Forms/Editor/AudioEditor.resx
+++ b/PCK-Studio/Forms/Editor/AudioEditor.resx
@@ -125,32 +125,6 @@
127, 8
-
-
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAABSSURBVDhP5c0x
- DsAgDENRxt7/wmkNSpRGf0CCCZAegxNMM7MlGMp3dIU6dxhKf/QMNxRogeQC8ivw5Vn7C0heJlFA+kL5
- jWAohxRkde4wnGftBS90axNmphIGAAAAAElFTkSuQmCC
-
-
-
- 168, 22
-
-
- Add Category
-
-
- 168, 22
-
-
- Remove Category
-
-
- 168, 22
-
-
- Set Category
-
169, 70
@@ -172,7 +146,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADk
- MAAAAk1TRnQBSQFMAgEBCQEAAaABAAGgAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
+ MAAAAk1TRnQBSQFMAgEBCQEAAagBAAGoAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABMAMAAQEBAAEgBgABMBIAAzgB/wM1Af8DNQH/AzMB/wMwAf8DLwH/Ay0B/wMtAf8DJAH/AzsB/wM4
Af8DNQH/Ay0B/wMnAf8DNgH/AzIB/8AAAzgB/wN/Af8DeQH/A3kB/wN5Af8DcQH/A3EB/wN5Af8DeQH/
A3EB/wNxAf8DcQH/A3kB/wN5Af8DfwH/AzIB/8AAAzIB/wN2Af8DsAH/A7AB/wOvAf8DrwH/A68B/wOo
@@ -410,12 +384,68 @@
5
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAABSSURBVDhP5c0x
+ DsAgDENRxt7/wmkNSpRGf0CCCZAegxNMM7MlGMp3dIU6dxhKf/QMNxRogeQC8ivw5Vn7C0heJlFA+kL5
+ jWAohxRkde4wnGftBS90axNmphIGAAAAAElFTkSuQmCC
+
+
+
+ 168, 22
+
+
+ Add Category
+
+
+ 168, 22
+
+
+ Remove Category
+
+
+ 168, 22
+
+
+ Set Category
+
19, 8
False
+
+ 20, 60
+
+
+ 410, 24
+
+
+ 11
+
+
+ menuStrip1
+
+
+ menuStrip
+
+
+ System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 7
+
+
+ 37, 20
+
+
+ File
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
@@ -432,11 +462,11 @@
Save
-
- 37, 20
+
+ 46, 20
-
- File
+
+ Tools
220, 22
@@ -468,11 +498,11 @@
Organize Tracks
-
- 46, 20
+
+ 44, 20
-
- Tools
+
+ Help
243, 22
@@ -504,36 +534,6 @@
BINKA Compression
-
- 44, 20
-
-
- Help
-
-
- 20, 60
-
-
- 410, 24
-
-
- 11
-
-
- menuStrip1
-
-
- menuStrip
-
-
- System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- $this
-
-
- 7
-
Top, Bottom, Left, Right
@@ -549,25 +549,31 @@
- 173, 22
+ 180, 22
Add Entry
- 173, 22
+ 180, 22
Remove Entry
- 173, 22
+ 180, 22
Verify File Location
+
+ 180, 22
+
+
+ Convert To WAV
+
- 174, 70
+ 181, 114
contextMenuStrip2
@@ -821,6 +827,12 @@
System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ convertToWAVToolStripMenuItem
+
+
+ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
AudioEditor
diff --git a/PCK-Studio/Forms/Editor/BehaviourEditor.cs b/PCK-Studio/Forms/Editor/BehaviourEditor.cs
index 102f5800..214151fc 100644
--- a/PCK-Studio/Forms/Editor/BehaviourEditor.cs
+++ b/PCK-Studio/Forms/Editor/BehaviourEditor.cs
@@ -28,13 +28,13 @@ namespace PckStudio.Forms.Editor
{
TreeNode EntryNode = new TreeNode(entry.name);
- foreach (JObject content in Utilities.BehaviourUtil.entityData["entities"].Children())
+ foreach (JObject content in Utilities.BehaviourResources.entityData["behaviours"].Children())
{
var prop = content.Properties().FirstOrDefault(prop => prop.Name == entry.name);
if (prop is JProperty)
{
EntryNode.Text = (string)prop.Value;
- EntryNode.ImageIndex = Utilities.BehaviourUtil.entityData["entities"].Children().ToList().IndexOf(content);
+ EntryNode.ImageIndex = Utilities.BehaviourResources.entityData["behaviours"].Children().ToList().IndexOf(content);
EntryNode.SelectedImageIndex = EntryNode.ImageIndex;
break;
}
@@ -68,7 +68,7 @@ namespace PckStudio.Forms.Editor
}
treeView1.ImageList = new ImageList();
- treeView1.ImageList.Images.AddRange(Utilities.BehaviourUtil.entityImages);
+ treeView1.ImageList.Images.AddRange(Utilities.BehaviourResources.entityImages);
treeView1.ImageList.ColorDepth = ColorDepth.Depth32Bit;
SetUpTree();
}
@@ -149,7 +149,7 @@ namespace PckStudio.Forms.Editor
if (treeView1.SelectedNode == null) return;
if (!(treeView1.SelectedNode.Tag is BehaviourFile.RiderPositionOverride entry)) return;
- var diag = new Additional_Popups.EntityForms.AddEntry(Utilities.BehaviourUtil.entityData, Utilities.BehaviourUtil.entityImages);
+ var diag = new Additional_Popups.EntityForms.AddEntry(Utilities.BehaviourResources.entityData, Utilities.BehaviourResources.entityImages);
diag.acceptBtn.Text = "Save";
if (diag.ShowDialog() == DialogResult.OK)
@@ -164,13 +164,13 @@ namespace PckStudio.Forms.Editor
entry.name = diag.SelectedEntity;
treeView1.SelectedNode.Tag = entry;
- foreach (JObject content in Utilities.BehaviourUtil.entityData["entities"].Children())
+ foreach (JObject content in Utilities.BehaviourResources.entityData["behaviours"].Children())
{
var prop = content.Properties().FirstOrDefault(prop => prop.Name == entry.name);
if (prop is JProperty)
{
treeView1.SelectedNode.Text = (string)prop.Value;
- treeView1.SelectedNode.ImageIndex = Utilities.BehaviourUtil.entityData["entities"].Children().ToList().IndexOf(content);
+ treeView1.SelectedNode.ImageIndex = Utilities.BehaviourResources.entityData["behaviours"].Children().ToList().IndexOf(content);
treeView1.SelectedNode.SelectedImageIndex = treeView1.SelectedNode.ImageIndex;
break;
}
@@ -203,7 +203,7 @@ namespace PckStudio.Forms.Editor
private void addNewEntryToolStripMenuItem_Click(object sender, EventArgs e)
{
- var diag = new AddEntry(Utilities.BehaviourUtil.entityData, Utilities.BehaviourUtil.entityImages);
+ var diag = new AddEntry(Utilities.BehaviourResources.entityData, Utilities.BehaviourResources.entityImages);
if(diag.ShowDialog() == DialogResult.OK)
{
@@ -217,13 +217,13 @@ namespace PckStudio.Forms.Editor
TreeNode NewOverrideNode = new TreeNode(NewOverride.name);
NewOverrideNode.Tag = NewOverride;
- foreach (JObject content in Utilities.BehaviourUtil.entityData["entities"].Children())
+ foreach (JObject content in Utilities.BehaviourResources.entityData["behaviours"].Children())
{
var prop = content.Properties().FirstOrDefault(prop => prop.Name == NewOverride.name);
if (prop is JProperty)
{
NewOverrideNode.Text = (string)prop.Value;
- NewOverrideNode.ImageIndex = Utilities.BehaviourUtil.entityData["entities"].Children().ToList().IndexOf(content);
+ NewOverrideNode.ImageIndex = Utilities.BehaviourResources.entityData["behaviours"].Children().ToList().IndexOf(content);
NewOverrideNode.SelectedImageIndex = NewOverrideNode.ImageIndex;
break;
}
diff --git a/PCK-Studio/Forms/Utilities/Skins/BoxEditor.Designer.cs b/PCK-Studio/Forms/Editor/BoxEditor.Designer.cs
similarity index 99%
rename from PCK-Studio/Forms/Utilities/Skins/BoxEditor.Designer.cs
rename to PCK-Studio/Forms/Editor/BoxEditor.Designer.cs
index 51426dda..4fdcdbc3 100644
--- a/PCK-Studio/Forms/Utilities/Skins/BoxEditor.Designer.cs
+++ b/PCK-Studio/Forms/Editor/BoxEditor.Designer.cs
@@ -1,4 +1,4 @@
-namespace PckStudio.Forms.Utilities.Skins
+namespace PckStudio.Forms.Editor
{
partial class BoxEditor
{
diff --git a/PCK-Studio/Forms/Editor/BoxEditor.cs b/PCK-Studio/Forms/Editor/BoxEditor.cs
new file mode 100644
index 00000000..771f3bc6
--- /dev/null
+++ b/PCK-Studio/Forms/Editor/BoxEditor.cs
@@ -0,0 +1,52 @@
+using System;
+using System.Windows.Forms;
+using PckStudio.Classes.Models;
+
+namespace PckStudio.Forms.Editor
+{
+ public partial class BoxEditor : MetroFramework.Forms.MetroForm
+ {
+ public string Result;
+
+ public BoxEditor(string inBOX, bool hasInflation)
+ {
+ InitializeComponent();
+
+ inflationUpDown.Enabled = hasInflation;
+
+ SkinBox box = new SkinBox(inBOX);
+
+ if (string.IsNullOrEmpty(box.Type) || !parentComboBox.Items.Contains(box.Type))
+ {
+ throw new Exception("Failed to parse BOX value");
+ }
+
+ parentComboBox.SelectedItem = parentComboBox.Items[parentComboBox.Items.IndexOf(box.Type)];
+ PosXUpDown.Value = (decimal)box.Pos.X;
+ PosYUpDown.Value = (decimal)box.Pos.Y;
+ PosZUpDown.Value = (decimal)box.Pos.Z;
+ SizeXUpDown.Value = (decimal)box.Size.X;
+ SizeYUpDown.Value = (decimal)box.Size.Y;
+ SizeZUpDown.Value = (decimal)box.Size.Z;
+ uvXUpDown.Value = (decimal)box.U;
+ uvYUpDown.Value = (decimal)box.V;
+ armorCheckBox.Checked = box.HideWithArmor;
+ mirrorCheckBox.Checked = box.Mirror;
+ inflationUpDown.Value = (decimal)box.Scale;
+ }
+
+ private void saveButton_Click(object sender, EventArgs e)
+ {
+ Result =
+ $"{parentComboBox.SelectedItem} " +
+ $"{PosXUpDown.Value} {PosYUpDown.Value} {PosZUpDown.Value} " +
+ $"{SizeXUpDown.Value} {SizeYUpDown.Value} {SizeZUpDown.Value} " +
+ $"{uvXUpDown.Value} {uvYUpDown.Value} " +
+ $"{Convert.ToInt32(armorCheckBox.Checked)} " +
+ $"{Convert.ToInt32(mirrorCheckBox.Checked)} " +
+ $"{inflationUpDown.Value}";
+ DialogResult = DialogResult.OK;
+ Close();
+ }
+ }
+}
diff --git a/PCK-Studio/Forms/Utilities/Skins/BoxEditor.resx b/PCK-Studio/Forms/Editor/BoxEditor.resx
similarity index 100%
rename from PCK-Studio/Forms/Utilities/Skins/BoxEditor.resx
rename to PCK-Studio/Forms/Editor/BoxEditor.resx
diff --git a/PCK-Studio/Forms/Editor/LOCEditor.Designer.cs b/PCK-Studio/Forms/Editor/LOCEditor.Designer.cs
index 014080b2..24fedbf7 100644
--- a/PCK-Studio/Forms/Editor/LOCEditor.Designer.cs
+++ b/PCK-Studio/Forms/Editor/LOCEditor.Designer.cs
@@ -40,7 +40,7 @@
this.menuStrip = new System.Windows.Forms.MenuStrip();
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.locSort = new PckStudio.Forms.MyTablePanel();
+ this.locSort = new System.Windows.Forms.TableLayoutPanel();
this.buttonReplaceAll = new System.Windows.Forms.Button();
this.dataGridViewLocEntryData = new System.Windows.Forms.DataGridView();
this.textBoxReplaceAll = new System.Windows.Forms.TextBox();
@@ -202,7 +202,7 @@
private System.Windows.Forms.ToolStripMenuItem addDisplayIDToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem deleteDisplayIDToolStripMenuItem;
private System.Windows.Forms.TextBox textBoxReplaceAll;
- private PckStudio.Forms.MyTablePanel locSort;
+ private System.Windows.Forms.TableLayoutPanel locSort;
private System.Windows.Forms.Button buttonReplaceAll;
private MetroFramework.Controls.MetroContextMenu GridContextMenu;
private System.Windows.Forms.ToolStripMenuItem addLanguageToolStripMenuItem;
diff --git a/PCK-Studio/Forms/Editor/LOCEditor.cs b/PCK-Studio/Forms/Editor/LOCEditor.cs
index 82b317e3..464bbe09 100644
--- a/PCK-Studio/Forms/Editor/LOCEditor.cs
+++ b/PCK-Studio/Forms/Editor/LOCEditor.cs
@@ -143,7 +143,8 @@ namespace PckStudio.Forms.Editor
{
using (var ms = new MemoryStream())
{
- LOCFileWriter.Write(ms, currentLoc);
+ var writer = new LOCFileWriter(currentLoc, 2);
+ writer.WriteToStream(ms);
_file.SetData(ms.ToArray());
}
DialogResult = DialogResult.OK;
diff --git a/PCK-Studio/Forms/Editor/MaterialsEditor.cs b/PCK-Studio/Forms/Editor/MaterialsEditor.cs
index 1a3ea40c..33f421d5 100644
--- a/PCK-Studio/Forms/Editor/MaterialsEditor.cs
+++ b/PCK-Studio/Forms/Editor/MaterialsEditor.cs
@@ -15,7 +15,7 @@ namespace PckStudio.Forms.Editor
{
public partial class MaterialsEditor : MetroForm
{
- // Behaviours File Format research by Miku and MattNL
+ // Materials File Format research by PhoenixARC
private readonly PckFile.FileData _file;
MaterialContainer materialFile;
@@ -27,13 +27,13 @@ namespace PckStudio.Forms.Editor
{
TreeNode EntryNode = new TreeNode(entry.Name);
- foreach (JObject content in Utilities.MaterialUtil.entityData["entities"].Children())
+ foreach (JObject content in Utilities.MaterialResources.entityData["materials"].Children())
{
var prop = content.Properties().FirstOrDefault(prop => prop.Name == entry.Name);
if (prop is JProperty)
{
EntryNode.Text = (string)prop.Value;
- EntryNode.ImageIndex = Utilities.MaterialUtil.entityData["entities"].Children().ToList().IndexOf(content);
+ EntryNode.ImageIndex = Utilities.MaterialResources.entityData["materials"].Children().ToList().IndexOf(content);
EntryNode.SelectedImageIndex = EntryNode.ImageIndex;
break;
}
@@ -58,7 +58,7 @@ namespace PckStudio.Forms.Editor
}
treeView1.ImageList = new ImageList();
- Utilities.MaterialUtil.entityImages.ToList().ForEach(img => treeView1.ImageList.Images.Add(img));
+ Utilities.MaterialResources.entityImages.ToList().ForEach(img => treeView1.ImageList.Images.Add(img));
treeView1.ImageList.ColorDepth = ColorDepth.Depth32Bit;
SetUpTree();
}
@@ -132,7 +132,7 @@ namespace PckStudio.Forms.Editor
private void addToolStripMenuItem_Click(object sender, EventArgs e)
{
- var diag = new Additional_Popups.EntityForms.AddEntry(Utilities.MaterialUtil.entityData, Utilities.MaterialUtil.entityImages);
+ var diag = new Additional_Popups.EntityForms.AddEntry(Utilities.MaterialResources.entityData, Utilities.MaterialResources.entityImages);
if (diag.ShowDialog() == DialogResult.OK)
{
@@ -146,13 +146,13 @@ namespace PckStudio.Forms.Editor
TreeNode NewEntryNode = new TreeNode(NewEntry.Name);
NewEntryNode.Tag = NewEntry;
- foreach (JObject content in Utilities.MaterialUtil.entityData["entities"].Children())
+ foreach (JObject content in Utilities.MaterialResources.entityData["materials"].Children())
{
var prop = content.Properties().FirstOrDefault(prop => prop.Name == NewEntry.Name);
if (prop is JProperty)
{
NewEntryNode.Text = (string)prop.Value;
- NewEntryNode.ImageIndex = Utilities.MaterialUtil.entityData["entities"].Children().ToList().IndexOf(content);
+ NewEntryNode.ImageIndex = Utilities.MaterialResources.entityData["materials"].Children().ToList().IndexOf(content);
NewEntryNode.SelectedImageIndex = NewEntryNode.ImageIndex;
break;
}
diff --git a/PCK-Studio/Forms/Editor/ModelsEditor.cs b/PCK-Studio/Forms/Editor/ModelsEditor.cs
index 39a5bb65..b28fc628 100644
--- a/PCK-Studio/Forms/Editor/ModelsEditor.cs
+++ b/PCK-Studio/Forms/Editor/ModelsEditor.cs
@@ -13,6 +13,7 @@ using OMI.Formats.Model;
using OMI.Formats.Pck;
using OMI.Workers.Model;
using OMI.Formats.Behaviour;
+using PckStudio.Forms.Utilities;
namespace PckStudio.Forms.Editor
{
@@ -30,13 +31,13 @@ namespace PckStudio.Forms.Editor
{
TreeNode EntryNode = new TreeNode(entry.Name);
- foreach (JObject content in Utilities.ModelsUtil.entityData["entities"].Children())
+ foreach (JObject content in ModelsResources.entityData["entities"].Children())
{
var prop = content.Properties().FirstOrDefault(prop => prop.Name == entry.Name);
if (prop is JProperty)
{
EntryNode.Text = (string)prop.Value;
- EntryNode.ImageIndex = Utilities.ModelsUtil.entityData["entities"].Children().ToList().IndexOf(content);
+ EntryNode.ImageIndex = ModelsResources.entityData["entities"].Children().ToList().IndexOf(content);
EntryNode.SelectedImageIndex = EntryNode.ImageIndex;
break;
}
@@ -79,7 +80,7 @@ namespace PckStudio.Forms.Editor
}
treeView1.ImageList = new ImageList();
- treeView1.ImageList.Images.AddRange(Utilities.ModelsUtil.entityImages);
+ treeView1.ImageList.Images.AddRange(ModelsResources.entityImages);
treeView1.ImageList.ColorDepth = ColorDepth.Depth32Bit;
SetUpTree();
}
@@ -100,7 +101,7 @@ namespace PckStudio.Forms.Editor
if (treeView1.SelectedNode is null || treeView1.SelectedNode.Tag is not Model entry)
return;
- var diag = new AddEntry(Utilities.ModelsUtil.entityData, Utilities.ModelsUtil.entityImages);
+ var diag = new AddEntry(ModelsResources.entityData, ModelsResources.entityImages);
diag.acceptBtn.Text = "Save";
if (diag.ShowDialog() == DialogResult.OK)
@@ -117,13 +118,13 @@ namespace PckStudio.Forms.Editor
entry.Name = diag.SelectedEntity;
treeView1.SelectedNode.Tag = entry;
- foreach (JObject content in Utilities.ModelsUtil.entityData["entities"].Children())
+ foreach (JObject content in ModelsResources.entityData["entities"].Children())
{
var prop = content.Properties().FirstOrDefault(prop => prop.Name == entry.Name);
if (prop is JProperty)
{
treeView1.SelectedNode.Text = (string)prop.Value;
- treeView1.SelectedNode.ImageIndex = Utilities.ModelsUtil.entityData["entities"].Children().ToList().IndexOf(content);
+ treeView1.SelectedNode.ImageIndex = ModelsResources.entityData["entities"].Children().ToList().IndexOf(content);
treeView1.SelectedNode.SelectedImageIndex = treeView1.SelectedNode.ImageIndex;
break;
}
@@ -153,7 +154,7 @@ namespace PckStudio.Forms.Editor
private void addNewEntryToolStripMenuItem_Click(object sender, EventArgs e)
{
- var diag = new AddEntry(Utilities.ModelsUtil.entityData, Utilities.ModelsUtil.entityImages);
+ var diag = new AddEntry(ModelsResources.entityData, ModelsResources.entityImages);
if(diag.ShowDialog() == DialogResult.OK)
{
@@ -173,13 +174,13 @@ namespace PckStudio.Forms.Editor
TreeNode modelNode = new TreeNode(newModel.Name);
modelNode.Tag = newModel;
- foreach (JObject content in Utilities.ModelsUtil.entityData["entities"].Children())
+ foreach (JObject content in ModelsResources.entityData["entities"].Children())
{
var prop = content.Properties().FirstOrDefault(prop => prop.Name == newModel.Name);
if (prop is JProperty)
{
modelNode.Text = (string)prop.Value;
- modelNode.ImageIndex = Utilities.ModelsUtil.entityData["entities"].Children().ToList().IndexOf(content);
+ modelNode.ImageIndex = ModelsResources.entityData["entities"].Children().ToList().IndexOf(content);
modelNode.SelectedImageIndex = modelNode.ImageIndex;
break;
}
diff --git a/PCK-Studio/Forms/Skins-And-Textures/addnewskin.cs b/PCK-Studio/Forms/Skins-And-Textures/addnewskin.cs
index f66a67e1..b45db1c7 100644
--- a/PCK-Studio/Forms/Skins-And-Textures/addnewskin.cs
+++ b/PCK-Studio/Forms/Skins-And-Textures/addnewskin.cs
@@ -5,9 +5,10 @@ using System.Windows.Forms;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using PckStudio.Classes.Utils;
-using PckStudio.Classes._3ds.Utils;
using OMI.Formats.Languages;
using OMI.Formats.Pck;
+using PckStudio.Forms.Editor;
+using PckStudio.Classes.IO._3DST;
namespace PckStudio
{
@@ -86,7 +87,7 @@ namespace PckStudio
//comboBoxSkinType.Text = "Steve (64x64)";
skinType = eSkinType._64x64HD;
}
- else if (img.Width == img.Height / 2) // 64x32 HD
+ else if (img.Height == img.Width / 2) // 64x32 HD
{
anim.SetFlag(ANIM_EFFECTS.RESOLUTION_64x64, false);
anim.SetFlag(ANIM_EFFECTS.SLIM_MODEL, false);
@@ -282,14 +283,10 @@ namespace PckStudio
if (MessageBox.Show("Create your own custom skin model?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1) != DialogResult.Yes)
return;
- PictureBox preview = new PictureBox(); //Creates new picture for generated model preview
- generateModel generate = new generateModel(generatedModel, preview);
+ generateModel generate = new generateModel(generatedModel, Properties.Resources.classic_template);
if (generate.ShowDialog() == DialogResult.OK) //Opens Model Generator Dialog
{
- //comboBoxSkinType.Items.Add("Custom"); //Adds skin preset to combobox
- //comboBoxSkinType.Text = "Custom"; //Sets combo to custom preset
- displayBox.Image = preview.Image; //Sets displayBox to created model preview
try
{
using (FileStream stream = File.OpenRead(Application.StartupPath + "\\temp.png"))
@@ -346,7 +343,8 @@ namespace PckStudio
{
using (var fs = File.OpenRead(ofdd.FileName))
{
- CheckImage(_3DSUtil.GetImageFrom3DST(fs));
+ var reader = new _3DSTextureReader();
+ CheckImage(reader.FromStream(fs));
textSkinName.Text = Path.GetFileNameWithoutExtension(ofdd.FileName);
}
return;
@@ -365,10 +363,10 @@ namespace PckStudio
private void buttonAnimGen_Click(object sender, EventArgs e)
{
- using Forms.Utilities.Skins.ANIMEditor diag = new Forms.Utilities.Skins.ANIMEditor(anim.ToString());
- if (diag.ShowDialog(this) == DialogResult.OK && diag.saved)
+ using ANIMEditor diag = new ANIMEditor(anim.ToString());
+ if (diag.ShowDialog(this) == DialogResult.OK)
{
- anim = new SkinANIM(diag.outANIM);
+ anim = diag.ResultAnim;
DrawModel();
}
}
diff --git a/PCK-Studio/Forms/Skins-And-Textures/generateModel.Designer.cs b/PCK-Studio/Forms/Skins-And-Textures/generateModel.Designer.cs
index 06ab612b..4d0b3833 100644
--- a/PCK-Studio/Forms/Skins-And-Textures/generateModel.Designer.cs
+++ b/PCK-Studio/Forms/Skins-And-Textures/generateModel.Designer.cs
@@ -43,7 +43,7 @@
this.tabBody = new System.Windows.Forms.TabControl();
this.tabArmor = new System.Windows.Forms.TabPage();
this.tabPage1 = new System.Windows.Forms.TabPage();
- this.myTablePanel2 = new PckStudio.Forms.MyTablePanel();
+ this.myTablePanel2 = new System.Windows.Forms.TableLayoutPanel();
this.offsetArms = new System.Windows.Forms.TextBox();
this.label14 = new System.Windows.Forms.Label();
this.offsetBody = new System.Windows.Forms.TextBox();
@@ -370,8 +370,6 @@
// checkTextureGenerate
//
resources.ApplyResources(this.checkTextureGenerate, "checkTextureGenerate");
- this.checkTextureGenerate.Checked = true;
- this.checkTextureGenerate.CheckState = System.Windows.Forms.CheckState.Checked;
this.checkTextureGenerate.Name = "checkTextureGenerate";
this.checkTextureGenerate.Theme = MetroFramework.MetroThemeStyle.Dark;
this.checkTextureGenerate.UseSelectable = true;
@@ -503,13 +501,13 @@
//
resources.ApplyResources(this.Z, "Z");
//
- // Width
+ // _Width
//
- resources.ApplyResources(this._Width, "Width");
+ resources.ApplyResources(this._Width, "_Width");
//
- // Height
+ // _Height
//
- resources.ApplyResources(this._Height, "Height");
+ resources.ApplyResources(this._Height, "_Height");
//
// Length
//
@@ -637,7 +635,7 @@
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.TabControl tabBody;
private System.Windows.Forms.TabPage tabPage1;
- private Forms.MyTablePanel myTablePanel2;
+ private System.Windows.Forms.TableLayoutPanel myTablePanel2;
private System.Windows.Forms.TextBox offsetArms;
private System.Windows.Forms.Label label14;
private System.Windows.Forms.TextBox offsetBody;
diff --git a/PCK-Studio/Forms/Skins-And-Textures/generateModel.cs b/PCK-Studio/Forms/Skins-And-Textures/generateModel.cs
index 2a87eeba..f5ea6374 100644
--- a/PCK-Studio/Forms/Skins-And-Textures/generateModel.cs
+++ b/PCK-Studio/Forms/Skins-And-Textures/generateModel.cs
@@ -4,20 +4,22 @@ using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Linq;
+using System.Numerics;
using System.Windows.Forms;
using System.Collections;
using System.IO;
using Newtonsoft.Json;
using MetroFramework.Forms;
-using PckStudio.Classes.FileTypes;
+using PckStudio.Classes.Models;
using System.Text.RegularExpressions;
using OMI.Formats.Pck;
namespace PckStudio
{
+ [Obsolete]
public partial class generateModel : MetroForm
{
- PictureBox skinPreview;
+ PictureBox skinPreview = new PictureBox();
eViewDirection direction = eViewDirection.front;
@@ -46,12 +48,24 @@ namespace PckStudio
// 64x64 Overlay Parts
"HEADWEAR",
"JACKET",
- "SHOULDER0",
- "SHOULDER1",
"SLEEVE0",
"SLEEVE1",
+ "WAIST",
"PANTS0",
"PANTS1",
+ "SOCK0",
+ "SOCK1",
+
+ // Armor Parts
+ "HELMET",
+ "CHEST", "BODYARMOR",
+ "SHOULDER0", "ARMARMOR0",
+ "SHOULDER1", "ARMARMOR0",
+ "BELT",
+ "LEGGING0",
+ "LEGGING1",
+ "BOOT0",
+ "BOOT1",
};
private static readonly string[] ValidModelOffsetTypes = new string[]
@@ -66,50 +80,22 @@ namespace PckStudio
// Armor Offsets
"HELMET",
- "CHEST",
+ "CHEST", "BODYARMOR",
+ "SHOULDER0", "ARMARMOR0",
+ "SHOULDER1", "ARMARMOR0",
+ "BELT",
+ "LEGGING0",
+ "LEGGING1",
"BOOT0",
"BOOT1",
- "WAIST",
- "PANTS0",
- "PANTS1",
"TOOL0",
"TOOL1",
};
- List modelParts = new List();
+ List modelBoxes = new List();
List modelOffsets = new List();
- class ModelPart
- {
- public string Type;
- public float X, Y, Z;
- public float Width;
- public float Height;
- public float Length;
- public int U, V;
-
- public ModelPart(string type, float x, float y, float z, float width, float height, float length, int u, int v)
- {
- Type = type;
- X = x;
- Y = y;
- Z = z;
- Width = width;
- Height = height;
- Length = length;
- U = u;
- V = v;
- }
-
- public ValueTuple ToProperty()
- {
- string value = $"{Type} {X} {Y} {Z} {Width} {Height} {Length} {U} {V}";
- return new ValueTuple("BOX", value.Replace(',', '.'));
- }
-
- }
-
class ModelOffset
{
public string Name;
@@ -127,14 +113,13 @@ namespace PckStudio
}
}
-
- public generateModel(PckFile.PCKProperties skinProperties, PictureBox preview)
+ public generateModel(PckFile.PCKProperties skinProperties, Image texture)
{
InitializeComponent();
boxes = skinProperties;
- skinPreview = preview;
- if (texturePreview.Image == null)
- texturePreview.Image = new Bitmap(64, 64);
+ texturePreview.Image = texture;
+ comboParent.Items.Clear();
+ ValidModelBoxTypes.ToList().ForEach(p => comboParent.Items.Add(p));
loadData();
}
private static readonly Regex sWhitespace = new Regex(@"\s+");
@@ -152,56 +137,14 @@ namespace PckStudio
{
case "BOX":
{
- string[] Format = ReplaceWhitespace(property.Item2, ",").TrimEnd('\n', '\r', ' ').Split(',');
- if (Format.Length < 9)
- {
- Console.WriteLine($"'{property.Item1}' property has too few arguments: {property.Item2}");
- continue;
- }
- string name = Format[0];
+ SkinBox box = new SkinBox(property.Item2);
+
+ string name = box.Type;
if (ValidModelBoxTypes.Contains(name))
{
- // %10ls = name
- // %f
- // %f
- // %f
- // %f
- // %f
- // %f
- // %f
- // %f
- // %d
- // %d
- // %f
- try
- {
- float x = float.Parse(Format[1]);
- float y = float.Parse(Format[2]);
- float z = float.Parse(Format[3]);
- float sizeX = float.Parse(Format[4]);
- float sizeY = float.Parse(Format[5]);
- float sizeZ = float.Parse(Format[6]);
- int u = int.Parse(Format[7]);
- int v = int.Parse(Format[8]);
- modelParts.Add(new ModelPart(name, x, y, z, sizeX, sizeY, sizeZ, u, v));
- }
- catch (FormatException ex)
- {
- Console.WriteLine(ex.Message);
- MessageBox.Show("A Format Exception was thrown\nFailed to parse BOX value", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- catch (OverflowException ex)
- {
- Console.WriteLine(ex.Message);
- MessageBox.Show("An Overflow Exception was thrown\nFailed to parse BOX value", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- if (Format.Length >= 11)
- {
- string unk1 = Format[9];
- string unk2 = Format[10];
- Console.WriteLine($"{unk1} | {unk2}");
+ modelBoxes.Add(box);
}
+
comboParent.Enabled = true;
break;
}
@@ -260,52 +203,76 @@ namespace PckStudio
float legY = (displayBox.Height / 2) + 85; // -80;
float groundLevel = (displayBox.Height / 2) + 145;
graphics.DrawLine(Pens.White, 0, groundLevel, displayBox.Width, groundLevel);
+ float gfx_scale = texturePreview.Image.Width / 64; // used for displaying larger graphics properly; 64 is the base skin width for all models
+
// Chooses Render settings based on current direction
foreach (ListViewItem listViewItem in listViewBoxes.Items)
{
- if (!(listViewItem.Tag is ModelPart)) continue;
- ModelPart part = listViewItem.Tag as ModelPart;
+ if (!(listViewItem.Tag is SkinBox)) continue;
+ SkinBox part = listViewItem.Tag as SkinBox;
float x = displayBox.Width / 2;
float y = 0;
+
switch (direction)
{
case eViewDirection.front:
{
//Sets X & Y based on model part class
// listViewItem.Text -> part.Type
- // listViewItem.SubItems[1] -> part.X
- // listViewItem.SubItems[2] -> part.Y
- // listViewItem.SubItems[3] -> part.Z
- // listViewItem.SubItems[4] -> part.Width
- // listViewItem.SubItems[5] -> part.Height
- // listViewItem.SubItems[6] -> part.Length
+ // listViewItem.SubItems[1] -> part.Pos.X
+ // listViewItem.SubItems[2] -> part.Pos.Y
+ // listViewItem.SubItems[3] -> part.Pos.Z
+ // listViewItem.SubItems[4] -> part.Size.X
+ // listViewItem.SubItems[5] -> part.Size.Y
+ // listViewItem.SubItems[6] -> part.Size.Z
// listViewItem.SubItems[7] -> part.U
// listViewItem.SubItems[8] -> part.V
switch (part.Type)
{
case "HEAD":
+ case "HEADWEAR":
+ case "HELMET":
y = headbodyY + int.Parse(offsetHead.Text) * 5;
break;
case "BODY":
+ case "JACKET":
+ case "CHEST":
+ case "BODYARMOR":
+ case "BELT":
+ case "WAIST":
y = headbodyY + int.Parse(offsetBody.Text) * 5;
break;
case "ARM0":
+ case "ARMARMOR0":
+ case "SLEEVE0":
+ case "SHOULDER0":
x -= 25;
y = armY + int.Parse(offsetArms.Text) * 5;
break;
case "ARM1":
+ case "ARMARMOR1":
+ case "SLEEVE1":
+ case "SHOULDER1":
x += 25;
y = armY + int.Parse(offsetArms.Text) * 5;
break;
case "LEG0":
+ case "PANTS0":
+ case "SOCK0":
+ case "LEGGING0":
+ case "BOOT0":
x -= 10;
y = legY + int.Parse(offsetLegs.Text) * 5;
break;
case "LEG1":
+ case "PANTS1":
+ case "SOCK1":
+ case "LEGGING1":
+ case "BOOT1":
x += 10;
y = legY + int.Parse(offsetLegs.Text) * 5;
break;
@@ -315,20 +282,20 @@ namespace PckStudio
if (!checkTextureGenerate.Checked)
{
RectangleF destRect = new RectangleF(
- x + part.X * 5,
- y + part.Y * 5,
- part.Width * 5,
- part.Height * 5);
+ x + part.Pos.X * 5,
+ y + part.Pos.Y * 5,
+ part.Size.X * 5,
+ part.Size.Y * 5);
RectangleF srcRect = new RectangleF(
- part.U + part.Length,
- part.V + part.Length,
- part.Width,
- part.Height);
+ (part.U + part.Size.Z) * gfx_scale,
+ (part.V + part.Size.Z) * gfx_scale,
+ part.Size.X * gfx_scale,
+ part.Size.Y * gfx_scale);
graphics.DrawImage(texturePreview.Image, destRect, srcRect, GraphicsUnit.Pixel);
}
else
{
- graphics.FillRectangle(new SolidBrush(listViewItem.ForeColor), x + part.X * 5, y + part.Y * 5, part.Width * 5, part.Height * 5);
+ graphics.FillRectangle(new SolidBrush(listViewItem.ForeColor), x + part.Pos.X * 5, y + part.Pos.Y * 5, part.Size.X * 5, part.Size.Y * 5);
}
break;
@@ -340,27 +307,47 @@ namespace PckStudio
switch (part.Type)
{
case "HEAD":
- y = headbodyY + float.Parse(offsetHead.Text) * 5;
+ case "HEADWEAR":
+ case "HELMET":
+ y = headbodyY + int.Parse(offsetHead.Text) * 5;
break;
-
case "BODY":
- y = headbodyY + float.Parse(offsetBody.Text) * 5;
+ case "JACKET":
+ case "CHEST":
+ case "BODYARMOR":
+ case "BELT":
+ case "WAIST":
+ y = headbodyY + int.Parse(offsetBody.Text) * 5;
break;
case "ARM0":
- y = armY + float.Parse(offsetArms.Text) * 5;
+ case "ARMARMOR0":
+ case "SLEEVE0":
+ case "SHOULDER0":
+ y = armY + int.Parse(offsetArms.Text) * 5;
break;
case "ARM1":
- y = armY + float.Parse(offsetArms.Text) * 5;
+ case "ARMARMOR1":
+ case "SLEEVE1":
+ case "SHOULDER1":
+ y = armY + int.Parse(offsetArms.Text) * 5;
break;
case "LEG0":
- y = legY + float.Parse(offsetLegs.Text) * 5;
+ case "PANTS0":
+ case "SOCK0":
+ case "LEGGING0":
+ case "BOOT0":
+ y = legY + int.Parse(offsetLegs.Text) * 5;
break;
case "LEG1":
- y = legY + float.Parse(offsetLegs.Text) * 5;
+ case "PANTS1":
+ case "SOCK1":
+ case "LEGGING1":
+ case "BOOT1":
+ y = legY + int.Parse(offsetLegs.Text) * 5;
break;
}
@@ -368,21 +355,21 @@ namespace PckStudio
if (!checkTextureGenerate.Checked)
{
RectangleF destRect = new RectangleF(
- x + part.Z * 5,
- y + part.Y * 5,
- part.Length * 5,
- part.Height * 5);
+ x + part.Pos.Z * 5,
+ y + part.Pos.Y * 5,
+ part.Size.Z * 5,
+ part.Size.Y * 5);
RectangleF srcRect = new RectangleF(
- part.U + part.Length + part.Width,
- part.V + part.Length,
- part.Length,
- part.Height);
+ (part.U + part.Size.Z + part.Size.X) * gfx_scale,
+ (part.V + part.Size.Z) * gfx_scale,
+ part.Size.Z * gfx_scale,
+ part.Size.Y * gfx_scale);
graphics.DrawImage(texturePreview.Image, destRect, srcRect, GraphicsUnit.Pixel);
}
else
{
//Draws Part
- graphics.FillRectangle(new SolidBrush(listViewItem.ForeColor), x + part.Z * 5, y + part.Y * 5, part.Length * 5, part.Height * 5);
+ graphics.FillRectangle(new SolidBrush(listViewItem.ForeColor), x + part.Pos.Z * 5, y + part.Pos.Y * 5, part.Size.Z * 5, part.Size.Y * 5);
}
bitmapModelPreview.RotateFlip(RotateFlipType.RotateNoneFlipX);
break;
@@ -394,26 +381,51 @@ namespace PckStudio
switch (part.Type)
{
case "HEAD":
- y = headbodyY + float.Parse(offsetHead.Text) * 5;
+ case "HEADWEAR":
+ case "HELMET":
+ y = headbodyY + int.Parse(offsetHead.Text) * 5;
break;
case "BODY":
- y = headbodyY + float.Parse(offsetBody.Text) * 5;
+ case "JACKET":
+ case "CHEST":
+ case "BODYARMOR":
+ case "BELT":
+ case "WAIST":
+ y = headbodyY + int.Parse(offsetBody.Text) * 5;
break;
+
case "ARM0":
+ case "ARMARMOR0":
+ case "SLEEVE0":
+ case "SHOULDER0":
x -= 25;
- y = armY + float.Parse(offsetArms.Text) * 5;
+ y = armY + int.Parse(offsetArms.Text) * 5;
break;
+
case "ARM1":
+ case "ARMARMOR1":
+ case "SLEEVE1":
+ case "SHOULDER1":
x += 25;
- y = armY + float.Parse(offsetArms.Text) * 5;
+ y = armY + int.Parse(offsetArms.Text) * 5;
break;
+
case "LEG0":
+ case "PANTS0":
+ case "SOCK0":
+ case "LEGGING0":
+ case "BOOT0":
x -= 10;
- y = legY + float.Parse(offsetLegs.Text) * 5;
+ y = legY + int.Parse(offsetLegs.Text) * 5;
break;
+
case "LEG1":
+ case "PANTS1":
+ case "SOCK1":
+ case "LEGGING1":
+ case "BOOT1":
x += 10;
- y = legY + float.Parse(offsetLegs.Text) * 5;
+ y = legY + int.Parse(offsetLegs.Text) * 5;
break;
}
@@ -421,21 +433,21 @@ namespace PckStudio
if (!checkTextureGenerate.Checked)
{
RectangleF destRect = new RectangleF(
- x + part.X * 5,
- y + part.Y * 5,
- part.Width * 5,
- part.Height * 5);
+ x + part.Pos.X * 5,
+ y + part.Pos.Y * 5,
+ part.Size.X * 5,
+ part.Size.Y * 5);
RectangleF srcRect = new RectangleF(
- part.U + part.Length * 2 + part.Width,
- part.V + part.Length,
- part.Width,
- part.Height);
+ (part.U + part.Size.Z * 2 + part.Size.X) * gfx_scale,
+ (part.V + part.Size.Z) * gfx_scale,
+ part.Size.X * gfx_scale,
+ part.Size.Y * gfx_scale);
graphics.DrawImage(texturePreview.Image, destRect, srcRect, GraphicsUnit.Pixel);
}
else
{
//Draws Part
- graphics.FillRectangle(new SolidBrush(listViewItem.ForeColor), x + part.X * 5, y + part.Y * 5, part.Width * 5, part.Height * 5);
+ graphics.FillRectangle(new SolidBrush(listViewItem.ForeColor), x + part.Pos.X * 5, y + part.Pos.Y * 5, part.Size.X * 5, part.Size.Y * 5);
}
bitmapModelPreview.RotateFlip(RotateFlipType.RotateNoneFlipX);
break;
@@ -446,46 +458,68 @@ namespace PckStudio
switch (part.Type)
{
case "HEAD":
- y = headbodyY + float.Parse(offsetHead.Text) * 5;
+ case "HEADWEAR":
+ case "HELMET":
+ y = headbodyY + int.Parse(offsetHead.Text) * 5;
break;
case "BODY":
- y = headbodyY + float.Parse(offsetBody.Text) * 5;
+ case "JACKET":
+ case "CHEST":
+ case "BODYARMOR":
+ case "BELT":
+ case "WAIST":
+ y = headbodyY + int.Parse(offsetBody.Text) * 5;
break;
case "ARM0":
- y = armY + float.Parse(offsetArms.Text) * 5;
+ case "ARMARMOR0":
+ case "SLEEVE0":
+ case "SHOULDER0":
+ y = armY + int.Parse(offsetArms.Text) * 5;
break;
+
case "ARM1":
- y = armY + float.Parse(offsetArms.Text) * 5;
+ case "ARMARMOR1":
+ case "SLEEVE1":
+ case "SHOULDER1":
+ y = armY + int.Parse(offsetArms.Text) * 5;
break;
case "LEG0":
- y = legY + float.Parse(offsetLegs.Text) * 5;
+ case "PANTS0":
+ case "SOCK0":
+ case "LEGGING0":
+ case "BOOT0":
+ y = legY + int.Parse(offsetLegs.Text) * 5;
break;
case "LEG1":
- y = legY + float.Parse(offsetLegs.Text) * 5;
+ case "PANTS1":
+ case "SOCK1":
+ case "LEGGING1":
+ case "BOOT1":
+ y = legY + int.Parse(offsetLegs.Text) * 5;
break;
}
//Maps imported Texture if auto texture is disabled
if (!checkTextureGenerate.Checked)
{
RectangleF destRect = new RectangleF(
- x + part.Z * 5,
- y + part.Y * 5,
- part.Length * 5,
- part.Height * 5);
+ x + part.Pos.Z * 5,
+ y + part.Pos.Y * 5,
+ part.Size.Z * 5,
+ part.Size.Y * 5);
RectangleF srcRect = new RectangleF(
- part.U + part.Length + part.Width,
- part.V + part.Length,
- part.Length,
- part.Height);
+ (part.U + part.Size.Z + part.Size.X) * gfx_scale,
+ (part.V + part.Size.Z) * gfx_scale,
+ part.Size.Z * gfx_scale,
+ part.Size.Y * gfx_scale);
graphics.DrawImage(texturePreview.Image, destRect, srcRect, GraphicsUnit.Pixel);
}
else
{
//Draws Part
- graphics.FillRectangle(new SolidBrush(listViewItem.ForeColor), x + part.Z * 5, y + part.Y * 5, part.Length * 5, part.Height * 5);
+ graphics.FillRectangle(new SolidBrush(listViewItem.ForeColor), x + part.Pos.Z * 5, y + part.Pos.Y * 5, part.Size.Z * 5, part.Size.Y * 5);
}
break;
}
@@ -507,13 +541,13 @@ namespace PckStudio
Bitmap bitmapAutoTexture = new Bitmap(texturePreview.Width, texturePreview.Height);
using (Graphics graphics = Graphics.FromImage(bitmapAutoTexture))
{
- foreach (var part in modelParts)
+ foreach (var part in modelBoxes)
{
- float width = part.Width * 2;
- float height = part.Height * 2;
- float length = part.Length * 2;
- int u = part.U * 2;
- int v = part.V * 2;
+ float width = part.Size.X * 2;
+ float height = part.Size.Y * 2;
+ float length = part.Size.Z * 2;
+ float u = part.U * 2;
+ float v = part.V * 2;
Random r = new Random();
Brush brush = new SolidBrush(Color.FromArgb(r.Next(int.MinValue, int.MaxValue)));
graphics.FillRectangle(brush, u + length, v, width, length);
@@ -839,7 +873,7 @@ namespace PckStudio
//Creates Item
private void createToolStripMenuItem_Click(object sender, EventArgs e)
{
- modelParts.Add(new ModelPart("New Part", 0, 0, 0, 0, 0, 0, 0, 0));
+ modelBoxes.Add(new SkinBox("NEW_BOX 0 0 0 1 1 1 0 0 0 0 0"));
updateListView();
render();
}
@@ -849,21 +883,21 @@ namespace PckStudio
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
changeColorToolStripMenuItem.Visible = false;
- if (listViewBoxes.SelectedItems.Count != 0 && listViewBoxes.SelectedItems[0].Tag is ModelPart)
+ if (listViewBoxes.SelectedItems.Count != 0 && listViewBoxes.SelectedItems[0].Tag is SkinBox)
{
changeColorToolStripMenuItem.Visible = true;
- var part = listViewBoxes.SelectedItems[0].Tag as ModelPart;
+ var part = listViewBoxes.SelectedItems[0].Tag as SkinBox;
//graphics.DrawRectangle(Pens.Yellow, x + (float)double.Parse(this.selected.SubItems[3].Text) * 5 - 1, y + (float)double.Parse(this.selected.SubItems[2].Text) * 5 - 1, (float)double.Parse(this.selected.SubItems[6].Text) * 5 + 2, (float)double.Parse(this.selected.SubItems[5].Text) * 5 + 2);
//graphics.DrawRectangle(Pens.Black, x + (float)double.Parse(this.selected.SubItems[3].Text) * 5, y + (float)double.Parse(this.selected.SubItems[2].Text) * 5, (float)double.Parse(this.selected.SubItems[6].Text) * 5, (float)double.Parse(this.selected.SubItems[5].Text) * 5);
comboParent.Text = part.Type;
- PosXUpDown.Value = (decimal)part.X;
- PosYUpDown.Value = (decimal)part.Y;
- PosZUpDown.Value = (decimal)part.Z;
- SizeXUpDown.Value = (decimal)part.Width;
- SizeYUpDown.Value = (decimal)part.Height;
- SizeZUpDown.Value = (decimal)part.Length;
- TextureXUpDown.Value = part.U;
- TextureYUpDown.Value = part.V;
+ PosXUpDown.Value = (decimal)part.Pos.X;
+ PosYUpDown.Value = (decimal)part.Pos.Y;
+ PosZUpDown.Value = (decimal)part.Pos.Z;
+ SizeXUpDown.Value = (decimal)part.Size.X;
+ SizeYUpDown.Value = (decimal)part.Size.Y;
+ SizeZUpDown.Value = (decimal)part.Size.Z;
+ TextureXUpDown.Value = (decimal)part.U;
+ TextureYUpDown.Value = (decimal)part.V;
render();
}
}
@@ -873,9 +907,9 @@ namespace PckStudio
private void comboParent_SelectedIndexChanged(object sender, EventArgs e)
{
if (listViewBoxes.SelectedItems.Count != 0 &&
- listViewBoxes.SelectedItems[0].Tag is ModelPart)
+ listViewBoxes.SelectedItems[0].Tag is SkinBox)
{
- var part = listViewBoxes.SelectedItems[0].Tag as ModelPart;
+ var part = listViewBoxes.SelectedItems[0].Tag as SkinBox;
part.Type = comboParent.Text;
buttonIMPORT.Enabled = true;
buttonEXPORT.Enabled = true;
@@ -894,10 +928,10 @@ namespace PckStudio
private void SizeXUpDown_ValueChanged(object sender, EventArgs e)
{
if (listViewBoxes.SelectedItems.Count != 0 &&
- listViewBoxes.SelectedItems[0].Tag is ModelPart)
+ listViewBoxes.SelectedItems[0].Tag is SkinBox)
{
- var part = listViewBoxes.SelectedItems[0].Tag as ModelPart;
- part.Width = (float)SizeXUpDown.Value;
+ var part = listViewBoxes.SelectedItems[0].Tag as SkinBox;
+ part.Size.X = (float)SizeXUpDown.Value;
}
updateListView();
render();
@@ -906,10 +940,10 @@ namespace PckStudio
private void SizeYUpDown_ValueChanged(object sender, EventArgs e)
{
if (listViewBoxes.SelectedItems.Count != 0 &&
- listViewBoxes.SelectedItems[0].Tag is ModelPart)
+ listViewBoxes.SelectedItems[0].Tag is SkinBox)
{
- var part = listViewBoxes.SelectedItems[0].Tag as ModelPart;
- part.Height = (float)SizeYUpDown.Value;
+ var part = listViewBoxes.SelectedItems[0].Tag as SkinBox;
+ part.Size.Y = (float)SizeYUpDown.Value;
}
updateListView();
render();
@@ -918,10 +952,10 @@ namespace PckStudio
private void SizeZUpDown_ValueChanged(object sender, EventArgs e)
{
if (listViewBoxes.SelectedItems.Count != 0 &&
- listViewBoxes.SelectedItems[0].Tag is ModelPart)
+ listViewBoxes.SelectedItems[0].Tag is SkinBox)
{
- var part = listViewBoxes.SelectedItems[0].Tag as ModelPart;
- part.Length = (float)SizeZUpDown.Value;
+ var part = listViewBoxes.SelectedItems[0].Tag as SkinBox;
+ part.Size.Z = (float)SizeZUpDown.Value;
}
updateListView();
render();
@@ -930,10 +964,10 @@ namespace PckStudio
private void PosXUpDown_ValueChanged(object sender, EventArgs e)
{
if (listViewBoxes.SelectedItems.Count != 0 &&
- listViewBoxes.SelectedItems[0].Tag is ModelPart)
+ listViewBoxes.SelectedItems[0].Tag is SkinBox)
{
- var part = listViewBoxes.SelectedItems[0].Tag as ModelPart;
- part.X = (float)PosXUpDown.Value;
+ var part = listViewBoxes.SelectedItems[0].Tag as SkinBox;
+ part.Pos.X = (float)PosXUpDown.Value;
}
updateListView();
render();
@@ -943,10 +977,10 @@ namespace PckStudio
private void PosYUpDown_ValueChanged(object sender, EventArgs e)
{
if (listViewBoxes.SelectedItems.Count != 0 &&
- listViewBoxes.SelectedItems[0].Tag is ModelPart)
+ listViewBoxes.SelectedItems[0].Tag is SkinBox)
{
- var part = listViewBoxes.SelectedItems[0].Tag as ModelPart;
- part.Y = (float)PosYUpDown.Value;
+ var part = listViewBoxes.SelectedItems[0].Tag as SkinBox;
+ part.Pos.Y = (float)PosYUpDown.Value;
}
updateListView();
render();
@@ -956,10 +990,10 @@ namespace PckStudio
private void PosZUpDown_ValueChanged(object sender, EventArgs e)
{
if (listViewBoxes.SelectedItems.Count != 0 &&
- listViewBoxes.SelectedItems[0].Tag is ModelPart)
+ listViewBoxes.SelectedItems[0].Tag is SkinBox)
{
- var part = listViewBoxes.SelectedItems[0].Tag as ModelPart;
- part.Z = (float)PosZUpDown.Value;
+ var part = listViewBoxes.SelectedItems[0].Tag as SkinBox;
+ part.Pos.Z = (float)PosZUpDown.Value;
}
updateListView();
render();
@@ -998,9 +1032,9 @@ namespace PckStudio
private void TextureXUpDown_ValueChanged(object sender, EventArgs e)
{
if (listViewBoxes.SelectedItems.Count != 0 &&
- listViewBoxes.SelectedItems[0].Tag is ModelPart)
+ listViewBoxes.SelectedItems[0].Tag is SkinBox)
{
- var part = listViewBoxes.SelectedItems[0].Tag as ModelPart;
+ var part = listViewBoxes.SelectedItems[0].Tag as SkinBox;
part.U = (int)TextureXUpDown.Value;
}
updateListView();
@@ -1012,9 +1046,9 @@ namespace PckStudio
private void TextureYUpDown_ValueChanged(object sender, EventArgs e)
{
if (listViewBoxes.SelectedItems.Count != 0 &&
- listViewBoxes.SelectedItems[0].Tag is ModelPart)
+ listViewBoxes.SelectedItems[0].Tag is SkinBox)
{
- var part = listViewBoxes.SelectedItems[0].Tag as ModelPart;
+ var part = listViewBoxes.SelectedItems[0].Tag as SkinBox;
part.V = (int)TextureXUpDown.Value;
}
updateListView();
@@ -1042,18 +1076,29 @@ namespace PckStudio
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "PNG Image Files | *.png";
openFileDialog.Title = "Select Skin Texture";
- if (openFileDialog.ShowDialog() == DialogResult.OK && Image.FromFile(openFileDialog.FileName).Width == Image.FromFile(openFileDialog.FileName).Height)
+
+ if (openFileDialog.ShowDialog() == DialogResult.OK) // skins can only be a 1:1 ratio (base 64x64) or a 2:1 ratio (base 64x32)
{
- checkTextureGenerate.Checked = false;
- Bitmap bitmap = new Bitmap(64, 64);
- using (Graphics graphics = Graphics.FromImage(bitmap))
- {
- graphics.DrawImage(Image.FromFile(openFileDialog.FileName), 0, 0, 64, 64);
- graphics.InterpolationMode = InterpolationMode.NearestNeighbor;
+ using (var img = Image.FromFile(openFileDialog.FileName))
+ {
+ if ((img.Width == img.Height || img.Height == img.Width / 2))
+ {
+ checkTextureGenerate.Checked = false;
+ Bitmap bitmap = new Bitmap(img.Width, img.Width);
+ using (Graphics graphics = Graphics.FromImage(bitmap))
+ {
+ graphics.DrawImage(img, 0, 0, img.Width, img.Height);
+ graphics.InterpolationMode = InterpolationMode.NearestNeighbor;
+ }
+ texturePreview.Image = bitmap;
+ render();
+ }
+ else
+ {
+ MessageBox.Show(this, "Not a valid skin file", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
}
- texturePreview.Image = bitmap;
}
- render();
}
@@ -1061,7 +1106,7 @@ namespace PckStudio
private void buttonDone_Click(object sender, EventArgs e)
{
Bitmap bitmap1 = new Bitmap(displayBox.Width, displayBox.Height);
- foreach (var part in modelParts)
+ foreach (var part in modelBoxes)
{
boxes.Add(part.ToProperty());
}
@@ -1110,12 +1155,12 @@ namespace PckStudio
//Loads in model template(Steve)
private void buttonTemplate_Click(object sender, EventArgs e)
{
- modelParts.Add(new ModelPart("HEAD", -4, -8, -4, 8, 8, 8, 0, 0));
- modelParts.Add(new ModelPart("BODY", -4, 0, -2, 8, 12, 4, 16, 16));
- modelParts.Add(new ModelPart("ARM0", -3, -2, -2, 4, 12, 4, 40, 16));
- modelParts.Add(new ModelPart("ARM1", -1, -2, -2, 4, 12, 4, 40, 16));
- modelParts.Add(new ModelPart("LEG0", -2, 0, -2, 4, 12, 4, 0, 16));
- modelParts.Add(new ModelPart("LEG1", -2, 0, -2, 4, 12, 4, 0, 16));
+ modelBoxes.Add(new SkinBox("HEAD -4 -8 -4 8 8 8 0 0 0 0 0"));
+ modelBoxes.Add(new SkinBox("BODY -4 0 -2 8 12 4 16 16 0 0 0"));
+ modelBoxes.Add(new SkinBox("ARM0 -3 -2 -2 4 12 4 40 16 0 0 0"));
+ modelBoxes.Add(new SkinBox("ARM1 -1 -2 -2 4 12 4 40 16 0 1 0"));
+ modelBoxes.Add(new SkinBox("LEG0 -2 0 -2 4 12 4 0 16 0 0 0"));
+ modelBoxes.Add(new SkinBox("LEG1 -2 0 -2 4 12 4 0 16 0 1 0"));
comboParent.Enabled = true;
updateListView();
render();
@@ -1124,16 +1169,16 @@ namespace PckStudio
private void updateListView()
{
listViewBoxes.Items.Clear();
- foreach (var part in modelParts)
+ foreach (var part in modelBoxes)
{
ListViewItem listViewItem = new ListViewItem(part.Type);
listViewItem.Tag = part;
- listViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(listViewItem, part.X.ToString()));
- listViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(listViewItem, part.Y.ToString()));
- listViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(listViewItem, part.Z.ToString()));
- listViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(listViewItem, part.Width.ToString()));
- listViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(listViewItem, part.Height.ToString()));
- listViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(listViewItem, part.Length.ToString()));
+ listViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(listViewItem, part.Pos.X.ToString()));
+ listViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(listViewItem, part.Pos.Y.ToString()));
+ listViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(listViewItem, part.Pos.Z.ToString()));
+ listViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(listViewItem, part.Size.X.ToString()));
+ listViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(listViewItem, part.Size.Y.ToString()));
+ listViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(listViewItem, part.Size.Z.ToString()));
listViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(listViewItem, part.U.ToString()));
listViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(listViewItem, part.V.ToString()));
listViewBoxes.Items.Add(listViewItem);
@@ -1174,11 +1219,10 @@ namespace PckStudio
listViewBoxes.Items.Clear();
string str1 = File.ReadAllText(openFileDialog.FileName);
- modelParts.Clear();
+ modelBoxes.Clear();
List lines = str1.Split(new[] { "\n\r", "\n" }, StringSplitOptions.None).ToList();
if (string.IsNullOrEmpty(lines[lines.Count - 1]))
lines.RemoveAt(lines.Count - 1);
- int currentLine = 0;
int passedlines = 0;
for (int i = 0; i < lines.Count;)
{
@@ -1190,11 +1234,12 @@ namespace PckStudio
float SizeX = float.Parse(lines[6 + passedlines]);
float SizeY = float.Parse(lines[7 + passedlines]);
float SizeZ = float.Parse(lines[8 + passedlines]);
- int UvX = int.Parse(lines[9 + passedlines]);
- int UvY = int.Parse(lines[10 + passedlines]);
+ float UvX = float.Parse(lines[9 + passedlines]);
+ float UvY = float.Parse(lines[10 + passedlines]);
passedlines += 11;
i += 11;
- modelParts.Add(new ModelPart(parent, PosX, PosY, PosZ, SizeX, SizeY, SizeZ, UvX, UvY));
+ // CSM doesn't support armor, mirror, or scale values as far as I know of - May
+ modelBoxes.Add(new SkinBox($"{parent} {PosX} {PosY} {PosZ} {SizeX} {SizeY} {SizeZ} {UvX} {UvY} {false} {false} {0}"));
}
}
comboParent.Enabled = true;
@@ -1281,18 +1326,18 @@ namespace PckStudio
private void listView1_Click(object sender, EventArgs e)
{
if (listViewBoxes.SelectedItems.Count != 0 && listViewBoxes.SelectedItems[0] != null &&
- listViewBoxes.SelectedItems[0].Tag is ModelPart)
+ listViewBoxes.SelectedItems[0].Tag is SkinBox)
{
- var part = listViewBoxes.SelectedItems[0].Tag as ModelPart;
+ var part = listViewBoxes.SelectedItems[0].Tag as SkinBox;
comboParent.Text = part.Type;
- PosXUpDown.Value = (decimal)part.X;
- PosYUpDown.Value = (decimal)part.Y;
- PosZUpDown.Value = (decimal)part.Z;
- SizeXUpDown.Value = (decimal)part.Width;
- SizeYUpDown.Value = (decimal)part.Height;
- SizeZUpDown.Value = (decimal)part.Length;
- TextureXUpDown.Value = part.U;
- TextureYUpDown.Value = part.V;
+ PosXUpDown.Value = (decimal)part.Pos.X;
+ PosYUpDown.Value = (decimal)part.Pos.Y;
+ PosZUpDown.Value = (decimal)part.Pos.Z;
+ SizeXUpDown.Value = (decimal)part.Size.X;
+ SizeYUpDown.Value = (decimal)part.Size.Y;
+ SizeZUpDown.Value = (decimal)part.Size.Z;
+ TextureXUpDown.Value = (decimal)part.U;
+ TextureYUpDown.Value = (decimal)part.V;
SizeXUpDown.Enabled = true;
SizeYUpDown.Enabled = true;
SizeZUpDown.Enabled = true;
@@ -1331,9 +1376,9 @@ namespace PckStudio
private void delStuffUsingDelKey(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Delete && listViewBoxes.SelectedItems.Count != 0 &&
- listViewBoxes.SelectedItems[0].Tag is ModelPart)
+ listViewBoxes.SelectedItems[0].Tag is SkinBox)
{
- if (modelParts.Remove(listViewBoxes.SelectedItems[0].Tag as ModelPart))
+ if (modelBoxes.Remove(listViewBoxes.SelectedItems[0].Tag as SkinBox))
listViewBoxes.SelectedItems[0].Remove();
render();
}
diff --git a/PCK-Studio/Forms/Skins-And-Textures/generateModel.resx b/PCK-Studio/Forms/Skins-And-Textures/generateModel.resx
index 5c44268a..e5da709a 100644
--- a/PCK-Studio/Forms/Skins-And-Textures/generateModel.resx
+++ b/PCK-Studio/Forms/Skins-And-Textures/generateModel.resx
@@ -610,7 +610,7 @@
myTablePanel2
- PckStudio.Forms.MyTablePanel, PCK-Studio, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null
+ System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
tabPage1
@@ -1413,16 +1413,16 @@
30
-
+
Width
-
+
Center
-
+
Height
-
+
Center
@@ -3267,16 +3267,16 @@
System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- Width
+
+ _Width
-
+
System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- Height
+
+ _Height
-
+
System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
diff --git a/PCK-Studio/Forms/Utilities/AnimationResources.cs b/PCK-Studio/Forms/Utilities/AnimationResources.cs
new file mode 100644
index 00000000..237d153a
--- /dev/null
+++ b/PCK-Studio/Forms/Utilities/AnimationResources.cs
@@ -0,0 +1,18 @@
+using Newtonsoft.Json.Linq;
+using System.Drawing;
+using System.Linq;
+
+using PckStudio.Properties;
+using PckStudio.Extensions;
+
+namespace PckStudio.Forms.Utilities
+{
+ public static class AnimationResources
+ {
+ public static string GetAnimationSection(bool isItem) => isItem ? "items" : "blocks";
+
+ public static readonly JObject tileData = JObject.Parse(Resources.tileData);
+ private static Image[] _tileImages;
+ public static Image[] tileImages => _tileImages ??= Resources.terrain_sheet.CreateImageList(16).Concat(Resources.items_sheet.CreateImageList(16)).ToArray();
+ }
+}
diff --git a/PCK-Studio/Forms/Utilities/AnimationUtil.cs b/PCK-Studio/Forms/Utilities/AnimationUtil.cs
deleted file mode 100644
index c728be49..00000000
--- a/PCK-Studio/Forms/Utilities/AnimationUtil.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-using Newtonsoft.Json.Linq;
-using System.Drawing;
-using System.Linq;
-using System.IO;
-
-using PckStudio.Properties;
-using System.Drawing.Imaging;
-using PckStudio.Classes.Extentions;
-using OMI.Formats.Pck;
-
-namespace PckStudio.Forms.Utilities
-{
- public static class AnimationUtil
- {
- public static string GetAnimationSection(bool isItem) => isItem ? "items" : "blocks";
-
- public static readonly JObject tileData = JObject.Parse(Resources.tileData);
- private static Image[] _tileImages;
-
- public static Image[] tileImages => _tileImages ??= Resources.terrain_sheet.CreateImageList(16).Concat(Resources.items_sheet.CreateImageList(16)).ToArray();
-
- public static PckFile.FileData CreateNewAnimationFile(Image source, string tileName, bool isItem)
- {
- PckFile.FileData file = new PckFile.FileData($"res/textures/{GetAnimationSection(isItem)}/{tileName}.png", PckFile.FileData.FileType.TextureFile);
- file.Properties.Add(("ANIM", string.Empty));
- using (var stream = new MemoryStream())
- {
- source.Save(stream, ImageFormat.Png);
- file.SetData(stream.ToArray());
- }
- return file;
- }
- }
-}
diff --git a/PCK-Studio/Forms/Utilities/BehaviourResources.cs b/PCK-Studio/Forms/Utilities/BehaviourResources.cs
new file mode 100644
index 00000000..36d295b8
--- /dev/null
+++ b/PCK-Studio/Forms/Utilities/BehaviourResources.cs
@@ -0,0 +1,28 @@
+using Newtonsoft.Json.Linq;
+using System.Drawing;
+using System.Linq;
+using System.IO;
+
+using PckStudio.Properties;
+using PckStudio.Extensions;
+using OMI.Formats.Behaviour;
+using OMI.Workers.Behaviour;
+
+namespace PckStudio.Forms.Utilities
+{
+ public static class BehaviourResources
+ {
+ public static readonly JObject entityData = JObject.Parse(Resources.entityData);
+ private static Image[] _entityImages;
+
+ public static Image[] entityImages => _entityImages ??= Resources.entities_sheet.CreateImageList(32).ToArray();
+
+ internal static byte[] BehaviourFileInitializer()
+ {
+ using var stream = new MemoryStream();
+ var writer = new BehavioursWriter(new BehaviourFile());
+ writer.WriteToStream(stream);
+ return stream.ToArray();
+ }
+ }
+}
diff --git a/PCK-Studio/Forms/Utilities/BehaviourUtil.cs b/PCK-Studio/Forms/Utilities/BehaviourUtil.cs
deleted file mode 100644
index cce040f8..00000000
--- a/PCK-Studio/Forms/Utilities/BehaviourUtil.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using Newtonsoft.Json.Linq;
-using System.Drawing;
-using System.Linq;
-using System.IO;
-
-using PckStudio.Properties;
-using PckStudio.Classes.Extentions;
-using OMI.Formats.Behaviour;
-using OMI.Workers.Behaviour;
-using OMI.Formats.Pck;
-
-namespace PckStudio.Forms.Utilities
-{
- public static class BehaviourUtil
- {
- public static readonly JObject entityData = JObject.Parse(Resources.entityBehaviourData);
- private static Image[] _entityImages;
-
- public static Image[] entityImages => _entityImages ??= Resources.entities_sheet.CreateImageList(32).ToArray();
-
- public static PckFile.FileData CreateNewBehaviourFile()
- {
- PckFile.FileData file = new PckFile.FileData($"behaviours.bin", PckFile.FileData.FileType.BehavioursFile);
-
- using (var stream = new MemoryStream())
- {
- var writer = new BehavioursWriter(new BehaviourFile());
- writer.WriteToStream(stream);
- file.SetData(stream.ToArray());
- }
-
- return file;
- }
- }
-}
diff --git a/PCK-Studio/Forms/Utilities/MaterialResources.cs b/PCK-Studio/Forms/Utilities/MaterialResources.cs
new file mode 100644
index 00000000..ccc1493d
--- /dev/null
+++ b/PCK-Studio/Forms/Utilities/MaterialResources.cs
@@ -0,0 +1,33 @@
+using Newtonsoft.Json.Linq;
+using System.Drawing;
+using System.Linq;
+using System.IO;
+
+using PckStudio.Properties;
+using PckStudio.Extensions;
+using OMI.Formats.Pck;
+using OMI.Formats.Material;
+using OMI.Workers.Material;
+using System;
+
+namespace PckStudio.Forms.Utilities
+{
+ public static class MaterialResources
+ {
+ public static readonly JObject entityData = JObject.Parse(Resources.entityData);
+ private static Image[] _entityImages;
+ public static Image[] entityImages => _entityImages ??= Resources.entities_sheet.CreateImageList(32).ToArray();
+
+ public static byte[] MaterialsFileInitializer()
+ {
+ using var stream = new MemoryStream();
+ var matFile = new MaterialContainer
+ {
+ new MaterialContainer.Material("bat", "entity_alphatest")
+ };
+ var writer = new MaterialFileWriter(matFile);
+ writer.WriteToStream(stream);
+ return stream.ToArray();
+ }
+ }
+}
diff --git a/PCK-Studio/Forms/Utilities/MaterialUtil.cs b/PCK-Studio/Forms/Utilities/MaterialUtil.cs
deleted file mode 100644
index caa02fd1..00000000
--- a/PCK-Studio/Forms/Utilities/MaterialUtil.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-using Newtonsoft.Json.Linq;
-using System.Drawing;
-using System.Linq;
-using System.IO;
-
-using PckStudio.Properties;
-using PckStudio.Classes.Extentions;
-using OMI.Formats.Pck;
-using OMI.Formats.Material;
-using OMI.Workers.Material;
-
-namespace PckStudio.Forms.Utilities
-{
- public static class MaterialUtil
- {
- public static readonly JObject entityData = JObject.Parse(Resources.entityMaterialData);
- private static Image[] _entityImages;
- public static Image[] entityImages => _entityImages ??= Resources.entities_sheet.CreateImageList(32).ToArray();
-
- public static PckFile.FileData CreateNewMaterialsFile()
- {
- PckFile.FileData file = new PckFile.FileData($"entityMaterials.bin", PckFile.FileData.FileType.MaterialFile);
-
- using (var stream = new MemoryStream())
- {
- var matFile = new MaterialContainer
- {
- new MaterialContainer.Material("bat", "entity_alphatest")
- };
- var writer = new MaterialFileWriter(matFile);
- writer.WriteToStream(stream);
- file.SetData(stream.ToArray());
- }
-
- return file;
- }
- }
-}
diff --git a/PCK-Studio/Forms/Utilities/ModelsResources.cs b/PCK-Studio/Forms/Utilities/ModelsResources.cs
new file mode 100644
index 00000000..47795210
--- /dev/null
+++ b/PCK-Studio/Forms/Utilities/ModelsResources.cs
@@ -0,0 +1,29 @@
+using Newtonsoft.Json.Linq;
+using System.Drawing;
+using System.Linq;
+using System.IO;
+
+using PckStudio.Properties;
+using PckStudio.Extensions;
+using OMI.Formats.Model;
+using OMI.Formats.Pck;
+using OMI.Workers.Model;
+
+namespace PckStudio.Forms.Utilities
+{
+ public static class ModelsResources
+ {
+ public static readonly JObject entityData = JObject.Parse(Resources.entityData);
+ private static Image[] _entityImages;
+
+ public static Image[] entityImages => _entityImages ??= Resources.entities_sheet.CreateImageList(32).ToArray();
+
+ public static byte[] ModelsFileInitializer()
+ {
+ using var stream = new MemoryStream();
+ var writer = new ModelFileWriter(new ModelContainer());
+ writer.WriteToStream(stream);
+ return stream.ToArray();
+ }
+ }
+}
diff --git a/PCK-Studio/Forms/Utilities/ModelsUtil.cs b/PCK-Studio/Forms/Utilities/ModelsUtil.cs
deleted file mode 100644
index ee9c6449..00000000
--- a/PCK-Studio/Forms/Utilities/ModelsUtil.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using Newtonsoft.Json.Linq;
-using System.Drawing;
-using System.Linq;
-using System.IO;
-
-using PckStudio.Properties;
-using PckStudio.Classes.Extentions;
-using OMI.Formats.Model;
-using OMI.Formats.Pck;
-using OMI.Workers.Model;
-
-namespace PckStudio.Forms.Utilities
-{
- public static class ModelsUtil
- {
- public static readonly JObject entityData = JObject.Parse(Resources.entityModelData);
- private static Image[] _entityImages;
-
- public static Image[] entityImages => _entityImages ??= Resources.entities_sheet.CreateImageList(32).ToArray();
-
- public static PckFile.FileData CreateNewModelsFile()
- {
- PckFile.FileData file = new PckFile.FileData($"models.bin", PckFile.FileData.FileType.ModelsFile);
-
- using (var stream = new MemoryStream())
- {
- var writer = new ModelFileWriter(new ModelContainer());
- writer.WriteToStream(stream);
- file.SetData(stream.ToArray());
- }
-
- return file;
- }
- }
-}
diff --git a/PCK-Studio/Forms/Utilities/Skins/ANIMEditor.Designer.cs b/PCK-Studio/Forms/Utilities/Skins/ANIMEditor.Designer.cs
deleted file mode 100644
index 7d206485..00000000
--- a/PCK-Studio/Forms/Utilities/Skins/ANIMEditor.Designer.cs
+++ /dev/null
@@ -1,782 +0,0 @@
-namespace PckStudio.Forms.Utilities.Skins
-{
- partial class ANIMEditor
- {
- ///
- /// Required designer variable.
- ///
- private System.ComponentModel.IContainer components = null;
-
- ///
- /// Clean up any resources being used.
- ///
- /// true if managed resources should be disposed; otherwise, false.
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region Windows Form Designer generated code
-
- ///
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- ///
- private void InitializeComponent()
- {
- this.closeButton = new MetroFramework.Controls.MetroButton();
- this.effectsGroup = new System.Windows.Forms.GroupBox();
- this.rightLegOCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.headOCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.leftLegOCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.leftArmOCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.bodyOCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.rightLegCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.slimCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.headCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.leftLegCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.rightArmCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.leftArmCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.bodyCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.classicCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.rightArmOCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.effectsGroup2 = new System.Windows.Forms.GroupBox();
- this.rightLeggingCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.helmetCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.leftLeggingCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.rightArmorCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.leftArmorCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.chestplateCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.groupBox1 = new System.Windows.Forms.GroupBox();
- this.unknownCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.crouchCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.dinnerboneCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.noArmorCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.bobbingCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.santaCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.syncLegsCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.staticArmsCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.syncArmsCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.statueCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.zombieCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.staticLegsCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.copyButton = new MetroFramework.Controls.MetroButton();
- this.importButton = new MetroFramework.Controls.MetroButton();
- this.exportButton = new MetroFramework.Controls.MetroButton();
- this.animValue = new MetroFramework.Controls.MetroLabel();
- this.uncheckButton = new MetroFramework.Controls.MetroButton();
- this.checkButton = new MetroFramework.Controls.MetroButton();
- this.toolTip = new MetroFramework.Components.MetroToolTip();
- this.resetButton = new MetroFramework.Controls.MetroButton();
- this.templateButton = new MetroFramework.Controls.MetroButton();
- this.effectsGroup.SuspendLayout();
- this.effectsGroup2.SuspendLayout();
- this.groupBox1.SuspendLayout();
- this.SuspendLayout();
- //
- // closeButton
- //
- this.closeButton.Location = new System.Drawing.Point(250, 514);
- this.closeButton.Name = "closeButton";
- this.closeButton.Size = new System.Drawing.Size(126, 23);
- this.closeButton.TabIndex = 1;
- this.closeButton.Text = "Save";
- this.closeButton.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.closeButton.UseSelectable = true;
- this.closeButton.Click += new System.EventHandler(this.closeButton_Click);
- //
- // effectsGroup
- //
- this.effectsGroup.Controls.Add(this.rightLegOCheckBox);
- this.effectsGroup.Controls.Add(this.headOCheckBox);
- this.effectsGroup.Controls.Add(this.leftLegOCheckBox);
- this.effectsGroup.Controls.Add(this.leftArmOCheckBox);
- this.effectsGroup.Controls.Add(this.bodyOCheckBox);
- this.effectsGroup.Controls.Add(this.rightLegCheckBox);
- this.effectsGroup.Controls.Add(this.slimCheckBox);
- this.effectsGroup.Controls.Add(this.headCheckBox);
- this.effectsGroup.Controls.Add(this.leftLegCheckBox);
- this.effectsGroup.Controls.Add(this.rightArmCheckBox);
- this.effectsGroup.Controls.Add(this.leftArmCheckBox);
- this.effectsGroup.Controls.Add(this.bodyCheckBox);
- this.effectsGroup.Controls.Add(this.classicCheckBox);
- this.effectsGroup.Controls.Add(this.rightArmOCheckBox);
- this.effectsGroup.ForeColor = System.Drawing.SystemColors.Window;
- this.effectsGroup.Location = new System.Drawing.Point(22, 148);
- this.effectsGroup.Name = "effectsGroup";
- this.effectsGroup.Size = new System.Drawing.Size(393, 238);
- this.effectsGroup.TabIndex = 2;
- this.effectsGroup.TabStop = false;
- this.effectsGroup.Text = "Skin Flags";
- //
- // rightLegOCheckBox
- //
- this.rightLegOCheckBox.AutoSize = true;
- this.rightLegOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.rightLegOCheckBox.Location = new System.Drawing.Point(180, 208);
- this.rightLegOCheckBox.Name = "rightLegOCheckBox";
- this.rightLegOCheckBox.Size = new System.Drawing.Size(199, 19);
- this.rightLegOCheckBox.TabIndex = 13;
- this.rightLegOCheckBox.Text = "Remove Right Leg Layer Box";
- this.rightLegOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.rightLegOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
- "or this part. Armor will be disabled for this part, but can be rendered again wi" +
- "th the armor flags. ");
- this.rightLegOCheckBox.UseSelectable = true;
- //
- // headOCheckBox
- //
- this.headOCheckBox.AutoSize = true;
- this.headOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.headOCheckBox.Location = new System.Drawing.Point(180, 50);
- this.headOCheckBox.Name = "headOCheckBox";
- this.headOCheckBox.Size = new System.Drawing.Size(173, 19);
- this.headOCheckBox.TabIndex = 12;
- this.headOCheckBox.Text = "Remove Head Layer Box";
- this.headOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.headOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
- "or this part. Armor will be disabled for this part, but can be rendered again wi" +
- "th the armor flags. ");
- this.headOCheckBox.UseSelectable = true;
- //
- // leftLegOCheckBox
- //
- this.leftLegOCheckBox.AutoSize = true;
- this.leftLegOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.leftLegOCheckBox.Location = new System.Drawing.Point(180, 174);
- this.leftLegOCheckBox.Name = "leftLegOCheckBox";
- this.leftLegOCheckBox.Size = new System.Drawing.Size(190, 19);
- this.leftLegOCheckBox.TabIndex = 11;
- this.leftLegOCheckBox.Text = "Remove Left Leg Layer Box";
- this.leftLegOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.leftLegOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
- "or this part. Armor will be disabled for this part, but can be rendered again wi" +
- "th the armor flags. ");
- this.leftLegOCheckBox.UseSelectable = true;
- //
- // leftArmOCheckBox
- //
- this.leftArmOCheckBox.AutoSize = true;
- this.leftArmOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.leftArmOCheckBox.Location = new System.Drawing.Point(180, 112);
- this.leftArmOCheckBox.Name = "leftArmOCheckBox";
- this.leftArmOCheckBox.Size = new System.Drawing.Size(194, 19);
- this.leftArmOCheckBox.TabIndex = 9;
- this.leftArmOCheckBox.Text = "Remove Left Arm Layer Box";
- this.leftArmOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.leftArmOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
- "or this part. Armor will be disabled for this part, but can be rendered again wi" +
- "th the armor flags. ");
- this.leftArmOCheckBox.UseSelectable = true;
- //
- // bodyOCheckBox
- //
- this.bodyOCheckBox.AutoSize = true;
- this.bodyOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.bodyOCheckBox.Location = new System.Drawing.Point(180, 81);
- this.bodyOCheckBox.Name = "bodyOCheckBox";
- this.bodyOCheckBox.Size = new System.Drawing.Size(172, 19);
- this.bodyOCheckBox.TabIndex = 8;
- this.bodyOCheckBox.Text = "Remove Body Layer Box";
- this.bodyOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.bodyOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
- "or this part. Armor will be disabled for this part, but can be rendered again wi" +
- "th the armor flags. ");
- this.bodyOCheckBox.UseSelectable = true;
- //
- // rightLegCheckBox
- //
- this.rightLegCheckBox.AutoSize = true;
- this.rightLegCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.rightLegCheckBox.Location = new System.Drawing.Point(6, 208);
- this.rightLegCheckBox.Name = "rightLegCheckBox";
- this.rightLegCheckBox.Size = new System.Drawing.Size(162, 19);
- this.rightLegCheckBox.TabIndex = 7;
- this.rightLegCheckBox.Text = "Remove Right Leg Box";
- this.rightLegCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.rightLegCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
- "or this part. Armor will be disabled for this part, but can be rendered again wi" +
- "th the armor flags. ");
- this.rightLegCheckBox.UseSelectable = true;
- //
- // slimCheckBox
- //
- this.slimCheckBox.AutoSize = true;
- this.slimCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.slimCheckBox.Location = new System.Drawing.Point(180, 19);
- this.slimCheckBox.Name = "slimCheckBox";
- this.slimCheckBox.Size = new System.Drawing.Size(151, 19);
- this.slimCheckBox.TabIndex = 6;
- this.slimCheckBox.Text = "64x64 Alex/Slim Skin";
- this.slimCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.slimCheckBox, " The 1.8 style skin type with slim arms, overlays for each part, and sep" +
- "arate textures for right and left limbs. Resolution is also set to 64x64. " +
- " ");
- this.slimCheckBox.UseSelectable = true;
- //
- // headCheckBox
- //
- this.headCheckBox.AutoSize = true;
- this.headCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.headCheckBox.Location = new System.Drawing.Point(6, 50);
- this.headCheckBox.Name = "headCheckBox";
- this.headCheckBox.Size = new System.Drawing.Size(136, 19);
- this.headCheckBox.TabIndex = 5;
- this.headCheckBox.Text = "Remove Head Box";
- this.headCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.headCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
- "or this part. Armor will be disabled for this part, but can be rendered again wi" +
- "th the armor flags. ");
- this.headCheckBox.UseSelectable = true;
- //
- // leftLegCheckBox
- //
- this.leftLegCheckBox.AutoSize = true;
- this.leftLegCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.leftLegCheckBox.Location = new System.Drawing.Point(6, 174);
- this.leftLegCheckBox.Name = "leftLegCheckBox";
- this.leftLegCheckBox.Size = new System.Drawing.Size(153, 19);
- this.leftLegCheckBox.TabIndex = 4;
- this.leftLegCheckBox.Text = "Remove Left Leg Box";
- this.leftLegCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.leftLegCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
- "or this part. Armor will be disabled for this part, but can be rendered again wi" +
- "th the armor flags. ");
- this.leftLegCheckBox.UseSelectable = true;
- //
- // rightArmCheckBox
- //
- this.rightArmCheckBox.AutoSize = true;
- this.rightArmCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.rightArmCheckBox.Location = new System.Drawing.Point(6, 143);
- this.rightArmCheckBox.Name = "rightArmCheckBox";
- this.rightArmCheckBox.Size = new System.Drawing.Size(166, 19);
- this.rightArmCheckBox.TabIndex = 3;
- this.rightArmCheckBox.Text = "Remove Right Arm Box";
- this.rightArmCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.rightArmCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
- "or this part. Armor will be disabled for this part, but can be rendered again wi" +
- "th the armor flags. ");
- this.rightArmCheckBox.UseSelectable = true;
- //
- // leftArmCheckBox
- //
- this.leftArmCheckBox.AutoSize = true;
- this.leftArmCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.leftArmCheckBox.Location = new System.Drawing.Point(6, 112);
- this.leftArmCheckBox.Name = "leftArmCheckBox";
- this.leftArmCheckBox.Size = new System.Drawing.Size(157, 19);
- this.leftArmCheckBox.TabIndex = 2;
- this.leftArmCheckBox.Text = "Remove Left Arm Box";
- this.leftArmCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.leftArmCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
- "or this part. Armor will be disabled for this part, but can be rendered again wi" +
- "th the armor flags. ");
- this.leftArmCheckBox.UseSelectable = true;
- //
- // bodyCheckBox
- //
- this.bodyCheckBox.AutoSize = true;
- this.bodyCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.bodyCheckBox.Location = new System.Drawing.Point(6, 81);
- this.bodyCheckBox.Name = "bodyCheckBox";
- this.bodyCheckBox.Size = new System.Drawing.Size(135, 19);
- this.bodyCheckBox.TabIndex = 1;
- this.bodyCheckBox.Text = "Remove Body Box";
- this.bodyCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.bodyCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
- "or this part. Armor will be disabled for this part, but can be rendered again wi" +
- "th the armor flags. ");
- this.bodyCheckBox.UseSelectable = true;
- //
- // classicCheckBox
- //
- this.classicCheckBox.AutoSize = true;
- this.classicCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.classicCheckBox.Location = new System.Drawing.Point(6, 19);
- this.classicCheckBox.Name = "classicCheckBox";
- this.classicCheckBox.Size = new System.Drawing.Size(136, 19);
- this.classicCheckBox.TabIndex = 0;
- this.classicCheckBox.Text = "64x64 Classic Skin";
- this.classicCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.classicCheckBox, " The 1.8 style skin type with overlays for each part and separate textur" +
- "es for right and left limbs. Resolution is also set to 64x64. ");
- this.classicCheckBox.UseSelectable = true;
- //
- // rightArmOCheckBox
- //
- this.rightArmOCheckBox.AutoSize = true;
- this.rightArmOCheckBox.BackColor = System.Drawing.Color.Transparent;
- this.rightArmOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.rightArmOCheckBox.Location = new System.Drawing.Point(180, 143);
- this.rightArmOCheckBox.Name = "rightArmOCheckBox";
- this.rightArmOCheckBox.Size = new System.Drawing.Size(203, 19);
- this.rightArmOCheckBox.TabIndex = 10;
- this.rightArmOCheckBox.Text = "Remove Right Arm Layer Box";
- this.rightArmOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.rightArmOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
- "or this part. Armor will be disabled for this part, but can be rendered again wi" +
- "th the armor flags. ");
- this.rightArmOCheckBox.UseSelectable = true;
- //
- // effectsGroup2
- //
- this.effectsGroup2.Controls.Add(this.rightLeggingCheckBox);
- this.effectsGroup2.Controls.Add(this.helmetCheckBox);
- this.effectsGroup2.Controls.Add(this.leftLeggingCheckBox);
- this.effectsGroup2.Controls.Add(this.rightArmorCheckBox);
- this.effectsGroup2.Controls.Add(this.leftArmorCheckBox);
- this.effectsGroup2.Controls.Add(this.chestplateCheckBox);
- this.effectsGroup2.ForeColor = System.Drawing.SystemColors.Window;
- this.effectsGroup2.Location = new System.Drawing.Point(421, 183);
- this.effectsGroup2.Name = "effectsGroup2";
- this.effectsGroup2.Size = new System.Drawing.Size(188, 203);
- this.effectsGroup2.TabIndex = 14;
- this.effectsGroup2.TabStop = false;
- this.effectsGroup2.Text = "Armor Flags";
- //
- // rightLeggingCheckBox
- //
- this.rightLeggingCheckBox.AutoSize = true;
- this.rightLeggingCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.rightLeggingCheckBox.Location = new System.Drawing.Point(6, 174);
- this.rightLeggingCheckBox.Name = "rightLeggingCheckBox";
- this.rightLeggingCheckBox.Size = new System.Drawing.Size(173, 19);
- this.rightLeggingCheckBox.TabIndex = 7;
- this.rightLeggingCheckBox.Text = "Render Right Leg Armor";
- this.rightLeggingCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.rightLeggingCheckBox, " Forcefully enables the specified armor piece.");
- this.rightLeggingCheckBox.UseSelectable = true;
- //
- // helmetCheckBox
- //
- this.helmetCheckBox.AutoSize = true;
- this.helmetCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.helmetCheckBox.Location = new System.Drawing.Point(6, 19);
- this.helmetCheckBox.Name = "helmetCheckBox";
- this.helmetCheckBox.Size = new System.Drawing.Size(147, 19);
- this.helmetCheckBox.TabIndex = 5;
- this.helmetCheckBox.Text = "Render Head Armor";
- this.helmetCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.helmetCheckBox, " Forcefully enables the specified armor piece.");
- this.helmetCheckBox.UseSelectable = true;
- //
- // leftLeggingCheckBox
- //
- this.leftLeggingCheckBox.AutoSize = true;
- this.leftLeggingCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.leftLeggingCheckBox.Location = new System.Drawing.Point(6, 143);
- this.leftLeggingCheckBox.Name = "leftLeggingCheckBox";
- this.leftLeggingCheckBox.Size = new System.Drawing.Size(164, 19);
- this.leftLeggingCheckBox.TabIndex = 4;
- this.leftLeggingCheckBox.Text = "Render Left Leg Armor";
- this.leftLeggingCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.leftLeggingCheckBox, " Forcefully enables the specified armor piece.");
- this.leftLeggingCheckBox.UseSelectable = true;
- //
- // rightArmorCheckBox
- //
- this.rightArmorCheckBox.AutoSize = true;
- this.rightArmorCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.rightArmorCheckBox.Location = new System.Drawing.Point(6, 112);
- this.rightArmorCheckBox.Name = "rightArmorCheckBox";
- this.rightArmorCheckBox.Size = new System.Drawing.Size(177, 19);
- this.rightArmorCheckBox.TabIndex = 3;
- this.rightArmorCheckBox.Text = "Render Right Arm Armor";
- this.rightArmorCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.rightArmorCheckBox, " Forcefully enables the specified armor piece.");
- this.rightArmorCheckBox.UseSelectable = true;
- //
- // leftArmorCheckBox
- //
- this.leftArmorCheckBox.AutoSize = true;
- this.leftArmorCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.leftArmorCheckBox.Location = new System.Drawing.Point(6, 81);
- this.leftArmorCheckBox.Name = "leftArmorCheckBox";
- this.leftArmorCheckBox.Size = new System.Drawing.Size(168, 19);
- this.leftArmorCheckBox.TabIndex = 2;
- this.leftArmorCheckBox.Text = "Render Left Arm Armor";
- this.leftArmorCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.leftArmorCheckBox, " Forcefully enables the specified armor piece.");
- this.leftArmorCheckBox.UseSelectable = true;
- //
- // chestplateCheckBox
- //
- this.chestplateCheckBox.AutoSize = true;
- this.chestplateCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.chestplateCheckBox.Location = new System.Drawing.Point(6, 50);
- this.chestplateCheckBox.Name = "chestplateCheckBox";
- this.chestplateCheckBox.Size = new System.Drawing.Size(146, 19);
- this.chestplateCheckBox.TabIndex = 1;
- this.chestplateCheckBox.Text = "Render Body Armor";
- this.chestplateCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.chestplateCheckBox, " Forcefully enables the specified armor piece.");
- this.chestplateCheckBox.UseSelectable = true;
- //
- // groupBox1
- //
- this.groupBox1.Controls.Add(this.unknownCheckBox);
- this.groupBox1.Controls.Add(this.crouchCheckBox);
- this.groupBox1.Controls.Add(this.dinnerboneCheckBox);
- this.groupBox1.Controls.Add(this.noArmorCheckBox);
- this.groupBox1.Controls.Add(this.bobbingCheckBox);
- this.groupBox1.Controls.Add(this.santaCheckBox);
- this.groupBox1.Controls.Add(this.syncLegsCheckBox);
- this.groupBox1.Controls.Add(this.staticArmsCheckBox);
- this.groupBox1.Controls.Add(this.syncArmsCheckBox);
- this.groupBox1.Controls.Add(this.statueCheckBox);
- this.groupBox1.Controls.Add(this.zombieCheckBox);
- this.groupBox1.Controls.Add(this.staticLegsCheckBox);
- this.groupBox1.ForeColor = System.Drawing.SystemColors.Window;
- this.groupBox1.Location = new System.Drawing.Point(22, 388);
- this.groupBox1.Name = "groupBox1";
- this.groupBox1.Size = new System.Drawing.Size(587, 115);
- this.groupBox1.TabIndex = 15;
- this.groupBox1.TabStop = false;
- this.groupBox1.Text = "Special Animations";
- //
- // unknownCheckBox
- //
- this.unknownCheckBox.AutoSize = true;
- this.unknownCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.unknownCheckBox.Location = new System.Drawing.Point(126, 81);
- this.unknownCheckBox.Name = "unknownCheckBox";
- this.unknownCheckBox.Size = new System.Drawing.Size(84, 19);
- this.unknownCheckBox.TabIndex = 13;
- this.unknownCheckBox.Text = "Unknown";
- this.unknownCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.unknownCheckBox, " If you figure out what this is. Please reach out to MNL#8935 on Discord. (: " +
- "");
- this.unknownCheckBox.UseSelectable = true;
- //
- // crouchCheckBox
- //
- this.crouchCheckBox.AutoSize = true;
- this.crouchCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.crouchCheckBox.Location = new System.Drawing.Point(126, 50);
- this.crouchCheckBox.Name = "crouchCheckBox";
- this.crouchCheckBox.Size = new System.Drawing.Size(137, 19);
- this.crouchCheckBox.TabIndex = 12;
- this.crouchCheckBox.Text = "Backwards Crouch";
- this.crouchCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.crouchCheckBox, " The crouch animation is reversed so that the arms and body lean back. Usefu" +
- "l for small skins. ");
- this.crouchCheckBox.UseSelectable = true;
- //
- // dinnerboneCheckBox
- //
- this.dinnerboneCheckBox.AutoSize = true;
- this.dinnerboneCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.dinnerboneCheckBox.Location = new System.Drawing.Point(126, 19);
- this.dinnerboneCheckBox.Name = "dinnerboneCheckBox";
- this.dinnerboneCheckBox.Size = new System.Drawing.Size(97, 19);
- this.dinnerboneCheckBox.TabIndex = 11;
- this.dinnerboneCheckBox.Text = "Dinnerbone";
- this.dinnerboneCheckBox.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.dinnerboneCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.dinnerboneCheckBox, " Flips the skin upside down like Dinnerbone\'s skin, a Minecraft developer. ");
- this.dinnerboneCheckBox.UseSelectable = true;
- //
- // noArmorCheckBox
- //
- this.noArmorCheckBox.AutoSize = true;
- this.noArmorCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.noArmorCheckBox.Location = new System.Drawing.Point(420, 81);
- this.noArmorCheckBox.Name = "noArmorCheckBox";
- this.noArmorCheckBox.Size = new System.Drawing.Size(131, 19);
- this.noArmorCheckBox.TabIndex = 10;
- this.noArmorCheckBox.Text = "Disable All Armor";
- this.noArmorCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.noArmorCheckBox, " Disables all armor desptie the armor flags. ");
- this.noArmorCheckBox.UseSelectable = true;
- //
- // bobbingCheckBox
- //
- this.bobbingCheckBox.AutoSize = true;
- this.bobbingCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.bobbingCheckBox.Location = new System.Drawing.Point(272, 50);
- this.bobbingCheckBox.Name = "bobbingCheckBox";
- this.bobbingCheckBox.Size = new System.Drawing.Size(124, 19);
- this.bobbingCheckBox.TabIndex = 9;
- this.bobbingCheckBox.Text = "Disable Bobbing";
- this.bobbingCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.bobbingCheckBox, " Disables the bobbing effect in first person.");
- this.bobbingCheckBox.UseSelectable = true;
- //
- // santaCheckBox
- //
- this.santaCheckBox.AutoSize = true;
- this.santaCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.santaCheckBox.Location = new System.Drawing.Point(420, 50);
- this.santaCheckBox.Name = "santaCheckBox";
- this.santaCheckBox.Size = new System.Drawing.Size(86, 19);
- this.santaCheckBox.TabIndex = 8;
- this.santaCheckBox.Text = "Bad Santa";
- this.santaCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.santaCheckBox, " The skin sits down after about 10 seconds of no controller input. Made for" +
- " Bad Santa in the \"Festive\" skin pack. ");
- this.santaCheckBox.UseSelectable = true;
- //
- // syncLegsCheckBox
- //
- this.syncLegsCheckBox.AutoSize = true;
- this.syncLegsCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.syncLegsCheckBox.Location = new System.Drawing.Point(272, 19);
- this.syncLegsCheckBox.Name = "syncLegsCheckBox";
- this.syncLegsCheckBox.Size = new System.Drawing.Size(136, 19);
- this.syncLegsCheckBox.TabIndex = 7;
- this.syncLegsCheckBox.Text = "Synchronous Legs";
- this.syncLegsCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.syncLegsCheckBox, " These parts will move at the same time and angle as each other. ");
- this.syncLegsCheckBox.UseSelectable = true;
- //
- // staticArmsCheckBox
- //
- this.staticArmsCheckBox.AutoSize = true;
- this.staticArmsCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.staticArmsCheckBox.Location = new System.Drawing.Point(6, 19);
- this.staticArmsCheckBox.Name = "staticArmsCheckBox";
- this.staticArmsCheckBox.Size = new System.Drawing.Size(94, 19);
- this.staticArmsCheckBox.TabIndex = 5;
- this.staticArmsCheckBox.Text = "Static Arms";
- this.staticArmsCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.staticArmsCheckBox, " These parts will not move in most animations. ");
- this.staticArmsCheckBox.UseSelectable = true;
- //
- // syncArmsCheckBox
- //
- this.syncArmsCheckBox.AutoSize = true;
- this.syncArmsCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.syncArmsCheckBox.Location = new System.Drawing.Point(420, 19);
- this.syncArmsCheckBox.Name = "syncArmsCheckBox";
- this.syncArmsCheckBox.Size = new System.Drawing.Size(140, 19);
- this.syncArmsCheckBox.TabIndex = 4;
- this.syncArmsCheckBox.Text = "Synchronous Arms";
- this.syncArmsCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.syncArmsCheckBox, " These parts will move at the same time and angle as each other. ");
- this.syncArmsCheckBox.UseSelectable = true;
- //
- // statueCheckBox
- //
- this.statueCheckBox.AutoSize = true;
- this.statueCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.statueCheckBox.Location = new System.Drawing.Point(272, 81);
- this.statueCheckBox.Name = "statueCheckBox";
- this.statueCheckBox.Size = new System.Drawing.Size(126, 19);
- this.statueCheckBox.TabIndex = 3;
- this.statueCheckBox.Text = "Statue of Liberty";
- this.statueCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.statueCheckBox, " The right arm is lifted like the Statue of Liberty. Made for Angel of Libe" +
- "rty in the \"Doctor Who Volume I\" skin pack. ");
- this.statueCheckBox.UseSelectable = true;
- //
- // zombieCheckBox
- //
- this.zombieCheckBox.AutoSize = true;
- this.zombieCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.zombieCheckBox.Location = new System.Drawing.Point(6, 81);
- this.zombieCheckBox.Name = "zombieCheckBox";
- this.zombieCheckBox.Size = new System.Drawing.Size(107, 19);
- this.zombieCheckBox.TabIndex = 2;
- this.zombieCheckBox.Text = "Zombie Arms";
- this.zombieCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.zombieCheckBox, " Both arms will stick up like a Zombie. ");
- this.zombieCheckBox.UseSelectable = true;
- //
- // staticLegsCheckBox
- //
- this.staticLegsCheckBox.AutoSize = true;
- this.staticLegsCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
- this.staticLegsCheckBox.Location = new System.Drawing.Point(6, 50);
- this.staticLegsCheckBox.Name = "staticLegsCheckBox";
- this.staticLegsCheckBox.Size = new System.Drawing.Size(90, 19);
- this.staticLegsCheckBox.TabIndex = 1;
- this.staticLegsCheckBox.Text = "Static Legs";
- this.staticLegsCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.toolTip.SetToolTip(this.staticLegsCheckBox, " These parts will not move in most animations. ");
- this.staticLegsCheckBox.UseSelectable = true;
- //
- // copyButton
- //
- this.copyButton.Location = new System.Drawing.Point(425, 119);
- this.copyButton.Name = "copyButton";
- this.copyButton.Size = new System.Drawing.Size(173, 23);
- this.copyButton.TabIndex = 22;
- this.copyButton.Text = "Copy ANIM Value";
- this.copyButton.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.copyButton.UseSelectable = true;
- this.copyButton.Click += new System.EventHandler(this.copyButton_Click);
- //
- // importButton
- //
- this.importButton.Location = new System.Drawing.Point(32, 119);
- this.importButton.Name = "importButton";
- this.importButton.Size = new System.Drawing.Size(186, 23);
- this.importButton.TabIndex = 23;
- this.importButton.Text = "Import ANIM";
- this.importButton.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.importButton.UseSelectable = true;
- this.importButton.Click += new System.EventHandler(this.importButton_Click);
- //
- // exportButton
- //
- this.exportButton.Location = new System.Drawing.Point(229, 119);
- this.exportButton.Name = "exportButton";
- this.exportButton.Size = new System.Drawing.Size(186, 23);
- this.exportButton.TabIndex = 24;
- this.exportButton.Text = "Export Template Texture";
- this.exportButton.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.exportButton.UseSelectable = true;
- this.exportButton.Click += new System.EventHandler(this.exportButton_Click);
- //
- // animValue
- //
- this.animValue.AutoSize = true;
- this.animValue.FontSize = MetroFramework.MetroLabelSize.Tall;
- this.animValue.FontWeight = MetroFramework.MetroLabelWeight.Regular;
- this.animValue.Location = new System.Drawing.Point(260, 60);
- this.animValue.Name = "animValue";
- this.animValue.Size = new System.Drawing.Size(110, 25);
- this.animValue.TabIndex = 25;
- this.animValue.Text = "0x00000000";
- this.animValue.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.animValue.Theme = MetroFramework.MetroThemeStyle.Dark;
- //
- // uncheckButton
- //
- this.uncheckButton.Location = new System.Drawing.Point(229, 90);
- this.uncheckButton.Name = "uncheckButton";
- this.uncheckButton.Size = new System.Drawing.Size(186, 23);
- this.uncheckButton.TabIndex = 26;
- this.uncheckButton.Text = "Uncheck All";
- this.uncheckButton.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.uncheckButton.UseSelectable = true;
- this.uncheckButton.Click += new System.EventHandler(this.uncheckButton_Click);
- //
- // checkButton
- //
- this.checkButton.Location = new System.Drawing.Point(32, 90);
- this.checkButton.Name = "checkButton";
- this.checkButton.Size = new System.Drawing.Size(186, 23);
- this.checkButton.TabIndex = 27;
- this.checkButton.Text = "Check All";
- this.checkButton.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.checkButton.UseSelectable = true;
- this.checkButton.Click += new System.EventHandler(this.checkButton_Click);
- //
- // toolTip
- //
- this.toolTip.StripAmpersands = true;
- this.toolTip.Style = MetroFramework.MetroColorStyle.Blue;
- this.toolTip.StyleManager = null;
- this.toolTip.Theme = MetroFramework.MetroThemeStyle.Dark;
- //
- // resetButton
- //
- this.resetButton.Location = new System.Drawing.Point(425, 90);
- this.resetButton.Name = "resetButton";
- this.resetButton.Size = new System.Drawing.Size(173, 23);
- this.resetButton.TabIndex = 28;
- this.resetButton.Text = "Restore ANIM";
- this.resetButton.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.resetButton.UseSelectable = true;
- this.resetButton.Click += new System.EventHandler(this.resetButton_Click);
- //
- // templateButton
- //
- this.templateButton.Location = new System.Drawing.Point(425, 154);
- this.templateButton.Name = "templateButton";
- this.templateButton.Size = new System.Drawing.Size(173, 23);
- this.templateButton.TabIndex = 29;
- this.templateButton.Text = "Skin Presets";
- this.templateButton.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.templateButton.UseSelectable = true;
- this.templateButton.Click += new System.EventHandler(this.templateButton_Click);
- //
- // ANIMEditor
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(630, 554);
- this.Controls.Add(this.templateButton);
- this.Controls.Add(this.effectsGroup);
- this.Controls.Add(this.resetButton);
- this.Controls.Add(this.checkButton);
- this.Controls.Add(this.uncheckButton);
- this.Controls.Add(this.animValue);
- this.Controls.Add(this.exportButton);
- this.Controls.Add(this.importButton);
- this.Controls.Add(this.copyButton);
- this.Controls.Add(this.groupBox1);
- this.Controls.Add(this.effectsGroup2);
- this.Controls.Add(this.closeButton);
- this.MaximumSize = new System.Drawing.Size(630, 554);
- this.MinimizeBox = false;
- this.MinimumSize = new System.Drawing.Size(630, 554);
- this.Name = "ANIMEditor";
- this.Style = MetroFramework.MetroColorStyle.Silver;
- this.Text = "ANIM Editor";
- this.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.effectsGroup.ResumeLayout(false);
- this.effectsGroup.PerformLayout();
- this.effectsGroup2.ResumeLayout(false);
- this.effectsGroup2.PerformLayout();
- this.groupBox1.ResumeLayout(false);
- this.groupBox1.PerformLayout();
- this.ResumeLayout(false);
- this.PerformLayout();
-
- }
-
- #endregion
- private MetroFramework.Controls.MetroButton closeButton;
- private System.Windows.Forms.GroupBox effectsGroup;
- private MetroFramework.Controls.MetroCheckBox headCheckBox;
- private MetroFramework.Controls.MetroCheckBox leftLegCheckBox;
- private MetroFramework.Controls.MetroCheckBox rightArmCheckBox;
- private MetroFramework.Controls.MetroCheckBox leftArmCheckBox;
- private MetroFramework.Controls.MetroCheckBox bodyCheckBox;
- private MetroFramework.Controls.MetroCheckBox classicCheckBox;
- private MetroFramework.Controls.MetroCheckBox slimCheckBox;
- private MetroFramework.Controls.MetroCheckBox rightLegCheckBox;
- private MetroFramework.Controls.MetroCheckBox rightLegOCheckBox;
- private MetroFramework.Controls.MetroCheckBox headOCheckBox;
- private MetroFramework.Controls.MetroCheckBox leftLegOCheckBox;
- private MetroFramework.Controls.MetroCheckBox rightArmOCheckBox;
- private MetroFramework.Controls.MetroCheckBox leftArmOCheckBox;
- private MetroFramework.Controls.MetroCheckBox bodyOCheckBox;
- private System.Windows.Forms.GroupBox effectsGroup2;
- private MetroFramework.Controls.MetroCheckBox rightLeggingCheckBox;
- private MetroFramework.Controls.MetroCheckBox helmetCheckBox;
- private MetroFramework.Controls.MetroCheckBox leftLeggingCheckBox;
- private MetroFramework.Controls.MetroCheckBox rightArmorCheckBox;
- private MetroFramework.Controls.MetroCheckBox leftArmorCheckBox;
- private MetroFramework.Controls.MetroCheckBox chestplateCheckBox;
- private System.Windows.Forms.GroupBox groupBox1;
- private MetroFramework.Controls.MetroCheckBox syncLegsCheckBox;
- private MetroFramework.Controls.MetroCheckBox staticArmsCheckBox;
- private MetroFramework.Controls.MetroCheckBox syncArmsCheckBox;
- private MetroFramework.Controls.MetroCheckBox statueCheckBox;
- private MetroFramework.Controls.MetroCheckBox zombieCheckBox;
- private MetroFramework.Controls.MetroCheckBox staticLegsCheckBox;
- private MetroFramework.Controls.MetroCheckBox bobbingCheckBox;
- private MetroFramework.Controls.MetroCheckBox santaCheckBox;
- private MetroFramework.Controls.MetroCheckBox noArmorCheckBox;
- private MetroFramework.Controls.MetroCheckBox dinnerboneCheckBox;
- private MetroFramework.Controls.MetroCheckBox crouchCheckBox;
- private MetroFramework.Controls.MetroCheckBox unknownCheckBox;
- private MetroFramework.Controls.MetroButton copyButton;
- private MetroFramework.Controls.MetroButton importButton;
- private MetroFramework.Controls.MetroButton exportButton;
- private MetroFramework.Controls.MetroLabel animValue;
- private MetroFramework.Controls.MetroButton uncheckButton;
- private MetroFramework.Controls.MetroButton checkButton;
- private MetroFramework.Components.MetroToolTip toolTip;
- private MetroFramework.Controls.MetroButton resetButton;
- private MetroFramework.Controls.MetroButton templateButton;
- }
-}
\ No newline at end of file
diff --git a/PCK-Studio/Forms/Utilities/Skins/ANIMEditor.cs b/PCK-Studio/Forms/Utilities/Skins/ANIMEditor.cs
deleted file mode 100644
index e3acff76..00000000
--- a/PCK-Studio/Forms/Utilities/Skins/ANIMEditor.cs
+++ /dev/null
@@ -1,280 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Drawing;
-using System.Linq;
-using System.IO;
-using System.Windows.Forms;
-using PckStudio.Classes.Utils;
-using PckStudio.Forms.Additional_Popups;
-
-namespace PckStudio.Forms.Utilities.Skins
-{
- public partial class ANIMEditor : MetroFramework.Forms.MetroForm
- {
- public bool saved = false;
- readonly SkinANIM initialANIM;
- public string outANIM => animValue.Text;
- SkinANIM anim = new SkinANIM();
-
- void processCheckBoxes(bool set_all = false, bool value = false)
- {
- #region processes every single checkbox with the correct ANIM flags
- helmetCheckBox.Enabled = set_all ? value : anim.GetFlag(ANIM_EFFECTS.HEAD_DISABLED);
- chestplateCheckBox.Enabled = set_all ? value : anim.GetFlag(ANIM_EFFECTS.BODY_DISABLED);
- leftArmorCheckBox.Enabled = set_all ? value : anim.GetFlag(ANIM_EFFECTS.LEFT_ARM_DISABLED);
- rightArmorCheckBox.Enabled = set_all ? value : anim.GetFlag(ANIM_EFFECTS.RIGHT_ARM_DISABLED);
- leftLeggingCheckBox.Enabled = set_all ? value : anim.GetFlag(ANIM_EFFECTS.LEFT_LEG_DISABLED);
- rightLeggingCheckBox.Enabled = set_all ? value : anim.GetFlag(ANIM_EFFECTS.RIGHT_LEG_DISABLED);
-
- bobbingCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.HEAD_BOBBING_DISABLED);
- bodyCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.BODY_DISABLED);
- bodyOCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.BODY_OVERLAY_DISABLED);
- chestplateCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.FORCE_BODY_ARMOR);
-
- classicCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.RESOLUTION_64x64);
- crouchCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.DO_BACKWARDS_CROUCH);
- dinnerboneCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.DINNERBONE);
- headCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.HEAD_DISABLED);
-
- headOCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.HEAD_OVERLAY_DISABLED);
- helmetCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.FORCE_HEAD_ARMOR);
- leftArmCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.LEFT_ARM_DISABLED);
- leftArmOCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.LEFT_ARM_OVERLAY_DISABLED);
-
- leftArmorCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.FORCE_LEFT_ARM_ARMOR);
- leftLegCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.LEFT_LEG_DISABLED);
- leftLeggingCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.FORCE_LEFT_LEG_ARMOR);
- leftLegOCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.LEFT_LEG_OVERLAY_DISABLED);
-
- noArmorCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.ALL_ARMOR_DISABLED);
- rightArmCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.RIGHT_ARM_DISABLED);
- rightArmOCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.RIGHT_ARM_OVERLAY_DISABLED);
- rightArmorCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.FORCE_RIGHT_ARM_ARMOR);
-
- rightLegCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.RIGHT_LEG_DISABLED);
- rightLeggingCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.FORCE_RIGHT_LEG_ARMOR);
- rightLegOCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.RIGHT_LEG_OVERLAY_DISABLED);
- santaCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.BAD_SANTA);
-
- slimCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.SLIM_MODEL);
- staticArmsCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.STATIC_ARMS);
- staticLegsCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.STATIC_LEGS);
- statueCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.STATUE_OF_LIBERTY);
-
- syncArmsCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.SYNCED_ARMS);
- syncLegsCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.SYNCED_LEGS);
- unknownCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.__BIT_4);
- zombieCheckBox.Checked = set_all ? value : anim.GetFlag(ANIM_EFFECTS.ZOMBIE_ARMS);
- #endregion
- }
-
- public ANIMEditor(string ANIM)
- {
- InitializeComponent();
- if (!SkinANIM.IsValidANIM(ANIM))
- {
- DialogResult = DialogResult.Abort;
- Close();
- }
- initialANIM = anim = new SkinANIM(ANIM);
-
- #region Event definitions, since the designer can't parse lambda experessions
- bobbingCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.HEAD_BOBBING_DISABLED); };
- bodyCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.BODY_DISABLED); };
- bodyOCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.BODY_OVERLAY_DISABLED); };
- chestplateCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.FORCE_BODY_ARMOR); };
-
- classicCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.RESOLUTION_64x64); };
- crouchCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.DO_BACKWARDS_CROUCH); };
- dinnerboneCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.DINNERBONE); };
- headCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.HEAD_DISABLED); };
-
- headOCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.HEAD_OVERLAY_DISABLED); };
- helmetCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.FORCE_HEAD_ARMOR); };
- leftArmCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.LEFT_ARM_DISABLED); };
- leftArmOCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.LEFT_ARM_OVERLAY_DISABLED); };
-
- leftArmorCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.FORCE_LEFT_ARM_ARMOR); };
- leftLegCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.LEFT_LEG_DISABLED); };
- leftLeggingCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.FORCE_LEFT_LEG_ARMOR); };
- leftLegOCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.LEFT_LEG_OVERLAY_DISABLED); };
-
- noArmorCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.ALL_ARMOR_DISABLED); };
- rightArmCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.RIGHT_ARM_DISABLED); };
- rightArmOCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.RIGHT_ARM_OVERLAY_DISABLED); };
- rightArmorCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.FORCE_RIGHT_ARM_ARMOR); };
-
- rightLegCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.RIGHT_LEG_DISABLED); };
- rightLeggingCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.FORCE_RIGHT_LEG_ARMOR); };
- rightLegOCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.RIGHT_LEG_OVERLAY_DISABLED); };
- santaCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.BAD_SANTA); };
-
- slimCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.SLIM_MODEL); };
- staticArmsCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.STATIC_ARMS); };
- staticLegsCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.STATIC_LEGS); };
- statueCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.STATUE_OF_LIBERTY); };
-
- syncArmsCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.SYNCED_ARMS); };
- syncLegsCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.SYNCED_LEGS); };
- unknownCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.__BIT_4); };
- zombieCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.ZOMBIE_ARMS); };
-
- helmetCheckBox.EnabledChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.FORCE_HEAD_ARMOR); };
- chestplateCheckBox.EnabledChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.FORCE_BODY_ARMOR); };
- rightArmorCheckBox.EnabledChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.FORCE_RIGHT_ARM_ARMOR); };
- leftArmorCheckBox.EnabledChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.FORCE_LEFT_ARM_ARMOR); };
- rightLeggingCheckBox.EnabledChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.FORCE_RIGHT_LEG_ARMOR); };
- leftLeggingCheckBox.EnabledChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, ANIM_EFFECTS.FORCE_LEFT_LEG_ARMOR); };
- #endregion
- processCheckBoxes();
- }
-
- private void closeButton_Click(object sender, EventArgs e)
- {
- DialogResult = DialogResult.OK;
-
- saved = true;
- Close();
- }
-
- private void flagChanged(object sender, EventArgs e, ANIM_EFFECTS flag)
- {
- // Set value
- anim.SetFlag(flag, ((CheckBox)sender).Checked && ((CheckBox)sender).Enabled);
-
- // Armor flags don't work if the respective parts are not enabled
- helmetCheckBox.Enabled = anim.GetFlag(ANIM_EFFECTS.HEAD_DISABLED);
- chestplateCheckBox.Enabled = anim.GetFlag(ANIM_EFFECTS.BODY_DISABLED);
- rightArmorCheckBox.Enabled = anim.GetFlag(ANIM_EFFECTS.RIGHT_ARM_DISABLED);
- leftArmorCheckBox.Enabled = anim.GetFlag(ANIM_EFFECTS.LEFT_ARM_DISABLED);
- rightLeggingCheckBox.Enabled = anim.GetFlag(ANIM_EFFECTS.RIGHT_LEG_DISABLED);
- leftLeggingCheckBox.Enabled = anim.GetFlag(ANIM_EFFECTS.LEFT_LEG_DISABLED);
-
- animValue.Text = anim.ToString();
- }
-
- private void copyButton_Click(object sender, EventArgs e)
- {
- Clipboard.SetText(animValue.Text);
- }
-
- private void importButton_Click(object sender, EventArgs e)
- {
- string new_value = "";
-
- bool first = true;
- while (!SkinANIM.IsValidANIM(new_value))
- {
- if (!first) MessageBox.Show($"The following value \"{new_value}\" is not valid. Please try again.");
- RenamePrompt diag = new RenamePrompt(new_value);
- diag.TextLabel.Text = "ANIM";
- diag.OKButton.Text = "Ok";
- if (diag.ShowDialog() == DialogResult.OK)
- {
- new_value = diag.NewText;
- }
- else return;
- first = false;
- }
- anim = new SkinANIM(new_value);
- processCheckBoxes();
- }
-
- private void uncheckButton_Click(object sender, EventArgs e)
- {
- processCheckBoxes(true);
- }
-
- private void checkButton_Click(object sender, EventArgs e)
- {
- processCheckBoxes(true, true);
- }
-
- private void exportButton_Click(object sender, EventArgs e)
- {
- SaveFileDialog saveFileDialog = new SaveFileDialog();
- saveFileDialog.FileName = animValue.Text + ".png";
- saveFileDialog.Filter = "Skin textures|*.png";
- if (saveFileDialog.ShowDialog() != DialogResult.OK ||
- string.IsNullOrWhiteSpace(Path.GetDirectoryName(saveFileDialog.FileName))) return;
- bool isSlim = anim.GetFlag(ANIM_EFFECTS.SLIM_MODEL);
- bool isClassic64 = anim.GetFlag(ANIM_EFFECTS.RESOLUTION_64x64);
- bool isClassic32 = !isSlim && !isClassic64;
-
- Image skin = isSlim ? Properties.Resources.slim_template : Properties.Resources.classic_template;
-
- #region Image processing code for generating the skin templates based on the input ANIM value
- Bitmap nb = new Bitmap(64, (!isSlim && !isClassic64) ? 32 : 64);
- using (Graphics g = Graphics.FromImage(nb))
- {
- g.DrawImage(skin, new Rectangle(0, 0, 64, isClassic32 ? 32 : 64), new Rectangle(0, 0, 64, isClassic32 ? 32 : 64), GraphicsUnit.Pixel);
- if (anim.GetFlag(ANIM_EFFECTS.HEAD_OVERLAY_DISABLED)) g.FillRectangle(Brushes.Magenta, new Rectangle(32, 0, 32, 16));
- if (anim.GetFlag(ANIM_EFFECTS.HEAD_DISABLED)) g.FillRectangle(Brushes.Magenta, new Rectangle(0, 0, 32, 16));
- if (anim.GetFlag(ANIM_EFFECTS.BODY_DISABLED)) g.FillRectangle(Brushes.Magenta, new Rectangle(16, 16, 24, 16));
- if (nb.Height == 64)
- {
- if (anim.GetFlag(ANIM_EFFECTS.RIGHT_ARM_DISABLED)) g.FillRectangle(Brushes.Magenta, new Rectangle(40, 16, 16, 16));
- if (anim.GetFlag(ANIM_EFFECTS.RIGHT_LEG_DISABLED)) g.FillRectangle(Brushes.Magenta, new Rectangle(0, 16, 16, 16));
- if (anim.GetFlag(ANIM_EFFECTS.BODY_OVERLAY_DISABLED)) g.FillRectangle(Brushes.Magenta, new Rectangle(16, 32, 24, 16));
- if (anim.GetFlag(ANIM_EFFECTS.RIGHT_ARM_OVERLAY_DISABLED)) g.FillRectangle(Brushes.Magenta, new Rectangle(40, 32, 16, 16));
- if (anim.GetFlag(ANIM_EFFECTS.RIGHT_LEG_OVERLAY_DISABLED)) g.FillRectangle(Brushes.Magenta, new Rectangle(0, 32, 16, 16));
- if (anim.GetFlag(ANIM_EFFECTS.LEFT_LEG_OVERLAY_DISABLED)) g.FillRectangle(Brushes.Magenta, new Rectangle(0, 48, 16, 16));
- if (anim.GetFlag(ANIM_EFFECTS.LEFT_LEG_DISABLED)) g.FillRectangle(Brushes.Magenta, new Rectangle(16, 48, 16, 16));
- if (anim.GetFlag(ANIM_EFFECTS.LEFT_ARM_DISABLED)) g.FillRectangle(Brushes.Magenta, new Rectangle(32, 48, 16, 16));
- if (anim.GetFlag(ANIM_EFFECTS.LEFT_ARM_OVERLAY_DISABLED)) g.FillRectangle(Brushes.Magenta, new Rectangle(48, 48, 16, 16));
- }
- else
- {
- // Since both classic 32 arms and legs use the same texture, removing the texture would remove both limbs instead of just one.
- // So both must be disabled by the user before they're removed from the texture;
- if (anim.GetFlag(ANIM_EFFECTS.RIGHT_ARM_DISABLED) && anim.GetFlag(ANIM_EFFECTS.LEFT_ARM_DISABLED))
- g.FillRectangle(Brushes.Magenta, new Rectangle(40, 16, 16, 16));
- if (anim.GetFlag(ANIM_EFFECTS.RIGHT_LEG_DISABLED) && anim.GetFlag(ANIM_EFFECTS.LEFT_LEG_DISABLED))
- g.FillRectangle(Brushes.Magenta, new Rectangle(0, 16, 16, 16));
- }
- nb.MakeTransparent(Color.Magenta);
- skin = nb;
- }
- #endregion
-
- skin.Save(saveFileDialog.FileName);
- }
-
- private void resetButton_Click(object sender, EventArgs e)
- {
- anim = initialANIM;
- processCheckBoxes();
- }
-
- static readonly Dictionary Templates = new Dictionary()
- {
- { "Steve (64x32)", ANIM_EFFECTS.NONE },
- { "Steve (64x64)", ANIM_EFFECTS.RESOLUTION_64x64 },
- { "Alex (64x64)", ANIM_EFFECTS.SLIM_MODEL },
- { "Zombie Skins", ANIM_EFFECTS.ZOMBIE_ARMS },
- { "Cetacean Skins", ANIM_EFFECTS.SYNCED_ARMS | ANIM_EFFECTS.SYNCED_LEGS },
- { "Ski Skins", ANIM_EFFECTS.SYNCED_ARMS | ANIM_EFFECTS.STATIC_LEGS },
- { "Ghost Skins", ANIM_EFFECTS.STATIC_LEGS | ANIM_EFFECTS.ZOMBIE_ARMS },
- { "Medusa (Greek Myth.)", ANIM_EFFECTS.SYNCED_LEGS },
- { "Librarian (Halo)", ANIM_EFFECTS.STATIC_LEGS },
- { "Grim Reaper (Halloween)", ANIM_EFFECTS.STATIC_LEGS | ANIM_EFFECTS.STATIC_ARMS }
- };
-
- private void templateButton_Click(object sender, EventArgs e)
- {
- var diag = new ItemSelectionPopUp(Templates.Keys.ToArray());
- diag.label2.Text = "Presets";
- diag.okBtn.Text = "Load";
-
- if (diag.ShowDialog() != DialogResult.OK) return;
-
- var templateANIM = Templates[diag.SelectedItem];
- DialogResult prompt = MessageBox.Show(this, "Would you like to add this preset's effects to your current ANIM? Otherwise all of your effects will be cleared. Either choice can be undone by pressing \"Restore ANIM\".", "", MessageBoxButtons.YesNo);
- if (prompt == DialogResult.Yes) anim |= templateANIM;
- else anim = templateANIM;
- SkinANIM backup = anim;
- processCheckBoxes();
- anim = backup;
- }
- }
-}
diff --git a/PCK-Studio/Forms/Utilities/Skins/ANIMEditor.resx b/PCK-Studio/Forms/Utilities/Skins/ANIMEditor.resx
deleted file mode 100644
index 8766f298..00000000
--- a/PCK-Studio/Forms/Utilities/Skins/ANIMEditor.resx
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- 17, 17
-
-
\ No newline at end of file
diff --git a/PCK-Studio/Forms/Utilities/Skins/BoxEditor.cs b/PCK-Studio/Forms/Utilities/Skins/BoxEditor.cs
deleted file mode 100644
index ddf89fe0..00000000
--- a/PCK-Studio/Forms/Utilities/Skins/BoxEditor.cs
+++ /dev/null
@@ -1,94 +0,0 @@
-using System;
-using System.Text.RegularExpressions;
-using System.Windows.Forms;
-
-namespace PckStudio.Forms.Utilities.Skins
-{
- public partial class BoxEditor : MetroFramework.Forms.MetroForm
- {
- public string Result;
-
- class BOX
- {
- public string Parent;
- public (float X, float Y, float Z) Pos;
- public (float X, float Y, float Z) Size;
- public float uvX, uvY;
- public bool HideWithArmor;
- public bool Mirror;
- public float Inflation;
-
- public BOX(string input)
- {
- string[] arguments = Regex.Split(input, @"\s+");
-
- try
- {
- Parent = arguments[0].ToUpper(); // just in case a box has all lower, the editor still parses correctly
- Pos.X = float.Parse(arguments[1]);
- Pos.Y = float.Parse(arguments[2]);
- Pos.Z = float.Parse(arguments[3]);
- Size.X = float.Parse(arguments[4]);
- Size.Y = float.Parse(arguments[5]);
- Size.Z = float.Parse(arguments[6]);
- uvX = float.Parse(arguments[7]);
- uvY = float.Parse(arguments[8]);
- HideWithArmor = Convert.ToBoolean(Int32.Parse(arguments[9]));
- Mirror = Convert.ToBoolean(Int32.Parse(arguments[10]));
- Inflation = float.Parse(arguments[11]);
- }
- catch (IndexOutOfRangeException)
- {
- // This is normal as some box values can have less parameters but no more than 12
- return;
- }
- catch (Exception ex)
- {
- Parent = string.Empty;
- }
- }
-
- }
-
- public BoxEditor(string inBOX, bool hasInflation)
- {
- InitializeComponent();
-
- inflationUpDown.Enabled = hasInflation;
-
- BOX box = new BOX(inBOX);
-
- if (string.IsNullOrEmpty(box.Parent) || !parentComboBox.Items.Contains(box.Parent))
- {
- throw new Exception("Failed to parse BOX value");
- }
-
- parentComboBox.SelectedItem = parentComboBox.Items[parentComboBox.Items.IndexOf(box.Parent)];
- PosXUpDown.Value = (decimal)box.Pos.X;
- PosYUpDown.Value = (decimal)box.Pos.Y;
- PosZUpDown.Value = (decimal)box.Pos.Z;
- SizeXUpDown.Value = (decimal)box.Size.X;
- SizeYUpDown.Value = (decimal)box.Size.Y;
- SizeZUpDown.Value = (decimal)box.Size.Z;
- uvXUpDown.Value = (decimal)box.uvX;
- uvYUpDown.Value = (decimal)box.uvY;
- armorCheckBox.Checked = box.HideWithArmor;
- mirrorCheckBox.Checked = box.Mirror;
- inflationUpDown.Value = (decimal)box.Inflation;
- }
-
- private void saveButton_Click(object sender, EventArgs e)
- {
- Result =
- $"{parentComboBox.SelectedItem} " +
- $"{PosXUpDown.Value} {PosYUpDown.Value} {PosZUpDown.Value} " +
- $"{SizeXUpDown.Value} {SizeYUpDown.Value} {SizeZUpDown.Value} " +
- $"{uvXUpDown.Value} {uvYUpDown.Value} " +
- $"{Convert.ToInt32(armorCheckBox.Checked)} " +
- $"{Convert.ToInt32(mirrorCheckBox.Checked)} " +
- $"{inflationUpDown.Value}";
- DialogResult = DialogResult.OK;
- Close();
- }
- }
-}
diff --git a/PCK-Studio/Forms/Utilities/installPS3.Designer.cs b/PCK-Studio/Forms/Utilities/installPS3.Designer.cs
index 6b004408..88b5cb3a 100644
--- a/PCK-Studio/Forms/Utilities/installPS3.Designer.cs
+++ b/PCK-Studio/Forms/Utilities/installPS3.Designer.cs
@@ -30,7 +30,7 @@
{
this.components = new System.ComponentModel.Container();
this.metroTabPageMain = new MetroFramework.Controls.MetroTabPage();
- this.myTablePanel1 = new PckStudio.Forms.MyTablePanel();
+ this.myTablePanel1 = new System.Windows.Forms.TableLayoutPanel();
this.EurDig = new System.Windows.Forms.RadioButton();
this.USDig = new System.Windows.Forms.RadioButton();
this.buttonServerToggle = new System.Windows.Forms.Button();
@@ -339,7 +339,7 @@
#endregion
private MetroFramework.Controls.MetroTabPage metroTabPageMain;
- private MyTablePanel myTablePanel1;
+ private System.Windows.Forms.TableLayoutPanel myTablePanel1;
private System.Windows.Forms.RadioButton USDisc;
private System.Windows.Forms.RadioButton JPDig;
private System.Windows.Forms.RadioButton EurDisc;
diff --git a/PCK-Studio/Forms/Utilities/installVita.Designer.cs b/PCK-Studio/Forms/Utilities/installVita.Designer.cs
index bde4b600..152822a8 100644
--- a/PCK-Studio/Forms/Utilities/installVita.Designer.cs
+++ b/PCK-Studio/Forms/Utilities/installVita.Designer.cs
@@ -32,7 +32,7 @@ namespace PckStudio.Forms
{
this.components = new System.ComponentModel.Container();
this.metroTabPageMain = new MetroFramework.Controls.MetroTabPage();
- this.myTablePanel1 = new PckStudio.Forms.MyTablePanel();
+ this.myTablePanel1 = new System.Windows.Forms.TableLayoutPanel();
this.EurDig = new System.Windows.Forms.RadioButton();
this.USDig = new System.Windows.Forms.RadioButton();
this.buttonServerToggle = new System.Windows.Forms.Button();
@@ -341,7 +341,7 @@ namespace PckStudio.Forms
#endregion
private MetroFramework.Controls.MetroTabPage metroTabPageMain;
- private MyTablePanel myTablePanel1;
+ private System.Windows.Forms.TableLayoutPanel myTablePanel1;
private System.Windows.Forms.RadioButton USDisc;
private System.Windows.Forms.RadioButton JPDig;
private System.Windows.Forms.RadioButton EurDisc;
diff --git a/PCK-Studio/Forms/Utilities/installWiiU.Designer.cs b/PCK-Studio/Forms/Utilities/installWiiU.Designer.cs
index 6f14cfbc..03e5ad9d 100644
--- a/PCK-Studio/Forms/Utilities/installWiiU.Designer.cs
+++ b/PCK-Studio/Forms/Utilities/installWiiU.Designer.cs
@@ -31,7 +31,7 @@
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(installWiiU));
this.metroTabPageMain = new MetroFramework.Controls.MetroTabPage();
- this.myTablePanel1 = new PckStudio.Forms.MyTablePanel();
+ this.myTablePanel1 = new System.Windows.Forms.TableLayoutPanel();
this.buttonServerToggle = new System.Windows.Forms.Button();
this.panel1 = new System.Windows.Forms.Panel();
this.radioButtonSystem = new System.Windows.Forms.RadioButton();
@@ -330,7 +330,7 @@
#endregion
private MetroFramework.Controls.MetroTabPage metroTabPageMain;
- private MyTablePanel myTablePanel1;
+ private System.Windows.Forms.TableLayoutPanel myTablePanel1;
private System.Windows.Forms.RadioButton radioButtonJap;
private System.Windows.Forms.RadioButton radioButtonEur;
private System.Windows.Forms.RadioButton radioButtonUs;
diff --git a/PCK-Studio/Forms/Utilities/pckCenter.Designer.cs b/PCK-Studio/Forms/Utilities/pckCenter.Designer.cs
index b812b988..7ca24092 100644
--- a/PCK-Studio/Forms/Utilities/pckCenter.Designer.cs
+++ b/PCK-Studio/Forms/Utilities/pckCenter.Designer.cs
@@ -1,4 +1,4 @@
-namespace PckStudio.Forms
+namespace PckStudio.Forms.Utilities
{
partial class pckCenter
{
diff --git a/PCK-Studio/Forms/Utilities/pckCenter.cs b/PCK-Studio/Forms/Utilities/pckCenter.cs
index 27379337..4dc5203b 100644
--- a/PCK-Studio/Forms/Utilities/pckCenter.cs
+++ b/PCK-Studio/Forms/Utilities/pckCenter.cs
@@ -11,7 +11,7 @@ using PckStudio.Classes.Misc;
using PckStudio.API.PCKCenter.model;
using PckStudio.API.PCKCenter;
-namespace PckStudio.Forms
+namespace PckStudio.Forms.Utilities
{
public partial class pckCenter : MetroFramework.Forms.MetroForm
{
@@ -174,10 +174,6 @@ namespace PckStudio.Forms
EInfo.Description = desc;
PJSON.Data.Add((++x).ToString(), EInfo);
File.Copy(cacheDir + mod + ".png", cacheDir + "images/" + ++x + ".png");
-
-
- PckPreview pckPreview = new PckPreview(pckName, author, desc, direct, ad, bmp, 0, mod, null, IsVita, Packname);
- pckLayout.Controls.Add(pckPreview);
}
}
catch (Exception err) { Console.WriteLine(err.Message); }
@@ -287,9 +283,6 @@ namespace PckStudio.Forms
{
bmp = (Bitmap)Image.FromStream(memStream);
}
-
- PckPreview pckPreview = new PckPreview(pckName, author, desc, direct, ad, bmp, 1, mod, loadCollectdion, PSVitaPCKCheckbox.Checked, "");
- pckLayout.Controls.Add(pckPreview);
}
pckLayout.Enabled = true;
}
@@ -319,7 +312,7 @@ namespace PckStudio.Forms
try
{
- RPC.SetPresence("Viewing the PCK Center", "Program by PhoenixARC");
+ RPC.SetPresence("Viewing the PCK Center");
}
catch
{
@@ -400,143 +393,4 @@ namespace PckStudio.Forms
else { MessageBox.Show("No Packs Avaliable!"); }
}
}
-
- public class PckPreview : UserControl
- {
- string name;
- string author;
- string desc;
- string direct;
- string ad;
- int mode;
- string mod;
- bool IsVita;
- string Pack;
-
- Bitmap icon;
-
- PictureBox iconBox = new PictureBox();
- public MyNameLabel nameLabel = new MyNameLabel();
- MyTablePanel layout = new MyTablePanel();
- MethodInvoker reloader;
-
- public PckPreview(string name, string author, string desc, string direct, string ad, Bitmap icon, int mode, string mod, MethodInvoker Reloader, bool vita, string packName) : base()
- {
- reloader = Reloader;
- nameLabel.parentPreview = this;
- layout.parentPreview = this;
- this.name = name;
- this.author = author;
- this.desc = desc;
- this.direct = direct;
- this.ad = ad;
- this.mode = mode;
- this.mod = mod;
- this.icon = icon;
- IsVita = vita;
- Pack = packName;
- layout.BackColor = Color.White;
- Size = new Size(250, 280);
- nameLabel.Dock = DockStyle.Fill;
- nameLabel.Location = new Point(0,0);
- nameLabel.Size = new Size(230, 30);
- iconBox.Image = icon;
- //iconBox.Dock = DockStyle.Fill;
- iconBox.Anchor = AnchorStyles.None;
- nameLabel.Text = name;
- iconBox.SizeMode = PictureBoxSizeMode.StretchImage;
- iconBox.Size = new Size(230, 230);
- layout.Margin = new Padding(0, 0, 0, 0);
- Margin = new Padding(20, 15, 20, 15);
- nameLabel.ForeColor = Color.Black;
- nameLabel.TextAlign = ContentAlignment.MiddleCenter;
- nameLabel.Font = new Font(nameLabel.Font.FontFamily, 14);
- layout.Controls.Add(iconBox, 0, 1);
- layout.Controls.Add(nameLabel, 0, 0);
- layout.Parent = this;
- layout.Dock = DockStyle.Fill;
- iconBox.Enabled = false;
-
- }
-
- public void setHover(bool hover)
- {
- layout.BackColor = hover ? Color.LightGray : Color.White;
- layout.Refresh();
- }
- public void onClick()
- {
-
- layout.BackColor = Color.Gray;
- layout.Refresh();
- pckCenterOpen openPck = new pckCenterOpen(name, author, desc, direct, ad, icon, mode, mod, reloader, IsVita, Pack);
- openPck.ShowDialog();
- }
-
- public void onDoubleClick()
- {
-
- }
- }
-
- public class MyTablePanel : TableLayoutPanel
- {
- public PckPreview parentPreview;
-
- protected override void OnMouseEnter(EventArgs e)
- {
- if (parentPreview != null)
- {
- parentPreview.setHover(true);
- base.OnMouseLeave(e);
- }
- }
- protected override void OnMouseLeave(EventArgs e)
- {
- if(parentPreview != null)
- {
- parentPreview.setHover(false);
- base.OnMouseLeave(e);
- }
- }
- protected override void OnMouseClick(MouseEventArgs e)
- {
- if (parentPreview != null)
- {
- parentPreview.onClick();
- base.OnMouseClick(e);
- }
- }
- protected override void OnMouseDoubleClick(MouseEventArgs e)
- {
- if (parentPreview != null)
- {
- parentPreview.onDoubleClick();
- base.OnMouseDoubleClick(e);
- }
- }
- }
-
- public class MyNameLabel : Label
- {
- public PckPreview parentPreview;
-
- protected override void OnMouseEnter(EventArgs e)
- {
- parentPreview.setHover(true);
- base.OnMouseEnter(e);
- }
- protected override void OnMouseLeave(EventArgs e)
- {
- parentPreview.setHover(false);
- base.OnMouseLeave(e);
- }
- protected override void OnMouseClick(MouseEventArgs e)
- {
- parentPreview.onClick();
- base.OnMouseClick(e);
- }
- }
-}
-
-
+}
\ No newline at end of file
diff --git a/PCK-Studio/Forms/Utilities/pckCenterOpen.Designer.cs b/PCK-Studio/Forms/Utilities/pckCenterOpen.Designer.cs
index 25bce92a..aa8f0aeb 100644
--- a/PCK-Studio/Forms/Utilities/pckCenterOpen.Designer.cs
+++ b/PCK-Studio/Forms/Utilities/pckCenterOpen.Designer.cs
@@ -44,9 +44,9 @@
//
// buttonDirect
//
- resources.ApplyResources(this.buttonDirect, "buttonDirect");
this.buttonDirect.BackColor = System.Drawing.Color.Purple;
this.buttonDirect.FlatAppearance.BorderSize = 0;
+ resources.ApplyResources(this.buttonDirect, "buttonDirect");
this.buttonDirect.ForeColor = System.Drawing.Color.White;
this.buttonDirect.Name = "buttonDirect";
this.buttonDirect.UseVisualStyleBackColor = false;
@@ -66,9 +66,9 @@
//
// buttonDelete
//
- resources.ApplyResources(this.buttonDelete, "buttonDelete");
this.buttonDelete.BackColor = System.Drawing.Color.Red;
this.buttonDelete.FlatAppearance.BorderSize = 0;
+ resources.ApplyResources(this.buttonDelete, "buttonDelete");
this.buttonDelete.ForeColor = System.Drawing.Color.White;
this.buttonDelete.Name = "buttonDelete";
this.buttonDelete.UseVisualStyleBackColor = false;
@@ -76,9 +76,9 @@
//
// buttonExport
//
- resources.ApplyResources(this.buttonExport, "buttonExport");
this.buttonExport.BackColor = System.Drawing.Color.SlateGray;
this.buttonExport.FlatAppearance.BorderSize = 0;
+ resources.ApplyResources(this.buttonExport, "buttonExport");
this.buttonExport.ForeColor = System.Drawing.Color.White;
this.buttonExport.Name = "buttonExport";
this.buttonExport.UseVisualStyleBackColor = false;
@@ -86,9 +86,9 @@
//
// buttonInstallPs3
//
- resources.ApplyResources(this.buttonInstallPs3, "buttonInstallPs3");
this.buttonInstallPs3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
this.buttonInstallPs3.BackgroundImage = global::PckStudio.Properties.Resources.ps3;
+ resources.ApplyResources(this.buttonInstallPs3, "buttonInstallPs3");
this.buttonInstallPs3.FlatAppearance.BorderSize = 0;
this.buttonInstallPs3.ForeColor = System.Drawing.Color.White;
this.buttonInstallPs3.Name = "buttonInstallPs3";
@@ -97,9 +97,9 @@
//
// buttonInstallXbox
//
- resources.ApplyResources(this.buttonInstallXbox, "buttonInstallXbox");
this.buttonInstallXbox.BackColor = System.Drawing.Color.Lime;
this.buttonInstallXbox.BackgroundImage = global::PckStudio.Properties.Resources.xbox;
+ resources.ApplyResources(this.buttonInstallXbox, "buttonInstallXbox");
this.buttonInstallXbox.FlatAppearance.BorderSize = 0;
this.buttonInstallXbox.ForeColor = System.Drawing.Color.White;
this.buttonInstallXbox.Name = "buttonInstallXbox";
@@ -108,9 +108,9 @@
//
// buttonInstallWiiU
//
- resources.ApplyResources(this.buttonInstallWiiU, "buttonInstallWiiU");
this.buttonInstallWiiU.BackColor = System.Drawing.Color.DeepSkyBlue;
this.buttonInstallWiiU.BackgroundImage = global::PckStudio.Properties.Resources.wiiu;
+ resources.ApplyResources(this.buttonInstallWiiU, "buttonInstallWiiU");
this.buttonInstallWiiU.FlatAppearance.BorderSize = 0;
this.buttonInstallWiiU.ForeColor = System.Drawing.Color.White;
this.buttonInstallWiiU.Name = "buttonInstallWiiU";
@@ -125,9 +125,9 @@
//
// buttonBedrock
//
- resources.ApplyResources(this.buttonBedrock, "buttonBedrock");
this.buttonBedrock.BackColor = System.Drawing.Color.Green;
this.buttonBedrock.FlatAppearance.BorderSize = 0;
+ resources.ApplyResources(this.buttonBedrock, "buttonBedrock");
this.buttonBedrock.ForeColor = System.Drawing.Color.White;
this.buttonBedrock.Name = "buttonBedrock";
this.buttonBedrock.UseVisualStyleBackColor = false;
@@ -138,6 +138,7 @@
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BorderStyle = MetroFramework.Forms.MetroFormBorderStyle.FixedSingle;
+ this.Controls.Add(this.buttonDirect);
this.Controls.Add(this.buttonBedrock);
this.Controls.Add(this.buttonInstallPs3);
this.Controls.Add(this.buttonInstallXbox);
@@ -146,7 +147,6 @@
this.Controls.Add(this.buttonDelete);
this.Controls.Add(this.labelDesc);
this.Controls.Add(this.labelName);
- this.Controls.Add(this.buttonDirect);
this.Controls.Add(this.pictureBoxDisplay);
this.MaximizeBox = false;
this.Name = "pckCenterOpen";
diff --git a/PCK-Studio/Forms/Utilities/pckCenterOpen.cs b/PCK-Studio/Forms/Utilities/pckCenterOpen.cs
index 6aebcb5c..7a978f68 100644
--- a/PCK-Studio/Forms/Utilities/pckCenterOpen.cs
+++ b/PCK-Studio/Forms/Utilities/pckCenterOpen.cs
@@ -19,6 +19,7 @@ using PckStudio.Classes.FileTypes;
using PckStudio.Classes.IO.PCK;
using OMI.Formats.Pck;
using OMI.Workers.Pck;
+using PckStudio.Extensions;
namespace PckStudio.Forms
{
@@ -1026,17 +1027,26 @@ namespace PckStudio.Forms
{
var ms = new MemoryStream(skinTexture.Data);
Bitmap saveSkin = new Bitmap(Image.FromStream(ms));
+ var config = new GraphicsConfig()
+ {
+ CompositingMode = CompositingMode.SourceCopy,
+ CompositingQuality = CompositingQuality.HighQuality,
+ InterpolationMode = InterpolationMode.NearestNeighbor,
+ SmoothingMode = SmoothingMode.HighQuality,
+ PixelOffsetMode = PixelOffsetMode.HighQuality,
+ };
+
if (saveSkin.Width == saveSkin.Height)
{
- ResizeImage(saveSkin, 64, 64);
+ saveSkin.ResizeImage(64, 64, config);
}
else if (saveSkin.Height == saveSkin.Width / 2)
{
- ResizeImage(saveSkin, 64, 32);
+ saveSkin.ResizeImage(64, 32, config);
}
else
{
- ResizeImage(saveSkin, 64, 64);
+ saveSkin.ResizeImage(64, 64, config);
}
saveSkin.Save(root + "/" + skinTexture.Filename, ImageFormat.Png);
}
@@ -1077,32 +1087,6 @@ namespace PckStudio.Forms
}
}
- public static Bitmap ResizeImage(Image image, int width, int height)
- {
- var destRect = new Rectangle(0, 0, width, height);
- var destImage = new Bitmap(width, height);
-
- destImage.SetResolution(image.HorizontalResolution, image.VerticalResolution);
-
- using (var graphics = Graphics.FromImage(destImage))
- {
- graphics.CompositingMode = CompositingMode.SourceCopy;
- graphics.CompositingQuality = CompositingQuality.HighQuality;
- graphics.InterpolationMode = InterpolationMode.NearestNeighbor;
- graphics.SmoothingMode = SmoothingMode.HighQuality;
- graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
-
- using (var wrapMode = new ImageAttributes())
- {
- wrapMode.SetWrapMode(WrapMode.TileFlipXY);
- graphics.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, wrapMode);
- }
- }
-
- return destImage;
- }
-
-
private void buttonDelete_Click(object sender, EventArgs e)
{
try
diff --git a/PCK-Studio/Forms/Utilities/pckCenterOpen.resx b/PCK-Studio/Forms/Utilities/pckCenterOpen.resx
index 0b294506..b65f8347 100644
--- a/PCK-Studio/Forms/Utilities/pckCenterOpen.resx
+++ b/PCK-Studio/Forms/Utilities/pckCenterOpen.resx
@@ -117,155 +117,236 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- 9
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Flat
-
- 30, 30
+
+ 568, 338
+
+
+ 169, 67
-
- 7
+
+ 2
-
- 585, 338
+
+ DOWNLOAD TO COLLECTION
-
- Delete
-
-
- pictureBoxDisplay
-
-
-
- Stretch
-
-
- 621, 338
-
-
- System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- $this
-
-
- 7
+
+ False
buttonDirect
-
- pckCenterOpen
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- 0
-
-
- 11
-
-
- Convert to Bedrock
-
-
- buttonInstallWiiU
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- 8
-
-
- 169, 43
-
-
- labelDesc
-
-
- 12
-
-
+
$this
-
- Flat
-
-
- 341, 341
-
-
- 384, 64
-
-
- Stretch
-
-
- buttonBedrock
-
-
- CenterParent
-
-
- 8
-
-
- 6
-
-
- 152, 30
-
-
- labelName
-
-
- Stretch
-
-
- Flat
+
+ 0
True
-
- $this
+
+ Microsoft Sans Serif, 20.25pt
-
- 30, 30
+
+ 24, 24
-
- buttonInstallXbox
-
-
- buttonDelete
-
-
- Flat
-
-
- 1
+
+ 135, 31
5
+
+ Skin Pack
+
+
+ labelName
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 8
+
+
+ Microsoft Sans Serif, 12pt
+
+
+ 384, 64
+
+
+ 353, 222
+
+
+ 6
+
+
+ labelDesc
+
+
+ labelDesc
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 7
+
Flat
-
- 692, 338
-
-
+
Segoe UI, 12pt
+
+ 384, 338
+
+
+ 178, 66
+
+
+ 7
+
+
+ Delete
+
+
+ buttonDelete
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 6
+
+
+ Flat
+
+
+ Segoe UI, 12pt
+
+
+ 495, 256
+
+
+ 45, 30
+
+
+ 8
+
+
+ Get
+
+
+ buttonExport
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 5
+
+
+ Stretch
+
+
+ Flat
+
+
+ Segoe UI, 12pt
+
+
+ 460, 256
+
30, 30
-
- 568, 362
+
+ 11
+
+
+ buttonInstallPs3
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 2
+
+
+ Stretch
+
+
+ Flat
+
+
+ Segoe UI, 12pt
+
+
+ 424, 256
+
+
+ 30, 30
+
+
+ 10
+
+
+ buttonInstallXbox
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 3
+
+
+ Stretch
+
+
+ Flat
+
+
+ Segoe UI, 12pt
+
+
+ 388, 256
+
+
+ 30, 30
+
+
+ 9
+
+
+ buttonInstallWiiU
System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
@@ -273,160 +354,82 @@
$this
+
+ 4
+
24, 64
-
- False
+
+ 341, 341
StretchImage
-
- Segoe UI, 12pt
+
+ 0
-
- buttonInstallPs3
+
+ pictureBoxDisplay
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- Segoe UI, 12pt
-
-
- 585, 375
-
-
- 135, 31
-
-
- Skin Pack
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- $this
-
-
- DOWNLOAD TO COLLECTION
-
-
- Segoe UI, 12pt
-
-
- 5
-
-
- 4
-
-
- 2
-
-
- Flat
-
-
- 353, 286
-
-
- Segoe UI, 12pt
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- $this
-
-
- $this
-
-
- 45, 30
+
+ System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
$this
-
- Microsoft Sans Serif, 12pt
-
-
- 178, 66
-
-
- $this
-
-
- 6, 13
-
-
- Flat
-
-
- 3
-
-
- 384, 338
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- 24, 24
-
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- 10
-
-
- Microsoft Sans Serif, 20.25pt
-
-
- 6
-
-
- Segoe UI, 12pt
+
+ 9
Flat
-
- $this
+
+ Segoe UI, 12pt
-
- 657, 338
+
+ 388, 293
-
- Get
+
+ 152, 30
-
- 760, 418
+
+ 12
-
- MetroFramework.Forms.MetroForm, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
+
+ Convert to Bedrock
-
- 9
+
+ buttonBedrock
-
- labelDesc
-
-
- 2
-
-
+
System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- buttonExport
+
+ $this
-
- 0
+
+ 1
True
+
+ 6, 13
+
+
+ 760, 418
+
+
+ NoControl
+
+
+ CenterParent
+
+
+ pckCenterOpen
+
+
+ MetroFramework.Forms.MetroForm, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
+
\ No newline at end of file
diff --git a/PCK-Studio/MainForm.Designer.cs b/PCK-Studio/MainForm.Designer.cs
index 2745b917..6c7fe187 100644
--- a/PCK-Studio/MainForm.Designer.cs
+++ b/PCK-Studio/MainForm.Designer.cs
@@ -28,134 +28,135 @@
///
private void InitializeComponent()
{
- this.components = new System.ComponentModel.Container();
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
- this.contextMenuPCKEntries = new System.Windows.Forms.ContextMenuStrip(this.components);
- this.createToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.folderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.skinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.createAnimatedTextureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.audiopckToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.colourscolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.CreateSkinsPCKToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
- this.behavioursbinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.entityMaterialsbinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.importSkinsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.importSkinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.importExtractedSkinsFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.addTextureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.addFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.exportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.as3DSTextureFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.setFileTypeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.skinToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
- this.capeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.textureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.languagesFileLOCToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.gameRulesFileGRFToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.audioPCKFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.coloursCOLFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.gameRulesHeaderGRHToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.skinsPCKToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.modelsFileBINToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.behavioursFileBINToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.entityMaterialsFileBINToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.miscFunctionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.generateMipMapTextureToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
- this.viewFileInfoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.correctSkinDecimalsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.extractToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.cloneFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.renameFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.replaceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.deleteFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.menuStrip = new System.Windows.Forms.MenuStrip();
- this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.skinPackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.texturePackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.mashUpPackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.extractToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
- this.saveToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
- this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.convertPCTextrurePackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.closeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.advancedMetaAddingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.convertToBedrockToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.programInfoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.binkaConversionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.videosToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.howToMakeABasicSkinPackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.howToMakeACustomSkinModelToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.howToMakeCustomSkinModelsbedrockToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.howToMakeCustomMusicToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.howToInstallPcksDirectlyToWiiUToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.pCKCenterReleaseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.howPCKsWorkToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.installationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.fAQToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
- this.donateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.toNobledezJackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.toPhoenixARCDeveloperToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.forMattNLContributorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.administrativeToolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.storeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.openToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
- this.wiiUPCKInstallerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.PS3PCKInstallerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.VitaPCKInstallerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.joinDevelopmentDiscordToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.miscToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.addCustomPackImageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.contextMenuMetaTree = new System.Windows.Forms.ContextMenuStrip(this.components);
- this.addEntryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.addMultipleEntriesToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
- this.deleteEntryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.editAllEntriesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.pictureBox2 = new System.Windows.Forms.PictureBox();
- this.tabControl = new MetroFramework.Controls.MetroTabControl();
- this.openTab = new MetroFramework.Controls.MetroTabPage();
- this.pckOpen = new System.Windows.Forms.PictureBox();
- this.label5 = new MetroFramework.Controls.MetroLabel();
- this.labelVersion = new MetroFramework.Controls.MetroLabel();
- this.ChangelogRichTextBox = new System.Windows.Forms.RichTextBox();
- this.editorTab = new MetroFramework.Controls.MetroTabPage();
- this.metroLabel3 = new MetroFramework.Controls.MetroLabel();
- this.labelImageSize = new MetroFramework.Controls.MetroLabel();
- this.fileEntryCountLabel = new MetroFramework.Controls.MetroLabel();
- this.PropertiesTabControl = new MetroFramework.Controls.MetroTabControl();
- this.MetaTab = new MetroFramework.Controls.MetroTabPage();
- this.metroLabel2 = new MetroFramework.Controls.MetroLabel();
- this.treeMeta = new System.Windows.Forms.TreeView();
- this.entryTypeTextBox = new MetroFramework.Controls.MetroTextBox();
- this.entryDataTextBox = new MetroFramework.Controls.MetroTextBox();
- this.buttonEdit = new MetroFramework.Controls.MetroButton();
- this.metroLabel1 = new MetroFramework.Controls.MetroLabel();
- this.label11 = new MetroFramework.Controls.MetroLabel();
- this.treeViewMain = new System.Windows.Forms.TreeView();
- this.imageList = new System.Windows.Forms.ImageList(this.components);
- this.pictureBoxImagePreview = new PckStudio.PictureBoxWithInterpolationMode();
- this.LittleEndianCheckBox = new MetroFramework.Controls.MetroCheckBox();
- this.contextMenuPCKEntries.SuspendLayout();
- this.menuStrip.SuspendLayout();
- this.contextMenuMetaTree.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
- this.tabControl.SuspendLayout();
- this.openTab.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.pckOpen)).BeginInit();
- this.editorTab.SuspendLayout();
- this.PropertiesTabControl.SuspendLayout();
- this.MetaTab.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.pictureBoxImagePreview)).BeginInit();
- this.SuspendLayout();
- //
- // contextMenuPCKEntries
- //
- this.contextMenuPCKEntries.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
+ this.contextMenuPCKEntries = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.createToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.folderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.skinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.createAnimatedTextureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.audiopckToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.colourscolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.CreateSkinsPCKToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
+ this.behavioursbinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.entityMaterialsbinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.importSkinsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.importSkinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.importExtractedSkinsFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.addTextureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.addFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.exportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.as3DSTextureFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.setFileTypeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.skinToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
+ this.capeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.textureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.languagesFileLOCToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.gameRulesFileGRFToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.audioPCKFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.coloursCOLFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.gameRulesHeaderGRHToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.skinsPCKToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.modelsFileBINToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.behavioursFileBINToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.entityMaterialsFileBINToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.miscFunctionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.generateMipMapTextureToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
+ this.viewFileInfoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.correctSkinDecimalsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.extractToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.cloneFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.renameFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.replaceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.deleteFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.menuStrip = new System.Windows.Forms.MenuStrip();
+ this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.skinPackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.texturePackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.mashUpPackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.extractToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
+ this.saveToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
+ this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.convertPCTextrurePackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.closeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.advancedMetaAddingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.convertToBedrockToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.programInfoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.binkaConversionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.videosToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.howToMakeABasicSkinPackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.howToMakeACustomSkinModelToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.howToMakeCustomSkinModelsbedrockToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.howToMakeCustomMusicToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.howToInstallPcksDirectlyToWiiUToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.pCKCenterReleaseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.howPCKsWorkToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.installationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.fAQToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
+ this.donateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toNobledezJackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toPhoenixARCDeveloperToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.forMattNLContributorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.administrativeToolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.storeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.openToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
+ this.wiiUPCKInstallerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.PS3PCKInstallerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.VitaPCKInstallerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.joinDevelopmentDiscordToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.miscToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.addCustomPackImageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.contextMenuMetaTree = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.addEntryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.addMultipleEntriesToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
+ this.deleteEntryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.editAllEntriesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.pictureBox2 = new System.Windows.Forms.PictureBox();
+ this.tabControl = new MetroFramework.Controls.MetroTabControl();
+ this.openTab = new MetroFramework.Controls.MetroTabPage();
+ this.pckOpen = new System.Windows.Forms.PictureBox();
+ this.label5 = new MetroFramework.Controls.MetroLabel();
+ this.labelVersion = new MetroFramework.Controls.MetroLabel();
+ this.ChangelogRichTextBox = new System.Windows.Forms.RichTextBox();
+ this.editorTab = new MetroFramework.Controls.MetroTabPage();
+ this.pckFileLabel = new MetroFramework.Controls.MetroLabel();
+ this.labelImageSize = new MetroFramework.Controls.MetroLabel();
+ this.fileEntryCountLabel = new MetroFramework.Controls.MetroLabel();
+ this.PropertiesTabControl = new MetroFramework.Controls.MetroTabControl();
+ this.MetaTab = new MetroFramework.Controls.MetroTabPage();
+ this.metroLabel2 = new MetroFramework.Controls.MetroLabel();
+ this.treeMeta = new System.Windows.Forms.TreeView();
+ this.entryTypeTextBox = new MetroFramework.Controls.MetroTextBox();
+ this.entryDataTextBox = new MetroFramework.Controls.MetroTextBox();
+ this.buttonEdit = new MetroFramework.Controls.MetroButton();
+ this.metroLabel1 = new MetroFramework.Controls.MetroLabel();
+ this.label11 = new MetroFramework.Controls.MetroLabel();
+ this.treeViewMain = new System.Windows.Forms.TreeView();
+ this.imageList = new System.Windows.Forms.ImageList(this.components);
+ this.pictureBoxImagePreview = new PckStudio.PictureBoxWithInterpolationMode();
+ this.LittleEndianCheckBox = new MetroFramework.Controls.MetroCheckBox();
+ this.trelloBoardToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.contextMenuPCKEntries.SuspendLayout();
+ this.menuStrip.SuspendLayout();
+ this.contextMenuMetaTree.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
+ this.tabControl.SuspendLayout();
+ this.openTab.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pckOpen)).BeginInit();
+ this.editorTab.SuspendLayout();
+ this.PropertiesTabControl.SuspendLayout();
+ this.MetaTab.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBoxImagePreview)).BeginInit();
+ this.SuspendLayout();
+ //
+ // contextMenuPCKEntries
+ //
+ this.contextMenuPCKEntries.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.createToolStripMenuItem,
this.importSkinsToolStripMenuItem,
this.exportToolStripMenuItem,
@@ -166,12 +167,12 @@
this.renameFileToolStripMenuItem,
this.replaceToolStripMenuItem,
this.deleteFileToolStripMenuItem});
- this.contextMenuPCKEntries.Name = "contextMenuStrip1";
- resources.ApplyResources(this.contextMenuPCKEntries, "contextMenuPCKEntries");
- //
- // createToolStripMenuItem
- //
- this.createToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.contextMenuPCKEntries.Name = "contextMenuStrip1";
+ resources.ApplyResources(this.contextMenuPCKEntries, "contextMenuPCKEntries");
+ //
+ // createToolStripMenuItem
+ //
+ this.createToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.folderToolStripMenuItem,
this.skinToolStripMenuItem,
this.createAnimatedTextureToolStripMenuItem,
@@ -180,114 +181,114 @@
this.CreateSkinsPCKToolStripMenuItem1,
this.behavioursbinToolStripMenuItem,
this.entityMaterialsbinToolStripMenuItem});
- resources.ApplyResources(this.createToolStripMenuItem, "createToolStripMenuItem");
- this.createToolStripMenuItem.Name = "createToolStripMenuItem";
- //
- // folderToolStripMenuItem
- //
- resources.ApplyResources(this.folderToolStripMenuItem, "folderToolStripMenuItem");
- this.folderToolStripMenuItem.Name = "folderToolStripMenuItem";
- this.folderToolStripMenuItem.Click += new System.EventHandler(this.folderToolStripMenuItem_Click);
- //
- // skinToolStripMenuItem
- //
- resources.ApplyResources(this.skinToolStripMenuItem, "skinToolStripMenuItem");
- this.skinToolStripMenuItem.Name = "skinToolStripMenuItem";
- this.skinToolStripMenuItem.Click += new System.EventHandler(this.createSkinToolStripMenuItem_Click);
- //
- // createAnimatedTextureToolStripMenuItem
- //
- resources.ApplyResources(this.createAnimatedTextureToolStripMenuItem, "createAnimatedTextureToolStripMenuItem");
- this.createAnimatedTextureToolStripMenuItem.Name = "createAnimatedTextureToolStripMenuItem";
- this.createAnimatedTextureToolStripMenuItem.Click += new System.EventHandler(this.createAnimatedTextureToolStripMenuItem_Click);
- //
- // audiopckToolStripMenuItem
- //
- this.audiopckToolStripMenuItem.Image = global::PckStudio.Properties.Resources.BINKA_ICON;
- this.audiopckToolStripMenuItem.Name = "audiopckToolStripMenuItem";
- resources.ApplyResources(this.audiopckToolStripMenuItem, "audiopckToolStripMenuItem");
- this.audiopckToolStripMenuItem.Click += new System.EventHandler(this.audiopckToolStripMenuItem_Click);
- //
- // colourscolToolStripMenuItem
- //
- this.colourscolToolStripMenuItem.Image = global::PckStudio.Properties.Resources.COL_ICON;
- this.colourscolToolStripMenuItem.Name = "colourscolToolStripMenuItem";
- resources.ApplyResources(this.colourscolToolStripMenuItem, "colourscolToolStripMenuItem");
- this.colourscolToolStripMenuItem.Click += new System.EventHandler(this.colourscolToolStripMenuItem_Click);
- //
- // CreateSkinsPCKToolStripMenuItem1
- //
- this.CreateSkinsPCKToolStripMenuItem1.Image = global::PckStudio.Properties.Resources.SKINS_ICON;
- this.CreateSkinsPCKToolStripMenuItem1.Name = "CreateSkinsPCKToolStripMenuItem1";
- resources.ApplyResources(this.CreateSkinsPCKToolStripMenuItem1, "CreateSkinsPCKToolStripMenuItem1");
- this.CreateSkinsPCKToolStripMenuItem1.Click += new System.EventHandler(this.CreateSkinsPCKToolStripMenuItem1_Click);
- //
- // behavioursbinToolStripMenuItem
- //
- this.behavioursbinToolStripMenuItem.Image = global::PckStudio.Properties.Resources.BEHAVIOURS_ICON;
- this.behavioursbinToolStripMenuItem.Name = "behavioursbinToolStripMenuItem";
- resources.ApplyResources(this.behavioursbinToolStripMenuItem, "behavioursbinToolStripMenuItem");
- this.behavioursbinToolStripMenuItem.Click += new System.EventHandler(this.behavioursbinToolStripMenuItem_Click);
- //
- // entityMaterialsbinToolStripMenuItem
- //
- this.entityMaterialsbinToolStripMenuItem.Image = global::PckStudio.Properties.Resources.ENTITY_MATERIALS_ICON;
- this.entityMaterialsbinToolStripMenuItem.Name = "entityMaterialsbinToolStripMenuItem";
- resources.ApplyResources(this.entityMaterialsbinToolStripMenuItem, "entityMaterialsbinToolStripMenuItem");
- this.entityMaterialsbinToolStripMenuItem.Click += new System.EventHandler(this.entityMaterialsbinToolStripMenuItem_Click);
- //
- // importSkinsToolStripMenuItem
- //
- this.importSkinsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ resources.ApplyResources(this.createToolStripMenuItem, "createToolStripMenuItem");
+ this.createToolStripMenuItem.Name = "createToolStripMenuItem";
+ //
+ // folderToolStripMenuItem
+ //
+ resources.ApplyResources(this.folderToolStripMenuItem, "folderToolStripMenuItem");
+ this.folderToolStripMenuItem.Name = "folderToolStripMenuItem";
+ this.folderToolStripMenuItem.Click += new System.EventHandler(this.folderToolStripMenuItem_Click);
+ //
+ // skinToolStripMenuItem
+ //
+ resources.ApplyResources(this.skinToolStripMenuItem, "skinToolStripMenuItem");
+ this.skinToolStripMenuItem.Name = "skinToolStripMenuItem";
+ this.skinToolStripMenuItem.Click += new System.EventHandler(this.createSkinToolStripMenuItem_Click);
+ //
+ // createAnimatedTextureToolStripMenuItem
+ //
+ resources.ApplyResources(this.createAnimatedTextureToolStripMenuItem, "createAnimatedTextureToolStripMenuItem");
+ this.createAnimatedTextureToolStripMenuItem.Name = "createAnimatedTextureToolStripMenuItem";
+ this.createAnimatedTextureToolStripMenuItem.Click += new System.EventHandler(this.createAnimatedTextureToolStripMenuItem_Click);
+ //
+ // audiopckToolStripMenuItem
+ //
+ this.audiopckToolStripMenuItem.Image = global::PckStudio.Properties.Resources.BINKA_ICON;
+ this.audiopckToolStripMenuItem.Name = "audiopckToolStripMenuItem";
+ resources.ApplyResources(this.audiopckToolStripMenuItem, "audiopckToolStripMenuItem");
+ this.audiopckToolStripMenuItem.Click += new System.EventHandler(this.audiopckToolStripMenuItem_Click);
+ //
+ // colourscolToolStripMenuItem
+ //
+ this.colourscolToolStripMenuItem.Image = global::PckStudio.Properties.Resources.COL_ICON;
+ this.colourscolToolStripMenuItem.Name = "colourscolToolStripMenuItem";
+ resources.ApplyResources(this.colourscolToolStripMenuItem, "colourscolToolStripMenuItem");
+ this.colourscolToolStripMenuItem.Click += new System.EventHandler(this.colourscolToolStripMenuItem_Click);
+ //
+ // CreateSkinsPCKToolStripMenuItem1
+ //
+ this.CreateSkinsPCKToolStripMenuItem1.Image = global::PckStudio.Properties.Resources.SKINS_ICON;
+ this.CreateSkinsPCKToolStripMenuItem1.Name = "CreateSkinsPCKToolStripMenuItem1";
+ resources.ApplyResources(this.CreateSkinsPCKToolStripMenuItem1, "CreateSkinsPCKToolStripMenuItem1");
+ this.CreateSkinsPCKToolStripMenuItem1.Click += new System.EventHandler(this.CreateSkinsPCKToolStripMenuItem1_Click);
+ //
+ // behavioursbinToolStripMenuItem
+ //
+ this.behavioursbinToolStripMenuItem.Image = global::PckStudio.Properties.Resources.BEHAVIOURS_ICON;
+ this.behavioursbinToolStripMenuItem.Name = "behavioursbinToolStripMenuItem";
+ resources.ApplyResources(this.behavioursbinToolStripMenuItem, "behavioursbinToolStripMenuItem");
+ this.behavioursbinToolStripMenuItem.Click += new System.EventHandler(this.behavioursbinToolStripMenuItem_Click);
+ //
+ // entityMaterialsbinToolStripMenuItem
+ //
+ this.entityMaterialsbinToolStripMenuItem.Image = global::PckStudio.Properties.Resources.ENTITY_MATERIALS_ICON;
+ this.entityMaterialsbinToolStripMenuItem.Name = "entityMaterialsbinToolStripMenuItem";
+ resources.ApplyResources(this.entityMaterialsbinToolStripMenuItem, "entityMaterialsbinToolStripMenuItem");
+ this.entityMaterialsbinToolStripMenuItem.Click += new System.EventHandler(this.entityMaterialsbinToolStripMenuItem_Click);
+ //
+ // importSkinsToolStripMenuItem
+ //
+ this.importSkinsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.importSkinToolStripMenuItem,
this.importExtractedSkinsFolderToolStripMenuItem,
this.addTextureToolStripMenuItem,
this.addFileToolStripMenuItem});
- resources.ApplyResources(this.importSkinsToolStripMenuItem, "importSkinsToolStripMenuItem");
- this.importSkinsToolStripMenuItem.Name = "importSkinsToolStripMenuItem";
- //
- // importSkinToolStripMenuItem
- //
- resources.ApplyResources(this.importSkinToolStripMenuItem, "importSkinToolStripMenuItem");
- this.importSkinToolStripMenuItem.Name = "importSkinToolStripMenuItem";
- this.importSkinToolStripMenuItem.Click += new System.EventHandler(this.importSkinToolStripMenuItem_Click);
- //
- // importExtractedSkinsFolderToolStripMenuItem
- //
- resources.ApplyResources(this.importExtractedSkinsFolderToolStripMenuItem, "importExtractedSkinsFolderToolStripMenuItem");
- this.importExtractedSkinsFolderToolStripMenuItem.Name = "importExtractedSkinsFolderToolStripMenuItem";
- this.importExtractedSkinsFolderToolStripMenuItem.Click += new System.EventHandler(this.importExtractedSkinsFolder);
- //
- // addTextureToolStripMenuItem
- //
- this.addTextureToolStripMenuItem.Image = global::PckStudio.Properties.Resources.AddTexture;
- this.addTextureToolStripMenuItem.Name = "addTextureToolStripMenuItem";
- resources.ApplyResources(this.addTextureToolStripMenuItem, "addTextureToolStripMenuItem");
- this.addTextureToolStripMenuItem.Click += new System.EventHandler(this.addTextureToolStripMenuItem_Click);
- //
- // addFileToolStripMenuItem
- //
- this.addFileToolStripMenuItem.Image = global::PckStudio.Properties.Resources.blank;
- this.addFileToolStripMenuItem.Name = "addFileToolStripMenuItem";
- resources.ApplyResources(this.addFileToolStripMenuItem, "addFileToolStripMenuItem");
- this.addFileToolStripMenuItem.Click += new System.EventHandler(this.addFileToolStripMenuItem_Click);
- //
- // exportToolStripMenuItem
- //
- this.exportToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ resources.ApplyResources(this.importSkinsToolStripMenuItem, "importSkinsToolStripMenuItem");
+ this.importSkinsToolStripMenuItem.Name = "importSkinsToolStripMenuItem";
+ //
+ // importSkinToolStripMenuItem
+ //
+ resources.ApplyResources(this.importSkinToolStripMenuItem, "importSkinToolStripMenuItem");
+ this.importSkinToolStripMenuItem.Name = "importSkinToolStripMenuItem";
+ this.importSkinToolStripMenuItem.Click += new System.EventHandler(this.importSkinToolStripMenuItem_Click);
+ //
+ // importExtractedSkinsFolderToolStripMenuItem
+ //
+ resources.ApplyResources(this.importExtractedSkinsFolderToolStripMenuItem, "importExtractedSkinsFolderToolStripMenuItem");
+ this.importExtractedSkinsFolderToolStripMenuItem.Name = "importExtractedSkinsFolderToolStripMenuItem";
+ this.importExtractedSkinsFolderToolStripMenuItem.Click += new System.EventHandler(this.importExtractedSkinsFolder);
+ //
+ // addTextureToolStripMenuItem
+ //
+ this.addTextureToolStripMenuItem.Image = global::PckStudio.Properties.Resources.AddTexture;
+ this.addTextureToolStripMenuItem.Name = "addTextureToolStripMenuItem";
+ resources.ApplyResources(this.addTextureToolStripMenuItem, "addTextureToolStripMenuItem");
+ this.addTextureToolStripMenuItem.Click += new System.EventHandler(this.addTextureToolStripMenuItem_Click);
+ //
+ // addFileToolStripMenuItem
+ //
+ this.addFileToolStripMenuItem.Image = global::PckStudio.Properties.Resources.blank;
+ this.addFileToolStripMenuItem.Name = "addFileToolStripMenuItem";
+ resources.ApplyResources(this.addFileToolStripMenuItem, "addFileToolStripMenuItem");
+ this.addFileToolStripMenuItem.Click += new System.EventHandler(this.addFileToolStripMenuItem_Click);
+ //
+ // exportToolStripMenuItem
+ //
+ this.exportToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.as3DSTextureFileToolStripMenuItem});
- this.exportToolStripMenuItem.Name = "exportToolStripMenuItem";
- resources.ApplyResources(this.exportToolStripMenuItem, "exportToolStripMenuItem");
- //
- // as3DSTextureFileToolStripMenuItem
- //
- this.as3DSTextureFileToolStripMenuItem.Name = "as3DSTextureFileToolStripMenuItem";
- resources.ApplyResources(this.as3DSTextureFileToolStripMenuItem, "as3DSTextureFileToolStripMenuItem");
- this.as3DSTextureFileToolStripMenuItem.Click += new System.EventHandler(this.as3DSTextureFileToolStripMenuItem_Click);
- //
- // setFileTypeToolStripMenuItem
- //
- this.setFileTypeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.exportToolStripMenuItem.Name = "exportToolStripMenuItem";
+ resources.ApplyResources(this.exportToolStripMenuItem, "exportToolStripMenuItem");
+ //
+ // as3DSTextureFileToolStripMenuItem
+ //
+ this.as3DSTextureFileToolStripMenuItem.Name = "as3DSTextureFileToolStripMenuItem";
+ resources.ApplyResources(this.as3DSTextureFileToolStripMenuItem, "as3DSTextureFileToolStripMenuItem");
+ this.as3DSTextureFileToolStripMenuItem.Click += new System.EventHandler(this.as3DSTextureFileToolStripMenuItem_Click);
+ //
+ // setFileTypeToolStripMenuItem
+ //
+ this.setFileTypeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.skinToolStripMenuItem1,
this.capeToolStripMenuItem,
this.textureToolStripMenuItem,
@@ -300,142 +301,142 @@
this.modelsFileBINToolStripMenuItem,
this.behavioursFileBINToolStripMenuItem,
this.entityMaterialsFileBINToolStripMenuItem});
- this.setFileTypeToolStripMenuItem.Name = "setFileTypeToolStripMenuItem";
- resources.ApplyResources(this.setFileTypeToolStripMenuItem, "setFileTypeToolStripMenuItem");
- //
- // skinToolStripMenuItem1
- //
- this.skinToolStripMenuItem1.Name = "skinToolStripMenuItem1";
- resources.ApplyResources(this.skinToolStripMenuItem1, "skinToolStripMenuItem1");
- //
- // capeToolStripMenuItem
- //
- this.capeToolStripMenuItem.Name = "capeToolStripMenuItem";
- resources.ApplyResources(this.capeToolStripMenuItem, "capeToolStripMenuItem");
- //
- // textureToolStripMenuItem
- //
- this.textureToolStripMenuItem.Name = "textureToolStripMenuItem";
- resources.ApplyResources(this.textureToolStripMenuItem, "textureToolStripMenuItem");
- //
- // languagesFileLOCToolStripMenuItem
- //
- this.languagesFileLOCToolStripMenuItem.Name = "languagesFileLOCToolStripMenuItem";
- resources.ApplyResources(this.languagesFileLOCToolStripMenuItem, "languagesFileLOCToolStripMenuItem");
- //
- // gameRulesFileGRFToolStripMenuItem
- //
- this.gameRulesFileGRFToolStripMenuItem.Name = "gameRulesFileGRFToolStripMenuItem";
- resources.ApplyResources(this.gameRulesFileGRFToolStripMenuItem, "gameRulesFileGRFToolStripMenuItem");
- //
- // audioPCKFileToolStripMenuItem
- //
- this.audioPCKFileToolStripMenuItem.Name = "audioPCKFileToolStripMenuItem";
- resources.ApplyResources(this.audioPCKFileToolStripMenuItem, "audioPCKFileToolStripMenuItem");
- //
- // coloursCOLFileToolStripMenuItem
- //
- this.coloursCOLFileToolStripMenuItem.Name = "coloursCOLFileToolStripMenuItem";
- resources.ApplyResources(this.coloursCOLFileToolStripMenuItem, "coloursCOLFileToolStripMenuItem");
- //
- // gameRulesHeaderGRHToolStripMenuItem
- //
- this.gameRulesHeaderGRHToolStripMenuItem.Name = "gameRulesHeaderGRHToolStripMenuItem";
- resources.ApplyResources(this.gameRulesHeaderGRHToolStripMenuItem, "gameRulesHeaderGRHToolStripMenuItem");
- //
- // skinsPCKToolStripMenuItem
- //
- this.skinsPCKToolStripMenuItem.Name = "skinsPCKToolStripMenuItem";
- resources.ApplyResources(this.skinsPCKToolStripMenuItem, "skinsPCKToolStripMenuItem");
- //
- // modelsFileBINToolStripMenuItem
- //
- this.modelsFileBINToolStripMenuItem.Name = "modelsFileBINToolStripMenuItem";
- resources.ApplyResources(this.modelsFileBINToolStripMenuItem, "modelsFileBINToolStripMenuItem");
- //
- // behavioursFileBINToolStripMenuItem
- //
- this.behavioursFileBINToolStripMenuItem.Name = "behavioursFileBINToolStripMenuItem";
- resources.ApplyResources(this.behavioursFileBINToolStripMenuItem, "behavioursFileBINToolStripMenuItem");
- //
- // entityMaterialsFileBINToolStripMenuItem
- //
- this.entityMaterialsFileBINToolStripMenuItem.Name = "entityMaterialsFileBINToolStripMenuItem";
- resources.ApplyResources(this.entityMaterialsFileBINToolStripMenuItem, "entityMaterialsFileBINToolStripMenuItem");
- //
- // miscFunctionsToolStripMenuItem
- //
- this.miscFunctionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.setFileTypeToolStripMenuItem.Name = "setFileTypeToolStripMenuItem";
+ resources.ApplyResources(this.setFileTypeToolStripMenuItem, "setFileTypeToolStripMenuItem");
+ //
+ // skinToolStripMenuItem1
+ //
+ this.skinToolStripMenuItem1.Name = "skinToolStripMenuItem1";
+ resources.ApplyResources(this.skinToolStripMenuItem1, "skinToolStripMenuItem1");
+ //
+ // capeToolStripMenuItem
+ //
+ this.capeToolStripMenuItem.Name = "capeToolStripMenuItem";
+ resources.ApplyResources(this.capeToolStripMenuItem, "capeToolStripMenuItem");
+ //
+ // textureToolStripMenuItem
+ //
+ this.textureToolStripMenuItem.Name = "textureToolStripMenuItem";
+ resources.ApplyResources(this.textureToolStripMenuItem, "textureToolStripMenuItem");
+ //
+ // languagesFileLOCToolStripMenuItem
+ //
+ this.languagesFileLOCToolStripMenuItem.Name = "languagesFileLOCToolStripMenuItem";
+ resources.ApplyResources(this.languagesFileLOCToolStripMenuItem, "languagesFileLOCToolStripMenuItem");
+ //
+ // gameRulesFileGRFToolStripMenuItem
+ //
+ this.gameRulesFileGRFToolStripMenuItem.Name = "gameRulesFileGRFToolStripMenuItem";
+ resources.ApplyResources(this.gameRulesFileGRFToolStripMenuItem, "gameRulesFileGRFToolStripMenuItem");
+ //
+ // audioPCKFileToolStripMenuItem
+ //
+ this.audioPCKFileToolStripMenuItem.Name = "audioPCKFileToolStripMenuItem";
+ resources.ApplyResources(this.audioPCKFileToolStripMenuItem, "audioPCKFileToolStripMenuItem");
+ //
+ // coloursCOLFileToolStripMenuItem
+ //
+ this.coloursCOLFileToolStripMenuItem.Name = "coloursCOLFileToolStripMenuItem";
+ resources.ApplyResources(this.coloursCOLFileToolStripMenuItem, "coloursCOLFileToolStripMenuItem");
+ //
+ // gameRulesHeaderGRHToolStripMenuItem
+ //
+ this.gameRulesHeaderGRHToolStripMenuItem.Name = "gameRulesHeaderGRHToolStripMenuItem";
+ resources.ApplyResources(this.gameRulesHeaderGRHToolStripMenuItem, "gameRulesHeaderGRHToolStripMenuItem");
+ //
+ // skinsPCKToolStripMenuItem
+ //
+ this.skinsPCKToolStripMenuItem.Name = "skinsPCKToolStripMenuItem";
+ resources.ApplyResources(this.skinsPCKToolStripMenuItem, "skinsPCKToolStripMenuItem");
+ //
+ // modelsFileBINToolStripMenuItem
+ //
+ this.modelsFileBINToolStripMenuItem.Name = "modelsFileBINToolStripMenuItem";
+ resources.ApplyResources(this.modelsFileBINToolStripMenuItem, "modelsFileBINToolStripMenuItem");
+ //
+ // behavioursFileBINToolStripMenuItem
+ //
+ this.behavioursFileBINToolStripMenuItem.Name = "behavioursFileBINToolStripMenuItem";
+ resources.ApplyResources(this.behavioursFileBINToolStripMenuItem, "behavioursFileBINToolStripMenuItem");
+ //
+ // entityMaterialsFileBINToolStripMenuItem
+ //
+ this.entityMaterialsFileBINToolStripMenuItem.Name = "entityMaterialsFileBINToolStripMenuItem";
+ resources.ApplyResources(this.entityMaterialsFileBINToolStripMenuItem, "entityMaterialsFileBINToolStripMenuItem");
+ //
+ // miscFunctionsToolStripMenuItem
+ //
+ this.miscFunctionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.generateMipMapTextureToolStripMenuItem1,
this.viewFileInfoToolStripMenuItem,
this.correctSkinDecimalsToolStripMenuItem});
- this.miscFunctionsToolStripMenuItem.Name = "miscFunctionsToolStripMenuItem";
- resources.ApplyResources(this.miscFunctionsToolStripMenuItem, "miscFunctionsToolStripMenuItem");
- //
- // generateMipMapTextureToolStripMenuItem1
- //
- this.generateMipMapTextureToolStripMenuItem1.Name = "generateMipMapTextureToolStripMenuItem1";
- resources.ApplyResources(this.generateMipMapTextureToolStripMenuItem1, "generateMipMapTextureToolStripMenuItem1");
- this.generateMipMapTextureToolStripMenuItem1.Click += new System.EventHandler(this.generateMipMapTextureToolStripMenuItem_Click);
- //
- // viewFileInfoToolStripMenuItem
- //
- this.viewFileInfoToolStripMenuItem.Name = "viewFileInfoToolStripMenuItem";
- resources.ApplyResources(this.viewFileInfoToolStripMenuItem, "viewFileInfoToolStripMenuItem");
- this.viewFileInfoToolStripMenuItem.Click += new System.EventHandler(this.viewFileInfoToolStripMenuItem_Click);
- //
- // correctSkinDecimalsToolStripMenuItem
- //
- this.correctSkinDecimalsToolStripMenuItem.Name = "correctSkinDecimalsToolStripMenuItem";
- resources.ApplyResources(this.correctSkinDecimalsToolStripMenuItem, "correctSkinDecimalsToolStripMenuItem");
- this.correctSkinDecimalsToolStripMenuItem.Click += new System.EventHandler(this.correctSkinDecimalsToolStripMenuItem_Click);
- //
- // extractToolStripMenuItem
- //
- resources.ApplyResources(this.extractToolStripMenuItem, "extractToolStripMenuItem");
- this.extractToolStripMenuItem.Name = "extractToolStripMenuItem";
- this.extractToolStripMenuItem.Click += new System.EventHandler(this.extractToolStripMenuItem_Click);
- //
- // cloneFileToolStripMenuItem
- //
- this.cloneFileToolStripMenuItem.Name = "cloneFileToolStripMenuItem";
- resources.ApplyResources(this.cloneFileToolStripMenuItem, "cloneFileToolStripMenuItem");
- this.cloneFileToolStripMenuItem.Click += new System.EventHandler(this.cloneFileToolStripMenuItem_Click);
- //
- // renameFileToolStripMenuItem
- //
- resources.ApplyResources(this.renameFileToolStripMenuItem, "renameFileToolStripMenuItem");
- this.renameFileToolStripMenuItem.Name = "renameFileToolStripMenuItem";
- this.renameFileToolStripMenuItem.Click += new System.EventHandler(this.renameFileToolStripMenuItem_Click);
- //
- // replaceToolStripMenuItem
- //
- resources.ApplyResources(this.replaceToolStripMenuItem, "replaceToolStripMenuItem");
- this.replaceToolStripMenuItem.Name = "replaceToolStripMenuItem";
- this.replaceToolStripMenuItem.Click += new System.EventHandler(this.replaceToolStripMenuItem_Click);
- //
- // deleteFileToolStripMenuItem
- //
- resources.ApplyResources(this.deleteFileToolStripMenuItem, "deleteFileToolStripMenuItem");
- this.deleteFileToolStripMenuItem.Name = "deleteFileToolStripMenuItem";
- this.deleteFileToolStripMenuItem.Click += new System.EventHandler(this.deleteFileToolStripMenuItem_Click);
- //
- // menuStrip
- //
- resources.ApplyResources(this.menuStrip, "menuStrip");
- this.menuStrip.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(13)))), ((int)(((byte)(13)))), ((int)(((byte)(13)))));
- this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.miscFunctionsToolStripMenuItem.Name = "miscFunctionsToolStripMenuItem";
+ resources.ApplyResources(this.miscFunctionsToolStripMenuItem, "miscFunctionsToolStripMenuItem");
+ //
+ // generateMipMapTextureToolStripMenuItem1
+ //
+ this.generateMipMapTextureToolStripMenuItem1.Name = "generateMipMapTextureToolStripMenuItem1";
+ resources.ApplyResources(this.generateMipMapTextureToolStripMenuItem1, "generateMipMapTextureToolStripMenuItem1");
+ this.generateMipMapTextureToolStripMenuItem1.Click += new System.EventHandler(this.generateMipMapTextureToolStripMenuItem_Click);
+ //
+ // viewFileInfoToolStripMenuItem
+ //
+ this.viewFileInfoToolStripMenuItem.Name = "viewFileInfoToolStripMenuItem";
+ resources.ApplyResources(this.viewFileInfoToolStripMenuItem, "viewFileInfoToolStripMenuItem");
+ this.viewFileInfoToolStripMenuItem.Click += new System.EventHandler(this.viewFileInfoToolStripMenuItem_Click);
+ //
+ // correctSkinDecimalsToolStripMenuItem
+ //
+ this.correctSkinDecimalsToolStripMenuItem.Name = "correctSkinDecimalsToolStripMenuItem";
+ resources.ApplyResources(this.correctSkinDecimalsToolStripMenuItem, "correctSkinDecimalsToolStripMenuItem");
+ this.correctSkinDecimalsToolStripMenuItem.Click += new System.EventHandler(this.correctSkinDecimalsToolStripMenuItem_Click);
+ //
+ // extractToolStripMenuItem
+ //
+ resources.ApplyResources(this.extractToolStripMenuItem, "extractToolStripMenuItem");
+ this.extractToolStripMenuItem.Name = "extractToolStripMenuItem";
+ this.extractToolStripMenuItem.Click += new System.EventHandler(this.extractToolStripMenuItem_Click);
+ //
+ // cloneFileToolStripMenuItem
+ //
+ this.cloneFileToolStripMenuItem.Name = "cloneFileToolStripMenuItem";
+ resources.ApplyResources(this.cloneFileToolStripMenuItem, "cloneFileToolStripMenuItem");
+ this.cloneFileToolStripMenuItem.Click += new System.EventHandler(this.cloneFileToolStripMenuItem_Click);
+ //
+ // renameFileToolStripMenuItem
+ //
+ resources.ApplyResources(this.renameFileToolStripMenuItem, "renameFileToolStripMenuItem");
+ this.renameFileToolStripMenuItem.Name = "renameFileToolStripMenuItem";
+ this.renameFileToolStripMenuItem.Click += new System.EventHandler(this.renameFileToolStripMenuItem_Click);
+ //
+ // replaceToolStripMenuItem
+ //
+ resources.ApplyResources(this.replaceToolStripMenuItem, "replaceToolStripMenuItem");
+ this.replaceToolStripMenuItem.Name = "replaceToolStripMenuItem";
+ this.replaceToolStripMenuItem.Click += new System.EventHandler(this.replaceToolStripMenuItem_Click);
+ //
+ // deleteFileToolStripMenuItem
+ //
+ resources.ApplyResources(this.deleteFileToolStripMenuItem, "deleteFileToolStripMenuItem");
+ this.deleteFileToolStripMenuItem.Name = "deleteFileToolStripMenuItem";
+ this.deleteFileToolStripMenuItem.Click += new System.EventHandler(this.deleteFileToolStripMenuItem_Click);
+ //
+ // menuStrip
+ //
+ resources.ApplyResources(this.menuStrip, "menuStrip");
+ this.menuStrip.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(13)))), ((int)(((byte)(13)))), ((int)(((byte)(13)))));
+ this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.fileToolStripMenuItem,
this.editToolStripMenuItem,
this.helpToolStripMenuItem,
this.storeToolStripMenuItem,
this.miscToolStripMenuItem});
- this.menuStrip.Name = "menuStrip";
- //
- // fileToolStripMenuItem
- //
- this.fileToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(13)))), ((int)(((byte)(13)))), ((int)(((byte)(13)))));
- this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.menuStrip.Name = "menuStrip";
+ //
+ // fileToolStripMenuItem
+ //
+ this.fileToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(13)))), ((int)(((byte)(13)))), ((int)(((byte)(13)))));
+ this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.newToolStripMenuItem,
this.openToolStripMenuItem,
this.extractToolStripMenuItem1,
@@ -443,97 +444,97 @@
this.saveToolStripMenuItem,
this.convertPCTextrurePackToolStripMenuItem,
this.closeToolStripMenuItem});
- this.fileToolStripMenuItem.ForeColor = System.Drawing.Color.White;
- this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
- resources.ApplyResources(this.fileToolStripMenuItem, "fileToolStripMenuItem");
- //
- // newToolStripMenuItem
- //
- this.newToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.fileToolStripMenuItem.ForeColor = System.Drawing.Color.White;
+ this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
+ resources.ApplyResources(this.fileToolStripMenuItem, "fileToolStripMenuItem");
+ //
+ // newToolStripMenuItem
+ //
+ this.newToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.skinPackToolStripMenuItem,
this.texturePackToolStripMenuItem,
this.mashUpPackToolStripMenuItem});
- resources.ApplyResources(this.newToolStripMenuItem, "newToolStripMenuItem");
- this.newToolStripMenuItem.Name = "newToolStripMenuItem";
- //
- // skinPackToolStripMenuItem
- //
- this.skinPackToolStripMenuItem.Name = "skinPackToolStripMenuItem";
- resources.ApplyResources(this.skinPackToolStripMenuItem, "skinPackToolStripMenuItem");
- this.skinPackToolStripMenuItem.Click += new System.EventHandler(this.skinPackToolStripMenuItem_Click);
- //
- // texturePackToolStripMenuItem
- //
- this.texturePackToolStripMenuItem.Name = "texturePackToolStripMenuItem";
- resources.ApplyResources(this.texturePackToolStripMenuItem, "texturePackToolStripMenuItem");
- this.texturePackToolStripMenuItem.Click += new System.EventHandler(this.texturePackToolStripMenuItem_Click);
- //
- // mashUpPackToolStripMenuItem
- //
- this.mashUpPackToolStripMenuItem.Name = "mashUpPackToolStripMenuItem";
- resources.ApplyResources(this.mashUpPackToolStripMenuItem, "mashUpPackToolStripMenuItem");
- this.mashUpPackToolStripMenuItem.Click += new System.EventHandler(this.mashUpPackToolStripMenuItem_Click);
- //
- // openToolStripMenuItem
- //
- resources.ApplyResources(this.openToolStripMenuItem, "openToolStripMenuItem");
- this.openToolStripMenuItem.Name = "openToolStripMenuItem";
- this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click);
- //
- // extractToolStripMenuItem1
- //
- resources.ApplyResources(this.extractToolStripMenuItem1, "extractToolStripMenuItem1");
- this.extractToolStripMenuItem1.Name = "extractToolStripMenuItem1";
- this.extractToolStripMenuItem1.Click += new System.EventHandler(this.extractToolStripMenuItem1_Click);
- //
- // saveToolStripMenuItem1
- //
- resources.ApplyResources(this.saveToolStripMenuItem1, "saveToolStripMenuItem1");
- this.saveToolStripMenuItem1.Name = "saveToolStripMenuItem1";
- this.saveToolStripMenuItem1.Click += new System.EventHandler(this.savePCK);
- //
- // saveToolStripMenuItem
- //
- resources.ApplyResources(this.saveToolStripMenuItem, "saveToolStripMenuItem");
- this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
- this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveAsPCK);
- //
- // convertPCTextrurePackToolStripMenuItem
- //
- resources.ApplyResources(this.convertPCTextrurePackToolStripMenuItem, "convertPCTextrurePackToolStripMenuItem");
- this.convertPCTextrurePackToolStripMenuItem.Name = "convertPCTextrurePackToolStripMenuItem";
- this.convertPCTextrurePackToolStripMenuItem.Click += new System.EventHandler(this.convertPCTextrurePackToolStripMenuItem_Click);
- //
- // closeToolStripMenuItem
- //
- this.closeToolStripMenuItem.Name = "closeToolStripMenuItem";
- resources.ApplyResources(this.closeToolStripMenuItem, "closeToolStripMenuItem");
- this.closeToolStripMenuItem.Click += new System.EventHandler(this.closeToolStripMenuItem_Click);
- //
- // editToolStripMenuItem
- //
- this.editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ resources.ApplyResources(this.newToolStripMenuItem, "newToolStripMenuItem");
+ this.newToolStripMenuItem.Name = "newToolStripMenuItem";
+ //
+ // skinPackToolStripMenuItem
+ //
+ this.skinPackToolStripMenuItem.Name = "skinPackToolStripMenuItem";
+ resources.ApplyResources(this.skinPackToolStripMenuItem, "skinPackToolStripMenuItem");
+ this.skinPackToolStripMenuItem.Click += new System.EventHandler(this.skinPackToolStripMenuItem_Click);
+ //
+ // texturePackToolStripMenuItem
+ //
+ this.texturePackToolStripMenuItem.Name = "texturePackToolStripMenuItem";
+ resources.ApplyResources(this.texturePackToolStripMenuItem, "texturePackToolStripMenuItem");
+ this.texturePackToolStripMenuItem.Click += new System.EventHandler(this.texturePackToolStripMenuItem_Click);
+ //
+ // mashUpPackToolStripMenuItem
+ //
+ this.mashUpPackToolStripMenuItem.Name = "mashUpPackToolStripMenuItem";
+ resources.ApplyResources(this.mashUpPackToolStripMenuItem, "mashUpPackToolStripMenuItem");
+ this.mashUpPackToolStripMenuItem.Click += new System.EventHandler(this.mashUpPackToolStripMenuItem_Click);
+ //
+ // openToolStripMenuItem
+ //
+ resources.ApplyResources(this.openToolStripMenuItem, "openToolStripMenuItem");
+ this.openToolStripMenuItem.Name = "openToolStripMenuItem";
+ this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click);
+ //
+ // extractToolStripMenuItem1
+ //
+ resources.ApplyResources(this.extractToolStripMenuItem1, "extractToolStripMenuItem1");
+ this.extractToolStripMenuItem1.Name = "extractToolStripMenuItem1";
+ this.extractToolStripMenuItem1.Click += new System.EventHandler(this.extractToolStripMenuItem1_Click);
+ //
+ // saveToolStripMenuItem1
+ //
+ resources.ApplyResources(this.saveToolStripMenuItem1, "saveToolStripMenuItem1");
+ this.saveToolStripMenuItem1.Name = "saveToolStripMenuItem1";
+ this.saveToolStripMenuItem1.Click += new System.EventHandler(this.savePCK);
+ //
+ // saveToolStripMenuItem
+ //
+ resources.ApplyResources(this.saveToolStripMenuItem, "saveToolStripMenuItem");
+ this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
+ this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveAsPCK);
+ //
+ // convertPCTextrurePackToolStripMenuItem
+ //
+ resources.ApplyResources(this.convertPCTextrurePackToolStripMenuItem, "convertPCTextrurePackToolStripMenuItem");
+ this.convertPCTextrurePackToolStripMenuItem.Name = "convertPCTextrurePackToolStripMenuItem";
+ this.convertPCTextrurePackToolStripMenuItem.Click += new System.EventHandler(this.convertPCTextrurePackToolStripMenuItem_Click);
+ //
+ // closeToolStripMenuItem
+ //
+ this.closeToolStripMenuItem.Name = "closeToolStripMenuItem";
+ resources.ApplyResources(this.closeToolStripMenuItem, "closeToolStripMenuItem");
+ this.closeToolStripMenuItem.Click += new System.EventHandler(this.closeToolStripMenuItem_Click);
+ //
+ // editToolStripMenuItem
+ //
+ this.editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.advancedMetaAddingToolStripMenuItem,
this.convertToBedrockToolStripMenuItem});
- this.editToolStripMenuItem.ForeColor = System.Drawing.Color.White;
- this.editToolStripMenuItem.Name = "editToolStripMenuItem";
- resources.ApplyResources(this.editToolStripMenuItem, "editToolStripMenuItem");
- //
- // advancedMetaAddingToolStripMenuItem
- //
- resources.ApplyResources(this.advancedMetaAddingToolStripMenuItem, "advancedMetaAddingToolStripMenuItem");
- this.advancedMetaAddingToolStripMenuItem.Name = "advancedMetaAddingToolStripMenuItem";
- this.advancedMetaAddingToolStripMenuItem.Click += new System.EventHandler(this.advancedMetaAddingToolStripMenuItem_Click);
- //
- // convertToBedrockToolStripMenuItem
- //
- resources.ApplyResources(this.convertToBedrockToolStripMenuItem, "convertToBedrockToolStripMenuItem");
- this.convertToBedrockToolStripMenuItem.Name = "convertToBedrockToolStripMenuItem";
- this.convertToBedrockToolStripMenuItem.Click += new System.EventHandler(this.convertToBedrockToolStripMenuItem_Click);
- //
- // helpToolStripMenuItem
- //
- this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.editToolStripMenuItem.ForeColor = System.Drawing.Color.White;
+ this.editToolStripMenuItem.Name = "editToolStripMenuItem";
+ resources.ApplyResources(this.editToolStripMenuItem, "editToolStripMenuItem");
+ //
+ // advancedMetaAddingToolStripMenuItem
+ //
+ resources.ApplyResources(this.advancedMetaAddingToolStripMenuItem, "advancedMetaAddingToolStripMenuItem");
+ this.advancedMetaAddingToolStripMenuItem.Name = "advancedMetaAddingToolStripMenuItem";
+ this.advancedMetaAddingToolStripMenuItem.Click += new System.EventHandler(this.advancedMetaAddingToolStripMenuItem_Click);
+ //
+ // convertToBedrockToolStripMenuItem
+ //
+ resources.ApplyResources(this.convertToBedrockToolStripMenuItem, "convertToBedrockToolStripMenuItem");
+ this.convertToBedrockToolStripMenuItem.Name = "convertToBedrockToolStripMenuItem";
+ this.convertToBedrockToolStripMenuItem.Click += new System.EventHandler(this.convertToBedrockToolStripMenuItem_Click);
+ //
+ // helpToolStripMenuItem
+ //
+ this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.programInfoToolStripMenuItem,
this.binkaConversionToolStripMenuItem,
this.videosToolStripMenuItem,
@@ -542,25 +543,25 @@
this.donateToolStripMenuItem,
this.settingsToolStripMenuItem,
this.administrativeToolsToolStripMenuItem});
- this.helpToolStripMenuItem.ForeColor = System.Drawing.Color.White;
- this.helpToolStripMenuItem.Name = "helpToolStripMenuItem";
- resources.ApplyResources(this.helpToolStripMenuItem, "helpToolStripMenuItem");
- //
- // programInfoToolStripMenuItem
- //
- resources.ApplyResources(this.programInfoToolStripMenuItem, "programInfoToolStripMenuItem");
- this.programInfoToolStripMenuItem.Name = "programInfoToolStripMenuItem";
- this.programInfoToolStripMenuItem.Click += new System.EventHandler(this.programInfoToolStripMenuItem_Click);
- //
- // binkaConversionToolStripMenuItem
- //
- resources.ApplyResources(this.binkaConversionToolStripMenuItem, "binkaConversionToolStripMenuItem");
- this.binkaConversionToolStripMenuItem.Name = "binkaConversionToolStripMenuItem";
- this.binkaConversionToolStripMenuItem.Click += new System.EventHandler(this.binkaConversionToolStripMenuItem_Click);
- //
- // videosToolStripMenuItem
- //
- this.videosToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.helpToolStripMenuItem.ForeColor = System.Drawing.Color.White;
+ this.helpToolStripMenuItem.Name = "helpToolStripMenuItem";
+ resources.ApplyResources(this.helpToolStripMenuItem, "helpToolStripMenuItem");
+ //
+ // programInfoToolStripMenuItem
+ //
+ resources.ApplyResources(this.programInfoToolStripMenuItem, "programInfoToolStripMenuItem");
+ this.programInfoToolStripMenuItem.Name = "programInfoToolStripMenuItem";
+ this.programInfoToolStripMenuItem.Click += new System.EventHandler(this.programInfoToolStripMenuItem_Click);
+ //
+ // binkaConversionToolStripMenuItem
+ //
+ resources.ApplyResources(this.binkaConversionToolStripMenuItem, "binkaConversionToolStripMenuItem");
+ this.binkaConversionToolStripMenuItem.Name = "binkaConversionToolStripMenuItem";
+ this.binkaConversionToolStripMenuItem.Click += new System.EventHandler(this.binkaConversionToolStripMenuItem_Click);
+ //
+ // videosToolStripMenuItem
+ //
+ this.videosToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.howToMakeABasicSkinPackToolStripMenuItem,
this.howToMakeACustomSkinModelToolStripMenuItem,
this.howToMakeCustomSkinModelsbedrockToolStripMenuItem,
@@ -568,511 +569,518 @@
this.howToInstallPcksDirectlyToWiiUToolStripMenuItem,
this.pCKCenterReleaseToolStripMenuItem,
this.howPCKsWorkToolStripMenuItem});
- this.videosToolStripMenuItem.ForeColor = System.Drawing.Color.Black;
- resources.ApplyResources(this.videosToolStripMenuItem, "videosToolStripMenuItem");
- this.videosToolStripMenuItem.Name = "videosToolStripMenuItem";
- //
- // howToMakeABasicSkinPackToolStripMenuItem
- //
- resources.ApplyResources(this.howToMakeABasicSkinPackToolStripMenuItem, "howToMakeABasicSkinPackToolStripMenuItem");
- this.howToMakeABasicSkinPackToolStripMenuItem.Name = "howToMakeABasicSkinPackToolStripMenuItem";
- this.howToMakeABasicSkinPackToolStripMenuItem.Click += new System.EventHandler(this.howToMakeABasicSkinPackToolStripMenuItem_Click);
- //
- // howToMakeACustomSkinModelToolStripMenuItem
- //
- resources.ApplyResources(this.howToMakeACustomSkinModelToolStripMenuItem, "howToMakeACustomSkinModelToolStripMenuItem");
- this.howToMakeACustomSkinModelToolStripMenuItem.Name = "howToMakeACustomSkinModelToolStripMenuItem";
- this.howToMakeACustomSkinModelToolStripMenuItem.Click += new System.EventHandler(this.howToMakeACustomSkinModelToolStripMenuItem_Click);
- //
- // howToMakeCustomSkinModelsbedrockToolStripMenuItem
- //
- resources.ApplyResources(this.howToMakeCustomSkinModelsbedrockToolStripMenuItem, "howToMakeCustomSkinModelsbedrockToolStripMenuItem");
- this.howToMakeCustomSkinModelsbedrockToolStripMenuItem.Name = "howToMakeCustomSkinModelsbedrockToolStripMenuItem";
- this.howToMakeCustomSkinModelsbedrockToolStripMenuItem.Click += new System.EventHandler(this.howToMakeCustomSkinModelsbedrockToolStripMenuItem_Click);
- //
- // howToMakeCustomMusicToolStripMenuItem
- //
- resources.ApplyResources(this.howToMakeCustomMusicToolStripMenuItem, "howToMakeCustomMusicToolStripMenuItem");
- this.howToMakeCustomMusicToolStripMenuItem.Name = "howToMakeCustomMusicToolStripMenuItem";
- this.howToMakeCustomMusicToolStripMenuItem.Click += new System.EventHandler(this.howToMakeCustomMusicToolStripMenuItem_Click);
- //
- // howToInstallPcksDirectlyToWiiUToolStripMenuItem
- //
- resources.ApplyResources(this.howToInstallPcksDirectlyToWiiUToolStripMenuItem, "howToInstallPcksDirectlyToWiiUToolStripMenuItem");
- this.howToInstallPcksDirectlyToWiiUToolStripMenuItem.Name = "howToInstallPcksDirectlyToWiiUToolStripMenuItem";
- this.howToInstallPcksDirectlyToWiiUToolStripMenuItem.Click += new System.EventHandler(this.howToInstallPcksDirectlyToWiiUToolStripMenuItem_Click);
- //
- // pCKCenterReleaseToolStripMenuItem
- //
- resources.ApplyResources(this.pCKCenterReleaseToolStripMenuItem, "pCKCenterReleaseToolStripMenuItem");
- this.pCKCenterReleaseToolStripMenuItem.Name = "pCKCenterReleaseToolStripMenuItem";
- this.pCKCenterReleaseToolStripMenuItem.Click += new System.EventHandler(this.pCKCenterReleaseToolStripMenuItem_Click);
- //
- // howPCKsWorkToolStripMenuItem
- //
- resources.ApplyResources(this.howPCKsWorkToolStripMenuItem, "howPCKsWorkToolStripMenuItem");
- this.howPCKsWorkToolStripMenuItem.Name = "howPCKsWorkToolStripMenuItem";
- this.howPCKsWorkToolStripMenuItem.Click += new System.EventHandler(this.howPCKsWorkToolStripMenuItem_Click);
- //
- // installationToolStripMenuItem
- //
- resources.ApplyResources(this.installationToolStripMenuItem, "installationToolStripMenuItem");
- this.installationToolStripMenuItem.Name = "installationToolStripMenuItem";
- //
- // fAQToolStripMenuItem1
- //
- resources.ApplyResources(this.fAQToolStripMenuItem1, "fAQToolStripMenuItem1");
- this.fAQToolStripMenuItem1.Name = "fAQToolStripMenuItem1";
- this.fAQToolStripMenuItem1.Click += new System.EventHandler(this.fAQToolStripMenuItem1_Click);
- //
- // donateToolStripMenuItem
- //
- this.donateToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.videosToolStripMenuItem.ForeColor = System.Drawing.Color.Black;
+ resources.ApplyResources(this.videosToolStripMenuItem, "videosToolStripMenuItem");
+ this.videosToolStripMenuItem.Name = "videosToolStripMenuItem";
+ //
+ // howToMakeABasicSkinPackToolStripMenuItem
+ //
+ resources.ApplyResources(this.howToMakeABasicSkinPackToolStripMenuItem, "howToMakeABasicSkinPackToolStripMenuItem");
+ this.howToMakeABasicSkinPackToolStripMenuItem.Name = "howToMakeABasicSkinPackToolStripMenuItem";
+ this.howToMakeABasicSkinPackToolStripMenuItem.Click += new System.EventHandler(this.howToMakeABasicSkinPackToolStripMenuItem_Click);
+ //
+ // howToMakeACustomSkinModelToolStripMenuItem
+ //
+ resources.ApplyResources(this.howToMakeACustomSkinModelToolStripMenuItem, "howToMakeACustomSkinModelToolStripMenuItem");
+ this.howToMakeACustomSkinModelToolStripMenuItem.Name = "howToMakeACustomSkinModelToolStripMenuItem";
+ this.howToMakeACustomSkinModelToolStripMenuItem.Click += new System.EventHandler(this.howToMakeACustomSkinModelToolStripMenuItem_Click);
+ //
+ // howToMakeCustomSkinModelsbedrockToolStripMenuItem
+ //
+ resources.ApplyResources(this.howToMakeCustomSkinModelsbedrockToolStripMenuItem, "howToMakeCustomSkinModelsbedrockToolStripMenuItem");
+ this.howToMakeCustomSkinModelsbedrockToolStripMenuItem.Name = "howToMakeCustomSkinModelsbedrockToolStripMenuItem";
+ this.howToMakeCustomSkinModelsbedrockToolStripMenuItem.Click += new System.EventHandler(this.howToMakeCustomSkinModelsbedrockToolStripMenuItem_Click);
+ //
+ // howToMakeCustomMusicToolStripMenuItem
+ //
+ resources.ApplyResources(this.howToMakeCustomMusicToolStripMenuItem, "howToMakeCustomMusicToolStripMenuItem");
+ this.howToMakeCustomMusicToolStripMenuItem.Name = "howToMakeCustomMusicToolStripMenuItem";
+ this.howToMakeCustomMusicToolStripMenuItem.Click += new System.EventHandler(this.howToMakeCustomMusicToolStripMenuItem_Click);
+ //
+ // howToInstallPcksDirectlyToWiiUToolStripMenuItem
+ //
+ resources.ApplyResources(this.howToInstallPcksDirectlyToWiiUToolStripMenuItem, "howToInstallPcksDirectlyToWiiUToolStripMenuItem");
+ this.howToInstallPcksDirectlyToWiiUToolStripMenuItem.Name = "howToInstallPcksDirectlyToWiiUToolStripMenuItem";
+ this.howToInstallPcksDirectlyToWiiUToolStripMenuItem.Click += new System.EventHandler(this.howToInstallPcksDirectlyToWiiUToolStripMenuItem_Click);
+ //
+ // pCKCenterReleaseToolStripMenuItem
+ //
+ resources.ApplyResources(this.pCKCenterReleaseToolStripMenuItem, "pCKCenterReleaseToolStripMenuItem");
+ this.pCKCenterReleaseToolStripMenuItem.Name = "pCKCenterReleaseToolStripMenuItem";
+ this.pCKCenterReleaseToolStripMenuItem.Click += new System.EventHandler(this.pCKCenterReleaseToolStripMenuItem_Click);
+ //
+ // howPCKsWorkToolStripMenuItem
+ //
+ resources.ApplyResources(this.howPCKsWorkToolStripMenuItem, "howPCKsWorkToolStripMenuItem");
+ this.howPCKsWorkToolStripMenuItem.Name = "howPCKsWorkToolStripMenuItem";
+ this.howPCKsWorkToolStripMenuItem.Click += new System.EventHandler(this.howPCKsWorkToolStripMenuItem_Click);
+ //
+ // installationToolStripMenuItem
+ //
+ resources.ApplyResources(this.installationToolStripMenuItem, "installationToolStripMenuItem");
+ this.installationToolStripMenuItem.Name = "installationToolStripMenuItem";
+ //
+ // fAQToolStripMenuItem1
+ //
+ resources.ApplyResources(this.fAQToolStripMenuItem1, "fAQToolStripMenuItem1");
+ this.fAQToolStripMenuItem1.Name = "fAQToolStripMenuItem1";
+ this.fAQToolStripMenuItem1.Click += new System.EventHandler(this.fAQToolStripMenuItem1_Click);
+ //
+ // donateToolStripMenuItem
+ //
+ this.donateToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toNobledezJackToolStripMenuItem,
this.toPhoenixARCDeveloperToolStripMenuItem,
this.forMattNLContributorToolStripMenuItem});
- this.donateToolStripMenuItem.Name = "donateToolStripMenuItem";
- resources.ApplyResources(this.donateToolStripMenuItem, "donateToolStripMenuItem");
- //
- // toNobledezJackToolStripMenuItem
- //
- this.toNobledezJackToolStripMenuItem.Name = "toNobledezJackToolStripMenuItem";
- resources.ApplyResources(this.toNobledezJackToolStripMenuItem, "toNobledezJackToolStripMenuItem");
- this.toNobledezJackToolStripMenuItem.Click += new System.EventHandler(this.toNobledezJackToolStripMenuItem_Click);
- //
- // toPhoenixARCDeveloperToolStripMenuItem
- //
- this.toPhoenixARCDeveloperToolStripMenuItem.Name = "toPhoenixARCDeveloperToolStripMenuItem";
- resources.ApplyResources(this.toPhoenixARCDeveloperToolStripMenuItem, "toPhoenixARCDeveloperToolStripMenuItem");
- this.toPhoenixARCDeveloperToolStripMenuItem.Click += new System.EventHandler(this.toPhoenixARCDeveloperToolStripMenuItem_Click);
- //
- // forMattNLContributorToolStripMenuItem
- //
- this.forMattNLContributorToolStripMenuItem.Name = "forMattNLContributorToolStripMenuItem";
- resources.ApplyResources(this.forMattNLContributorToolStripMenuItem, "forMattNLContributorToolStripMenuItem");
- this.forMattNLContributorToolStripMenuItem.Click += new System.EventHandler(this.forMattNLContributorToolStripMenuItem_Click);
- //
- // settingsToolStripMenuItem
- //
- this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem";
- resources.ApplyResources(this.settingsToolStripMenuItem, "settingsToolStripMenuItem");
- this.settingsToolStripMenuItem.Click += new System.EventHandler(this.settingsToolStripMenuItem_Click);
- //
- // administrativeToolsToolStripMenuItem
- //
- resources.ApplyResources(this.administrativeToolsToolStripMenuItem, "administrativeToolsToolStripMenuItem");
- this.administrativeToolsToolStripMenuItem.Name = "administrativeToolsToolStripMenuItem";
- this.administrativeToolsToolStripMenuItem.Click += new System.EventHandler(this.administrativeToolsToolStripMenuItem_Click);
- //
- // storeToolStripMenuItem
- //
- this.storeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.donateToolStripMenuItem.Name = "donateToolStripMenuItem";
+ resources.ApplyResources(this.donateToolStripMenuItem, "donateToolStripMenuItem");
+ //
+ // toNobledezJackToolStripMenuItem
+ //
+ this.toNobledezJackToolStripMenuItem.Name = "toNobledezJackToolStripMenuItem";
+ resources.ApplyResources(this.toNobledezJackToolStripMenuItem, "toNobledezJackToolStripMenuItem");
+ this.toNobledezJackToolStripMenuItem.Click += new System.EventHandler(this.toNobledezJackToolStripMenuItem_Click);
+ //
+ // toPhoenixARCDeveloperToolStripMenuItem
+ //
+ this.toPhoenixARCDeveloperToolStripMenuItem.Name = "toPhoenixARCDeveloperToolStripMenuItem";
+ resources.ApplyResources(this.toPhoenixARCDeveloperToolStripMenuItem, "toPhoenixARCDeveloperToolStripMenuItem");
+ this.toPhoenixARCDeveloperToolStripMenuItem.Click += new System.EventHandler(this.toPhoenixARCDeveloperToolStripMenuItem_Click);
+ //
+ // forMattNLContributorToolStripMenuItem
+ //
+ this.forMattNLContributorToolStripMenuItem.Name = "forMattNLContributorToolStripMenuItem";
+ resources.ApplyResources(this.forMattNLContributorToolStripMenuItem, "forMattNLContributorToolStripMenuItem");
+ this.forMattNLContributorToolStripMenuItem.Click += new System.EventHandler(this.forMattNLContributorToolStripMenuItem_Click);
+ //
+ // settingsToolStripMenuItem
+ //
+ this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem";
+ resources.ApplyResources(this.settingsToolStripMenuItem, "settingsToolStripMenuItem");
+ this.settingsToolStripMenuItem.Click += new System.EventHandler(this.settingsToolStripMenuItem_Click);
+ //
+ // administrativeToolsToolStripMenuItem
+ //
+ resources.ApplyResources(this.administrativeToolsToolStripMenuItem, "administrativeToolsToolStripMenuItem");
+ this.administrativeToolsToolStripMenuItem.Name = "administrativeToolsToolStripMenuItem";
+ this.administrativeToolsToolStripMenuItem.Click += new System.EventHandler(this.administrativeToolsToolStripMenuItem_Click);
+ //
+ // storeToolStripMenuItem
+ //
+ this.storeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.openToolStripMenuItem1,
this.wiiUPCKInstallerToolStripMenuItem,
this.PS3PCKInstallerToolStripMenuItem,
this.VitaPCKInstallerToolStripMenuItem,
- this.joinDevelopmentDiscordToolStripMenuItem});
- this.storeToolStripMenuItem.ForeColor = System.Drawing.Color.White;
- resources.ApplyResources(this.storeToolStripMenuItem, "storeToolStripMenuItem");
- this.storeToolStripMenuItem.Name = "storeToolStripMenuItem";
- //
- // openToolStripMenuItem1
- //
- resources.ApplyResources(this.openToolStripMenuItem1, "openToolStripMenuItem1");
- this.openToolStripMenuItem1.Name = "openToolStripMenuItem1";
- this.openToolStripMenuItem1.Click += new System.EventHandler(this.openToolStripMenuItem1_Click);
- //
- // wiiUPCKInstallerToolStripMenuItem
- //
- resources.ApplyResources(this.wiiUPCKInstallerToolStripMenuItem, "wiiUPCKInstallerToolStripMenuItem");
- this.wiiUPCKInstallerToolStripMenuItem.Name = "wiiUPCKInstallerToolStripMenuItem";
- this.wiiUPCKInstallerToolStripMenuItem.Click += new System.EventHandler(this.wiiUPCKInstallerToolStripMenuItem_Click);
- //
- // PS3PCKInstallerToolStripMenuItem
- //
- resources.ApplyResources(this.PS3PCKInstallerToolStripMenuItem, "PS3PCKInstallerToolStripMenuItem");
- this.PS3PCKInstallerToolStripMenuItem.Name = "PS3PCKInstallerToolStripMenuItem";
- this.PS3PCKInstallerToolStripMenuItem.Click += new System.EventHandler(this.PS3PCKInstallerToolStripMenuItem_Click);
- //
- // VitaPCKInstallerToolStripMenuItem
- //
- resources.ApplyResources(this.VitaPCKInstallerToolStripMenuItem, "VitaPCKInstallerToolStripMenuItem");
- this.VitaPCKInstallerToolStripMenuItem.Name = "VitaPCKInstallerToolStripMenuItem";
- this.VitaPCKInstallerToolStripMenuItem.Click += new System.EventHandler(this.VitaPCKInstallerToolStripMenuItem_Click);
- //
- // joinDevelopmentDiscordToolStripMenuItem
- //
- resources.ApplyResources(this.joinDevelopmentDiscordToolStripMenuItem, "joinDevelopmentDiscordToolStripMenuItem");
- this.joinDevelopmentDiscordToolStripMenuItem.Name = "joinDevelopmentDiscordToolStripMenuItem";
- this.joinDevelopmentDiscordToolStripMenuItem.Click += new System.EventHandler(this.joinDevelopmentDiscordToolStripMenuItem_Click);
- //
- // miscToolStripMenuItem
- //
- this.miscToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.joinDevelopmentDiscordToolStripMenuItem,
+ this.trelloBoardToolStripMenuItem});
+ this.storeToolStripMenuItem.ForeColor = System.Drawing.Color.White;
+ resources.ApplyResources(this.storeToolStripMenuItem, "storeToolStripMenuItem");
+ this.storeToolStripMenuItem.Name = "storeToolStripMenuItem";
+ //
+ // openToolStripMenuItem1
+ //
+ resources.ApplyResources(this.openToolStripMenuItem1, "openToolStripMenuItem1");
+ this.openToolStripMenuItem1.Name = "openToolStripMenuItem1";
+ this.openToolStripMenuItem1.Click += new System.EventHandler(this.openToolStripMenuItem1_Click);
+ //
+ // wiiUPCKInstallerToolStripMenuItem
+ //
+ resources.ApplyResources(this.wiiUPCKInstallerToolStripMenuItem, "wiiUPCKInstallerToolStripMenuItem");
+ this.wiiUPCKInstallerToolStripMenuItem.Name = "wiiUPCKInstallerToolStripMenuItem";
+ this.wiiUPCKInstallerToolStripMenuItem.Click += new System.EventHandler(this.wiiUPCKInstallerToolStripMenuItem_Click);
+ //
+ // PS3PCKInstallerToolStripMenuItem
+ //
+ resources.ApplyResources(this.PS3PCKInstallerToolStripMenuItem, "PS3PCKInstallerToolStripMenuItem");
+ this.PS3PCKInstallerToolStripMenuItem.Name = "PS3PCKInstallerToolStripMenuItem";
+ this.PS3PCKInstallerToolStripMenuItem.Click += new System.EventHandler(this.PS3PCKInstallerToolStripMenuItem_Click);
+ //
+ // VitaPCKInstallerToolStripMenuItem
+ //
+ resources.ApplyResources(this.VitaPCKInstallerToolStripMenuItem, "VitaPCKInstallerToolStripMenuItem");
+ this.VitaPCKInstallerToolStripMenuItem.Name = "VitaPCKInstallerToolStripMenuItem";
+ this.VitaPCKInstallerToolStripMenuItem.Click += new System.EventHandler(this.VitaPCKInstallerToolStripMenuItem_Click);
+ //
+ // joinDevelopmentDiscordToolStripMenuItem
+ //
+ resources.ApplyResources(this.joinDevelopmentDiscordToolStripMenuItem, "joinDevelopmentDiscordToolStripMenuItem");
+ this.joinDevelopmentDiscordToolStripMenuItem.Name = "joinDevelopmentDiscordToolStripMenuItem";
+ this.joinDevelopmentDiscordToolStripMenuItem.Click += new System.EventHandler(this.joinDevelopmentDiscordToolStripMenuItem_Click);
+ //
+ // miscToolStripMenuItem
+ //
+ this.miscToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.addCustomPackImageToolStripMenuItem});
- this.miscToolStripMenuItem.ForeColor = System.Drawing.Color.White;
- this.miscToolStripMenuItem.Name = "miscToolStripMenuItem";
- resources.ApplyResources(this.miscToolStripMenuItem, "miscToolStripMenuItem");
- //
- // addCustomPackImageToolStripMenuItem
- //
- resources.ApplyResources(this.addCustomPackImageToolStripMenuItem, "addCustomPackImageToolStripMenuItem");
- this.addCustomPackImageToolStripMenuItem.Name = "addCustomPackImageToolStripMenuItem";
- this.addCustomPackImageToolStripMenuItem.Click += new System.EventHandler(this.addCustomPackIconToolStripMenuItem_Click);
- //
- // contextMenuMetaTree
- //
- this.contextMenuMetaTree.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.miscToolStripMenuItem.ForeColor = System.Drawing.Color.White;
+ this.miscToolStripMenuItem.Name = "miscToolStripMenuItem";
+ resources.ApplyResources(this.miscToolStripMenuItem, "miscToolStripMenuItem");
+ //
+ // addCustomPackImageToolStripMenuItem
+ //
+ resources.ApplyResources(this.addCustomPackImageToolStripMenuItem, "addCustomPackImageToolStripMenuItem");
+ this.addCustomPackImageToolStripMenuItem.Name = "addCustomPackImageToolStripMenuItem";
+ this.addCustomPackImageToolStripMenuItem.Click += new System.EventHandler(this.addCustomPackIconToolStripMenuItem_Click);
+ //
+ // contextMenuMetaTree
+ //
+ this.contextMenuMetaTree.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.addEntryToolStripMenuItem,
this.addMultipleEntriesToolStripMenuItem1,
this.deleteEntryToolStripMenuItem,
this.editAllEntriesToolStripMenuItem});
- this.contextMenuMetaTree.Name = "contextMenuStrip1";
- resources.ApplyResources(this.contextMenuMetaTree, "contextMenuMetaTree");
- //
- // addEntryToolStripMenuItem
- //
- resources.ApplyResources(this.addEntryToolStripMenuItem, "addEntryToolStripMenuItem");
- this.addEntryToolStripMenuItem.Name = "addEntryToolStripMenuItem";
- this.addEntryToolStripMenuItem.Click += new System.EventHandler(this.addEntryToolStripMenuItem_Click_1);
- //
- // addMultipleEntriesToolStripMenuItem1
- //
- resources.ApplyResources(this.addMultipleEntriesToolStripMenuItem1, "addMultipleEntriesToolStripMenuItem1");
- this.addMultipleEntriesToolStripMenuItem1.Name = "addMultipleEntriesToolStripMenuItem1";
- this.addMultipleEntriesToolStripMenuItem1.Click += new System.EventHandler(this.addMultipleEntriesToolStripMenuItem1_Click);
- //
- // deleteEntryToolStripMenuItem
- //
- resources.ApplyResources(this.deleteEntryToolStripMenuItem, "deleteEntryToolStripMenuItem");
- this.deleteEntryToolStripMenuItem.Name = "deleteEntryToolStripMenuItem";
- this.deleteEntryToolStripMenuItem.Click += new System.EventHandler(this.deleteEntryToolStripMenuItem_Click);
- //
- // editAllEntriesToolStripMenuItem
- //
- this.editAllEntriesToolStripMenuItem.Name = "editAllEntriesToolStripMenuItem";
- resources.ApplyResources(this.editAllEntriesToolStripMenuItem, "editAllEntriesToolStripMenuItem");
- this.editAllEntriesToolStripMenuItem.Click += new System.EventHandler(this.editAllEntriesToolStripMenuItem_Click);
- //
- // pictureBox2
- //
- resources.ApplyResources(this.pictureBox2, "pictureBox2");
- this.pictureBox2.Name = "pictureBox2";
- this.pictureBox2.TabStop = false;
- //
- // tabControl
- //
- this.tabControl.Controls.Add(this.openTab);
- this.tabControl.Controls.Add(this.editorTab);
- resources.ApplyResources(this.tabControl, "tabControl");
- this.tabControl.Name = "tabControl";
- this.tabControl.SelectedIndex = 0;
- this.tabControl.Style = MetroFramework.MetroColorStyle.Silver;
- this.tabControl.TabStop = false;
- this.tabControl.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.tabControl.UseSelectable = true;
- this.tabControl.Selecting += new System.Windows.Forms.TabControlCancelEventHandler(this.tabControl_Selecting);
- //
- // openTab
- //
- this.openTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18)))));
- this.openTab.Controls.Add(this.pckOpen);
- this.openTab.Controls.Add(this.label5);
- this.openTab.Controls.Add(this.labelVersion);
- this.openTab.Controls.Add(this.ChangelogRichTextBox);
- this.openTab.ForeColor = System.Drawing.Color.Transparent;
- this.openTab.HorizontalScrollbarBarColor = true;
- this.openTab.HorizontalScrollbarHighlightOnWheel = false;
- this.openTab.HorizontalScrollbarSize = 10;
- resources.ApplyResources(this.openTab, "openTab");
- this.openTab.Name = "openTab";
- this.openTab.Style = MetroFramework.MetroColorStyle.Black;
- this.openTab.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.openTab.UseStyleColors = true;
- this.openTab.VerticalScrollbarBarColor = false;
- this.openTab.VerticalScrollbarHighlightOnWheel = false;
- this.openTab.VerticalScrollbarSize = 10;
- //
- // pckOpen
- //
- this.pckOpen.BackColor = System.Drawing.Color.Transparent;
- resources.ApplyResources(this.pckOpen, "pckOpen");
- this.pckOpen.Name = "pckOpen";
- this.pckOpen.TabStop = false;
- this.pckOpen.Click += new System.EventHandler(this.OpenPck_Click);
- this.pckOpen.DragDrop += new System.Windows.Forms.DragEventHandler(this.OpenPck_DragDrop);
- this.pckOpen.DragEnter += new System.Windows.Forms.DragEventHandler(this.OpenPck_DragEnter);
- this.pckOpen.DragLeave += new System.EventHandler(this.OpenPck_DragLeave);
- this.pckOpen.MouseEnter += new System.EventHandler(this.OpenPck_MouseEnter);
- this.pckOpen.MouseLeave += new System.EventHandler(this.OpenPck_MouseLeave);
- //
- // label5
- //
- resources.ApplyResources(this.label5, "label5");
- this.label5.BackColor = System.Drawing.Color.Transparent;
- this.label5.ForeColor = System.Drawing.Color.White;
- this.label5.Name = "label5";
- this.label5.Theme = MetroFramework.MetroThemeStyle.Dark;
- //
- // labelVersion
- //
- resources.ApplyResources(this.labelVersion, "labelVersion");
- this.labelVersion.ForeColor = System.Drawing.Color.White;
- this.labelVersion.Name = "labelVersion";
- this.labelVersion.Theme = MetroFramework.MetroThemeStyle.Dark;
- //
- // ChangelogRichTextBox
- //
- this.ChangelogRichTextBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(13)))), ((int)(((byte)(13)))), ((int)(((byte)(13)))));
- this.ChangelogRichTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
- resources.ApplyResources(this.ChangelogRichTextBox, "ChangelogRichTextBox");
- this.ChangelogRichTextBox.ForeColor = System.Drawing.Color.White;
- this.ChangelogRichTextBox.Name = "ChangelogRichTextBox";
- this.ChangelogRichTextBox.ReadOnly = true;
- //
- // editorTab
- //
- this.editorTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18)))));
- resources.ApplyResources(this.editorTab, "editorTab");
- this.editorTab.Controls.Add(this.metroLabel3);
- this.editorTab.Controls.Add(this.labelImageSize);
- this.editorTab.Controls.Add(this.fileEntryCountLabel);
- this.editorTab.Controls.Add(this.PropertiesTabControl);
- this.editorTab.Controls.Add(this.label11);
- this.editorTab.Controls.Add(this.treeViewMain);
- this.editorTab.Controls.Add(this.pictureBox2);
- this.editorTab.Controls.Add(this.pictureBoxImagePreview);
- this.editorTab.ForeColor = System.Drawing.Color.Transparent;
- this.editorTab.HorizontalScrollbarBarColor = true;
- this.editorTab.HorizontalScrollbarHighlightOnWheel = false;
- this.editorTab.HorizontalScrollbarSize = 0;
- this.editorTab.Name = "editorTab";
- this.editorTab.Style = MetroFramework.MetroColorStyle.White;
- this.editorTab.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.editorTab.VerticalScrollbarBarColor = true;
- this.editorTab.VerticalScrollbarHighlightOnWheel = false;
- this.editorTab.VerticalScrollbarSize = 0;
- //
- // metroLabel3
- //
- resources.ApplyResources(this.metroLabel3, "metroLabel3");
- this.metroLabel3.Name = "metroLabel3";
- this.metroLabel3.Theme = MetroFramework.MetroThemeStyle.Dark;
- //
- // labelImageSize
- //
- resources.ApplyResources(this.labelImageSize, "labelImageSize");
- this.labelImageSize.Name = "labelImageSize";
- this.labelImageSize.Theme = MetroFramework.MetroThemeStyle.Dark;
- //
- // fileEntryCountLabel
- //
- resources.ApplyResources(this.fileEntryCountLabel, "fileEntryCountLabel");
- this.fileEntryCountLabel.Name = "fileEntryCountLabel";
- this.fileEntryCountLabel.Theme = MetroFramework.MetroThemeStyle.Dark;
- //
- // PropertiesTabControl
- //
- resources.ApplyResources(this.PropertiesTabControl, "PropertiesTabControl");
- this.PropertiesTabControl.Controls.Add(this.MetaTab);
- this.PropertiesTabControl.Name = "PropertiesTabControl";
- this.PropertiesTabControl.SelectedIndex = 0;
- this.PropertiesTabControl.Style = MetroFramework.MetroColorStyle.Silver;
- this.PropertiesTabControl.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.PropertiesTabControl.UseSelectable = true;
- //
- // MetaTab
- //
- this.MetaTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
- this.MetaTab.Controls.Add(this.metroLabel2);
- this.MetaTab.Controls.Add(this.treeMeta);
- this.MetaTab.Controls.Add(this.entryTypeTextBox);
- this.MetaTab.Controls.Add(this.entryDataTextBox);
- this.MetaTab.Controls.Add(this.buttonEdit);
- this.MetaTab.Controls.Add(this.metroLabel1);
- this.MetaTab.HorizontalScrollbarBarColor = true;
- this.MetaTab.HorizontalScrollbarHighlightOnWheel = false;
- this.MetaTab.HorizontalScrollbarSize = 10;
- resources.ApplyResources(this.MetaTab, "MetaTab");
- this.MetaTab.Name = "MetaTab";
- this.MetaTab.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.MetaTab.VerticalScrollbarBarColor = true;
- this.MetaTab.VerticalScrollbarHighlightOnWheel = false;
- this.MetaTab.VerticalScrollbarSize = 10;
- //
- // metroLabel2
- //
- resources.ApplyResources(this.metroLabel2, "metroLabel2");
- this.metroLabel2.Name = "metroLabel2";
- this.metroLabel2.Theme = MetroFramework.MetroThemeStyle.Dark;
- //
- // treeMeta
- //
- this.treeMeta.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(13)))), ((int)(((byte)(13)))), ((int)(((byte)(13)))));
- this.treeMeta.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.treeMeta.ContextMenuStrip = this.contextMenuMetaTree;
- resources.ApplyResources(this.treeMeta, "treeMeta");
- this.treeMeta.ForeColor = System.Drawing.SystemColors.Window;
- this.treeMeta.Name = "treeMeta";
- this.treeMeta.PathSeparator = "/";
- this.treeMeta.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeMeta_AfterSelect);
- this.treeMeta.DoubleClick += new System.EventHandler(this.treeMeta_DoubleClick);
- this.treeMeta.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeMeta_KeyDown);
- //
- // entryTypeTextBox
- //
- resources.ApplyResources(this.entryTypeTextBox, "entryTypeTextBox");
- //
- //
- //
- this.entryTypeTextBox.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image")));
- this.entryTypeTextBox.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode")));
- this.entryTypeTextBox.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location")));
- this.entryTypeTextBox.CustomButton.Name = "";
- this.entryTypeTextBox.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size")));
- this.entryTypeTextBox.CustomButton.Style = MetroFramework.MetroColorStyle.Blue;
- this.entryTypeTextBox.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex")));
- this.entryTypeTextBox.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light;
- this.entryTypeTextBox.CustomButton.UseSelectable = true;
- this.entryTypeTextBox.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible")));
- this.entryTypeTextBox.Lines = new string[0];
- this.entryTypeTextBox.MaxLength = 32767;
- this.entryTypeTextBox.Name = "entryTypeTextBox";
- this.entryTypeTextBox.PasswordChar = '\0';
- this.entryTypeTextBox.ScrollBars = System.Windows.Forms.ScrollBars.None;
- this.entryTypeTextBox.SelectedText = "";
- this.entryTypeTextBox.SelectionLength = 0;
- this.entryTypeTextBox.SelectionStart = 0;
- this.entryTypeTextBox.ShortcutsEnabled = true;
- this.entryTypeTextBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.entryTypeTextBox.UseSelectable = true;
- this.entryTypeTextBox.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109)))));
- this.entryTypeTextBox.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel);
- //
- // entryDataTextBox
- //
- resources.ApplyResources(this.entryDataTextBox, "entryDataTextBox");
- //
- //
- //
- this.entryDataTextBox.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image1")));
- this.entryDataTextBox.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode1")));
- this.entryDataTextBox.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location1")));
- this.entryDataTextBox.CustomButton.Name = "";
- this.entryDataTextBox.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size1")));
- this.entryDataTextBox.CustomButton.Style = MetroFramework.MetroColorStyle.Blue;
- this.entryDataTextBox.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex1")));
- this.entryDataTextBox.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light;
- this.entryDataTextBox.CustomButton.UseSelectable = true;
- this.entryDataTextBox.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible1")));
- this.entryDataTextBox.Lines = new string[0];
- this.entryDataTextBox.MaxLength = 32767;
- this.entryDataTextBox.Name = "entryDataTextBox";
- this.entryDataTextBox.PasswordChar = '\0';
- this.entryDataTextBox.ScrollBars = System.Windows.Forms.ScrollBars.None;
- this.entryDataTextBox.SelectedText = "";
- this.entryDataTextBox.SelectionLength = 0;
- this.entryDataTextBox.SelectionStart = 0;
- this.entryDataTextBox.ShortcutsEnabled = true;
- this.entryDataTextBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.entryDataTextBox.UseSelectable = true;
- this.entryDataTextBox.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109)))));
- this.entryDataTextBox.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel);
- //
- // buttonEdit
- //
- resources.ApplyResources(this.buttonEdit, "buttonEdit");
- this.buttonEdit.Name = "buttonEdit";
- this.buttonEdit.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.buttonEdit.UseSelectable = true;
- this.buttonEdit.Click += new System.EventHandler(this.treeViewMain_DoubleClick);
- //
- // metroLabel1
- //
- resources.ApplyResources(this.metroLabel1, "metroLabel1");
- this.metroLabel1.Name = "metroLabel1";
- this.metroLabel1.Theme = MetroFramework.MetroThemeStyle.Dark;
- //
- // label11
- //
- resources.ApplyResources(this.label11, "label11");
- this.label11.Name = "label11";
- //
- // treeViewMain
- //
- this.treeViewMain.AllowDrop = true;
- resources.ApplyResources(this.treeViewMain, "treeViewMain");
- this.treeViewMain.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(12)))), ((int)(((byte)(12)))), ((int)(((byte)(12)))));
- this.treeViewMain.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.treeViewMain.ContextMenuStrip = this.contextMenuPCKEntries;
- this.treeViewMain.ForeColor = System.Drawing.Color.White;
- this.treeViewMain.ImageList = this.imageList;
- this.treeViewMain.LabelEdit = true;
- this.treeViewMain.Name = "treeViewMain";
- this.treeViewMain.PathSeparator = "/";
- this.treeViewMain.BeforeLabelEdit += new System.Windows.Forms.NodeLabelEditEventHandler(this.treeViewMain_BeforeLabelEdit);
- this.treeViewMain.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.selectNode);
- this.treeViewMain.DoubleClick += new System.EventHandler(this.treeViewMain_DoubleClick);
- this.treeViewMain.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeViewMain_KeyDown);
- //
- // imageList
- //
- this.imageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit;
- resources.ApplyResources(this.imageList, "imageList");
- this.imageList.TransparentColor = System.Drawing.Color.Transparent;
- //
- // pictureBoxImagePreview
- //
- resources.ApplyResources(this.pictureBoxImagePreview, "pictureBoxImagePreview");
- this.pictureBoxImagePreview.BackColor = System.Drawing.Color.Transparent;
- this.pictureBoxImagePreview.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
- this.pictureBoxImagePreview.Name = "pictureBoxImagePreview";
- this.pictureBoxImagePreview.TabStop = false;
- //
- // LittleEndianCheckBox
- //
- resources.ApplyResources(this.LittleEndianCheckBox, "LittleEndianCheckBox");
- this.LittleEndianCheckBox.BackColor = System.Drawing.Color.Transparent;
- this.LittleEndianCheckBox.Name = "LittleEndianCheckBox";
- this.LittleEndianCheckBox.Style = MetroFramework.MetroColorStyle.White;
- this.LittleEndianCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.LittleEndianCheckBox.UseSelectable = true;
- //
- // MainForm
- //
- this.ApplyImageInvert = true;
- resources.ApplyResources(this, "$this");
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.Controls.Add(this.LittleEndianCheckBox);
- this.Controls.Add(this.menuStrip);
- this.Controls.Add(this.tabControl);
- this.DisplayHeader = false;
- this.ForeColor = System.Drawing.Color.Silver;
- this.MainMenuStrip = this.menuStrip;
- this.Name = "MainForm";
- this.ShadowType = MetroFramework.Forms.MetroFormShadowType.DropShadow;
- this.Style = MetroFramework.MetroColorStyle.Black;
- this.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormMain_FormClosing);
- this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FormMain_FormClosed);
- this.Load += new System.EventHandler(this.Form1_Load);
- this.contextMenuPCKEntries.ResumeLayout(false);
- this.menuStrip.ResumeLayout(false);
- this.menuStrip.PerformLayout();
- this.contextMenuMetaTree.ResumeLayout(false);
- ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
- this.tabControl.ResumeLayout(false);
- this.openTab.ResumeLayout(false);
- this.openTab.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.pckOpen)).EndInit();
- this.editorTab.ResumeLayout(false);
- this.editorTab.PerformLayout();
- this.PropertiesTabControl.ResumeLayout(false);
- this.MetaTab.ResumeLayout(false);
- this.MetaTab.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.pictureBoxImagePreview)).EndInit();
- this.ResumeLayout(false);
- this.PerformLayout();
+ this.contextMenuMetaTree.Name = "contextMenuStrip1";
+ resources.ApplyResources(this.contextMenuMetaTree, "contextMenuMetaTree");
+ //
+ // addEntryToolStripMenuItem
+ //
+ resources.ApplyResources(this.addEntryToolStripMenuItem, "addEntryToolStripMenuItem");
+ this.addEntryToolStripMenuItem.Name = "addEntryToolStripMenuItem";
+ this.addEntryToolStripMenuItem.Click += new System.EventHandler(this.addEntryToolStripMenuItem_Click_1);
+ //
+ // addMultipleEntriesToolStripMenuItem1
+ //
+ resources.ApplyResources(this.addMultipleEntriesToolStripMenuItem1, "addMultipleEntriesToolStripMenuItem1");
+ this.addMultipleEntriesToolStripMenuItem1.Name = "addMultipleEntriesToolStripMenuItem1";
+ this.addMultipleEntriesToolStripMenuItem1.Click += new System.EventHandler(this.addMultipleEntriesToolStripMenuItem1_Click);
+ //
+ // deleteEntryToolStripMenuItem
+ //
+ resources.ApplyResources(this.deleteEntryToolStripMenuItem, "deleteEntryToolStripMenuItem");
+ this.deleteEntryToolStripMenuItem.Name = "deleteEntryToolStripMenuItem";
+ this.deleteEntryToolStripMenuItem.Click += new System.EventHandler(this.deleteEntryToolStripMenuItem_Click);
+ //
+ // editAllEntriesToolStripMenuItem
+ //
+ this.editAllEntriesToolStripMenuItem.Name = "editAllEntriesToolStripMenuItem";
+ resources.ApplyResources(this.editAllEntriesToolStripMenuItem, "editAllEntriesToolStripMenuItem");
+ this.editAllEntriesToolStripMenuItem.Click += new System.EventHandler(this.editAllEntriesToolStripMenuItem_Click);
+ //
+ // pictureBox2
+ //
+ resources.ApplyResources(this.pictureBox2, "pictureBox2");
+ this.pictureBox2.Name = "pictureBox2";
+ this.pictureBox2.TabStop = false;
+ //
+ // tabControl
+ //
+ this.tabControl.Controls.Add(this.openTab);
+ this.tabControl.Controls.Add(this.editorTab);
+ resources.ApplyResources(this.tabControl, "tabControl");
+ this.tabControl.Name = "tabControl";
+ this.tabControl.SelectedIndex = 0;
+ this.tabControl.Style = MetroFramework.MetroColorStyle.Silver;
+ this.tabControl.TabStop = false;
+ this.tabControl.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.tabControl.UseSelectable = true;
+ this.tabControl.Selecting += new System.Windows.Forms.TabControlCancelEventHandler(this.tabControl_Selecting);
+ //
+ // openTab
+ //
+ this.openTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18)))));
+ this.openTab.Controls.Add(this.pckOpen);
+ this.openTab.Controls.Add(this.label5);
+ this.openTab.Controls.Add(this.labelVersion);
+ this.openTab.Controls.Add(this.ChangelogRichTextBox);
+ this.openTab.ForeColor = System.Drawing.Color.Transparent;
+ this.openTab.HorizontalScrollbarBarColor = true;
+ this.openTab.HorizontalScrollbarHighlightOnWheel = false;
+ this.openTab.HorizontalScrollbarSize = 10;
+ resources.ApplyResources(this.openTab, "openTab");
+ this.openTab.Name = "openTab";
+ this.openTab.Style = MetroFramework.MetroColorStyle.Black;
+ this.openTab.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.openTab.UseStyleColors = true;
+ this.openTab.VerticalScrollbarBarColor = false;
+ this.openTab.VerticalScrollbarHighlightOnWheel = false;
+ this.openTab.VerticalScrollbarSize = 10;
+ //
+ // pckOpen
+ //
+ this.pckOpen.BackColor = System.Drawing.Color.Transparent;
+ resources.ApplyResources(this.pckOpen, "pckOpen");
+ this.pckOpen.Name = "pckOpen";
+ this.pckOpen.TabStop = false;
+ this.pckOpen.Click += new System.EventHandler(this.OpenPck_Click);
+ this.pckOpen.DragDrop += new System.Windows.Forms.DragEventHandler(this.OpenPck_DragDrop);
+ this.pckOpen.DragEnter += new System.Windows.Forms.DragEventHandler(this.OpenPck_DragEnter);
+ this.pckOpen.DragLeave += new System.EventHandler(this.OpenPck_DragLeave);
+ this.pckOpen.MouseEnter += new System.EventHandler(this.OpenPck_MouseEnter);
+ this.pckOpen.MouseLeave += new System.EventHandler(this.OpenPck_MouseLeave);
+ //
+ // label5
+ //
+ resources.ApplyResources(this.label5, "label5");
+ this.label5.BackColor = System.Drawing.Color.Transparent;
+ this.label5.ForeColor = System.Drawing.Color.White;
+ this.label5.Name = "label5";
+ this.label5.Theme = MetroFramework.MetroThemeStyle.Dark;
+ //
+ // labelVersion
+ //
+ resources.ApplyResources(this.labelVersion, "labelVersion");
+ this.labelVersion.ForeColor = System.Drawing.Color.White;
+ this.labelVersion.Name = "labelVersion";
+ this.labelVersion.Theme = MetroFramework.MetroThemeStyle.Dark;
+ //
+ // ChangelogRichTextBox
+ //
+ this.ChangelogRichTextBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(13)))), ((int)(((byte)(13)))), ((int)(((byte)(13)))));
+ this.ChangelogRichTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ resources.ApplyResources(this.ChangelogRichTextBox, "ChangelogRichTextBox");
+ this.ChangelogRichTextBox.ForeColor = System.Drawing.Color.White;
+ this.ChangelogRichTextBox.Name = "ChangelogRichTextBox";
+ this.ChangelogRichTextBox.ReadOnly = true;
+ //
+ // editorTab
+ //
+ this.editorTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18)))));
+ resources.ApplyResources(this.editorTab, "editorTab");
+ this.editorTab.Controls.Add(this.pckFileLabel);
+ this.editorTab.Controls.Add(this.labelImageSize);
+ this.editorTab.Controls.Add(this.fileEntryCountLabel);
+ this.editorTab.Controls.Add(this.PropertiesTabControl);
+ this.editorTab.Controls.Add(this.label11);
+ this.editorTab.Controls.Add(this.treeViewMain);
+ this.editorTab.Controls.Add(this.pictureBox2);
+ this.editorTab.Controls.Add(this.pictureBoxImagePreview);
+ this.editorTab.ForeColor = System.Drawing.Color.Transparent;
+ this.editorTab.HorizontalScrollbarBarColor = true;
+ this.editorTab.HorizontalScrollbarHighlightOnWheel = false;
+ this.editorTab.HorizontalScrollbarSize = 0;
+ this.editorTab.Name = "editorTab";
+ this.editorTab.Style = MetroFramework.MetroColorStyle.White;
+ this.editorTab.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.editorTab.VerticalScrollbarBarColor = true;
+ this.editorTab.VerticalScrollbarHighlightOnWheel = false;
+ this.editorTab.VerticalScrollbarSize = 0;
+ //
+ // pckFileLabel
+ //
+ resources.ApplyResources(this.pckFileLabel, "pckFileLabel");
+ this.pckFileLabel.Name = "pckFileLabel";
+ this.pckFileLabel.Theme = MetroFramework.MetroThemeStyle.Dark;
+ //
+ // labelImageSize
+ //
+ resources.ApplyResources(this.labelImageSize, "labelImageSize");
+ this.labelImageSize.Name = "labelImageSize";
+ this.labelImageSize.Theme = MetroFramework.MetroThemeStyle.Dark;
+ //
+ // fileEntryCountLabel
+ //
+ resources.ApplyResources(this.fileEntryCountLabel, "fileEntryCountLabel");
+ this.fileEntryCountLabel.Name = "fileEntryCountLabel";
+ this.fileEntryCountLabel.Theme = MetroFramework.MetroThemeStyle.Dark;
+ //
+ // PropertiesTabControl
+ //
+ resources.ApplyResources(this.PropertiesTabControl, "PropertiesTabControl");
+ this.PropertiesTabControl.Controls.Add(this.MetaTab);
+ this.PropertiesTabControl.Name = "PropertiesTabControl";
+ this.PropertiesTabControl.SelectedIndex = 0;
+ this.PropertiesTabControl.Style = MetroFramework.MetroColorStyle.Silver;
+ this.PropertiesTabControl.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.PropertiesTabControl.UseSelectable = true;
+ //
+ // MetaTab
+ //
+ this.MetaTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ this.MetaTab.Controls.Add(this.metroLabel2);
+ this.MetaTab.Controls.Add(this.treeMeta);
+ this.MetaTab.Controls.Add(this.entryTypeTextBox);
+ this.MetaTab.Controls.Add(this.entryDataTextBox);
+ this.MetaTab.Controls.Add(this.buttonEdit);
+ this.MetaTab.Controls.Add(this.metroLabel1);
+ this.MetaTab.HorizontalScrollbarBarColor = true;
+ this.MetaTab.HorizontalScrollbarHighlightOnWheel = false;
+ this.MetaTab.HorizontalScrollbarSize = 10;
+ resources.ApplyResources(this.MetaTab, "MetaTab");
+ this.MetaTab.Name = "MetaTab";
+ this.MetaTab.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.MetaTab.VerticalScrollbarBarColor = true;
+ this.MetaTab.VerticalScrollbarHighlightOnWheel = false;
+ this.MetaTab.VerticalScrollbarSize = 10;
+ //
+ // metroLabel2
+ //
+ resources.ApplyResources(this.metroLabel2, "metroLabel2");
+ this.metroLabel2.Name = "metroLabel2";
+ this.metroLabel2.Theme = MetroFramework.MetroThemeStyle.Dark;
+ //
+ // treeMeta
+ //
+ this.treeMeta.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(13)))), ((int)(((byte)(13)))), ((int)(((byte)(13)))));
+ this.treeMeta.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.treeMeta.ContextMenuStrip = this.contextMenuMetaTree;
+ resources.ApplyResources(this.treeMeta, "treeMeta");
+ this.treeMeta.ForeColor = System.Drawing.SystemColors.Window;
+ this.treeMeta.Name = "treeMeta";
+ this.treeMeta.PathSeparator = "/";
+ this.treeMeta.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeMeta_AfterSelect);
+ this.treeMeta.DoubleClick += new System.EventHandler(this.treeMeta_DoubleClick);
+ this.treeMeta.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeMeta_KeyDown);
+ //
+ // entryTypeTextBox
+ //
+ resources.ApplyResources(this.entryTypeTextBox, "entryTypeTextBox");
+ //
+ //
+ //
+ this.entryTypeTextBox.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image")));
+ this.entryTypeTextBox.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode")));
+ this.entryTypeTextBox.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location")));
+ this.entryTypeTextBox.CustomButton.Name = "";
+ this.entryTypeTextBox.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size")));
+ this.entryTypeTextBox.CustomButton.Style = MetroFramework.MetroColorStyle.Blue;
+ this.entryTypeTextBox.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex")));
+ this.entryTypeTextBox.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light;
+ this.entryTypeTextBox.CustomButton.UseSelectable = true;
+ this.entryTypeTextBox.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible")));
+ this.entryTypeTextBox.Lines = new string[0];
+ this.entryTypeTextBox.MaxLength = 32767;
+ this.entryTypeTextBox.Name = "entryTypeTextBox";
+ this.entryTypeTextBox.PasswordChar = '\0';
+ this.entryTypeTextBox.ScrollBars = System.Windows.Forms.ScrollBars.None;
+ this.entryTypeTextBox.SelectedText = "";
+ this.entryTypeTextBox.SelectionLength = 0;
+ this.entryTypeTextBox.SelectionStart = 0;
+ this.entryTypeTextBox.ShortcutsEnabled = true;
+ this.entryTypeTextBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.entryTypeTextBox.UseSelectable = true;
+ this.entryTypeTextBox.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109)))));
+ this.entryTypeTextBox.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel);
+ //
+ // entryDataTextBox
+ //
+ resources.ApplyResources(this.entryDataTextBox, "entryDataTextBox");
+ //
+ //
+ //
+ this.entryDataTextBox.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image1")));
+ this.entryDataTextBox.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode1")));
+ this.entryDataTextBox.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location1")));
+ this.entryDataTextBox.CustomButton.Name = "";
+ this.entryDataTextBox.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size1")));
+ this.entryDataTextBox.CustomButton.Style = MetroFramework.MetroColorStyle.Blue;
+ this.entryDataTextBox.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex1")));
+ this.entryDataTextBox.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light;
+ this.entryDataTextBox.CustomButton.UseSelectable = true;
+ this.entryDataTextBox.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible1")));
+ this.entryDataTextBox.Lines = new string[0];
+ this.entryDataTextBox.MaxLength = 32767;
+ this.entryDataTextBox.Name = "entryDataTextBox";
+ this.entryDataTextBox.PasswordChar = '\0';
+ this.entryDataTextBox.ScrollBars = System.Windows.Forms.ScrollBars.None;
+ this.entryDataTextBox.SelectedText = "";
+ this.entryDataTextBox.SelectionLength = 0;
+ this.entryDataTextBox.SelectionStart = 0;
+ this.entryDataTextBox.ShortcutsEnabled = true;
+ this.entryDataTextBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.entryDataTextBox.UseSelectable = true;
+ this.entryDataTextBox.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109)))));
+ this.entryDataTextBox.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel);
+ //
+ // buttonEdit
+ //
+ resources.ApplyResources(this.buttonEdit, "buttonEdit");
+ this.buttonEdit.Name = "buttonEdit";
+ this.buttonEdit.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.buttonEdit.UseSelectable = true;
+ this.buttonEdit.Click += new System.EventHandler(this.treeViewMain_DoubleClick);
+ //
+ // metroLabel1
+ //
+ resources.ApplyResources(this.metroLabel1, "metroLabel1");
+ this.metroLabel1.Name = "metroLabel1";
+ this.metroLabel1.Theme = MetroFramework.MetroThemeStyle.Dark;
+ //
+ // label11
+ //
+ resources.ApplyResources(this.label11, "label11");
+ this.label11.Name = "label11";
+ //
+ // treeViewMain
+ //
+ this.treeViewMain.AllowDrop = true;
+ resources.ApplyResources(this.treeViewMain, "treeViewMain");
+ this.treeViewMain.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(12)))), ((int)(((byte)(12)))), ((int)(((byte)(12)))));
+ this.treeViewMain.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.treeViewMain.ContextMenuStrip = this.contextMenuPCKEntries;
+ this.treeViewMain.ForeColor = System.Drawing.Color.White;
+ this.treeViewMain.ImageList = this.imageList;
+ this.treeViewMain.LabelEdit = true;
+ this.treeViewMain.Name = "treeViewMain";
+ this.treeViewMain.PathSeparator = "/";
+ this.treeViewMain.BeforeLabelEdit += new System.Windows.Forms.NodeLabelEditEventHandler(this.treeViewMain_BeforeLabelEdit);
+ this.treeViewMain.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.selectNode);
+ this.treeViewMain.DoubleClick += new System.EventHandler(this.treeViewMain_DoubleClick);
+ this.treeViewMain.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeViewMain_KeyDown);
+ //
+ // imageList
+ //
+ this.imageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit;
+ resources.ApplyResources(this.imageList, "imageList");
+ this.imageList.TransparentColor = System.Drawing.Color.Transparent;
+ //
+ // pictureBoxImagePreview
+ //
+ resources.ApplyResources(this.pictureBoxImagePreview, "pictureBoxImagePreview");
+ this.pictureBoxImagePreview.BackColor = System.Drawing.Color.Transparent;
+ this.pictureBoxImagePreview.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
+ this.pictureBoxImagePreview.Name = "pictureBoxImagePreview";
+ this.pictureBoxImagePreview.TabStop = false;
+ //
+ // LittleEndianCheckBox
+ //
+ resources.ApplyResources(this.LittleEndianCheckBox, "LittleEndianCheckBox");
+ this.LittleEndianCheckBox.BackColor = System.Drawing.Color.Transparent;
+ this.LittleEndianCheckBox.Name = "LittleEndianCheckBox";
+ this.LittleEndianCheckBox.Style = MetroFramework.MetroColorStyle.White;
+ this.LittleEndianCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.LittleEndianCheckBox.UseSelectable = true;
+ //
+ // trelloBoardToolStripMenuItem
+ //
+ this.trelloBoardToolStripMenuItem.Name = "trelloBoardToolStripMenuItem";
+ resources.ApplyResources(this.trelloBoardToolStripMenuItem, "trelloBoardToolStripMenuItem");
+ this.trelloBoardToolStripMenuItem.Click += new System.EventHandler(this.trelloBoardToolStripMenuItem_Click);
+ //
+ // MainForm
+ //
+ this.ApplyImageInvert = true;
+ resources.ApplyResources(this, "$this");
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.LittleEndianCheckBox);
+ this.Controls.Add(this.menuStrip);
+ this.Controls.Add(this.tabControl);
+ this.DisplayHeader = false;
+ this.ForeColor = System.Drawing.Color.Silver;
+ this.MainMenuStrip = this.menuStrip;
+ this.Name = "MainForm";
+ this.ShadowType = MetroFramework.Forms.MetroFormShadowType.DropShadow;
+ this.Style = MetroFramework.MetroColorStyle.Black;
+ this.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormMain_FormClosing);
+ this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FormMain_FormClosed);
+ this.Load += new System.EventHandler(this.Form1_Load);
+ this.contextMenuPCKEntries.ResumeLayout(false);
+ this.menuStrip.ResumeLayout(false);
+ this.menuStrip.PerformLayout();
+ this.contextMenuMetaTree.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
+ this.tabControl.ResumeLayout(false);
+ this.openTab.ResumeLayout(false);
+ this.openTab.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pckOpen)).EndInit();
+ this.editorTab.ResumeLayout(false);
+ this.editorTab.PerformLayout();
+ this.PropertiesTabControl.ResumeLayout(false);
+ this.MetaTab.ResumeLayout(false);
+ this.MetaTab.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBoxImagePreview)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
}
@@ -1184,9 +1192,10 @@
private System.Windows.Forms.ToolStripMenuItem CreateSkinsPCKToolStripMenuItem1;
private System.Windows.Forms.ToolStripMenuItem editAllEntriesToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem addFileToolStripMenuItem;
- private MetroFramework.Controls.MetroLabel metroLabel3;
+ private MetroFramework.Controls.MetroLabel pckFileLabel;
private System.Windows.Forms.ToolStripMenuItem behavioursbinToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem entityMaterialsbinToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem trelloBoardToolStripMenuItem;
}
}
diff --git a/PCK-Studio/MainForm.cs b/PCK-Studio/MainForm.cs
index 277a7753..28df0ee1 100644
--- a/PCK-Studio/MainForm.cs
+++ b/PCK-Studio/MainForm.cs
@@ -8,26 +8,25 @@ using System.Drawing.Drawing2D;
using System.Diagnostics;
using System.Drawing.Imaging;
+using OMI.Formats.Pck;
using OMI.Formats.GameRule;
-using OMI.Workers.GameRule;
-using OMI.Workers.Pck;
using OMI.Formats.Languages;
+using OMI.Workers.Pck;
+using OMI.Workers.GameRule;
using OMI.Workers.Language;
using PckStudio.Properties;
using PckStudio.Classes.FileTypes;
using PckStudio.Classes.Utils;
using PckStudio.Classes.Utils.ARC;
-using PckStudio.Classes._3ds.Utils;
using PckStudio.Forms;
-using PckStudio.Forms.Utilities.Skins;
using PckStudio.Forms.Utilities;
using PckStudio.Forms.Editor;
using PckStudio.Forms.Additional_Popups.Animation;
using PckStudio.Forms.Additional_Popups;
using PckStudio.Classes.Misc;
-using OMI.Formats.Pck;
using PckStudio.Classes.IO.PCK;
+using PckStudio.Classes.IO._3DST;
namespace PckStudio
{
@@ -73,7 +72,7 @@ namespace PckStudio
labelVersion.Text = "PCK Studio: " + Application.ProductVersion;
ChangelogRichTextBox.Text = Resources.CHANGELOG;
#if DEBUG
- labelVersion.Text += Program.Info.BuildVersion + " " + Program.Info.LastCommitHash;
+ labelVersion.Text += $" (Debug build: {Program.Info.BuildVersion}@{Program.Info.LastCommitHash})";
#endif
pckFileTypeHandler = new Dictionary>(15)
@@ -114,8 +113,7 @@ namespace PckStudio
private void Form1_Load(object sender, EventArgs e)
{
RPC.Initialize();
- if (currentPCK == null)
- RPC.SetPresence("An Open Source .PCK File Editor", "Program by PhoenixARC");
+ UpdateRPC();
skinToolStripMenuItem1.Click += (sender, e) => setFileType_Click(sender, e, PckFile.FileData.FileType.SkinFile);
capeToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, PckFile.FileData.FileType.CapeFile);
@@ -129,16 +127,6 @@ namespace PckStudio
modelsFileBINToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, PckFile.FileData.FileType.ModelsFile);
behavioursFileBINToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, PckFile.FileData.FileType.BehavioursFile);
entityMaterialsFileBINToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, PckFile.FileData.FileType.MaterialFile);
-
- try
- {
- Directory.CreateDirectory(Program.AppDataCache + "\\mods\\");
- }
- catch (UnauthorizedAccessException ex)
- {
- MessageBox.Show("Could not Create directory due to Unauthorized Access");
- Debug.WriteLine(ex.Message);
- }
}
private void FormMain_FormClosing(object sender, FormClosingEventArgs e)
@@ -164,31 +152,26 @@ namespace PckStudio
{
isTemplateFile = false;
saveLocation = filePath;
- var reader = new PckFileReader();
- PckFile pck = reader.FromFile(filePath);
-
- metroLabel3.Text = "Current PCK File: " + Path.GetFileName(filePath);
- // using (var fileStream = File.OpenRead(filePath))
- //{
- // try
- // {
- // }
- // catch (OverflowException ex)
- // {
- // MessageBox.Show("Failed to open pck\n" +
- // $"Try {(LittleEndianCheckBox.Checked ? "unchecking" : "checking")} the 'Open/Save as Vita/PS4 pck' check box in the upper right corner.",
- // "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
- // Debug.WriteLine(ex.Message);
- // }
- // catch (Exception ex)
- // {
- // MessageBox.Show("Failed to open pck\n" +
- // "If this is an Audio/Music Cues pck, please use the specialized editor while inside of the parent pck.",
- // "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
- // Debug.WriteLine("Can't open pck file of type: " + pck?.type.ToString());
- // }
- //}
- return pck;
+ var reader = new PckFileReader(LittleEndianCheckBox.Checked ? OMI.Endianness.LittleEndian : OMI.Endianness.BigEndian);
+ try
+ {
+ PckFile pck = reader.FromFile(filePath);
+ return pck;
+ }
+ catch (OverflowException ex)
+ {
+ MessageBox.Show("Failed to open pck\n" +
+ $"Try {(LittleEndianCheckBox.Checked ? "unchecking" : "checking")} the 'Open/Save as Vita/PS4 pck' check box in the upper right corner.",
+ "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ Debug.WriteLine(ex.Message);
+ }
+ catch
+ {
+ MessageBox.Show("Failed to open pck\n" +
+ "If this is an Audio/Music Cues pck, please use the specialized editor while inside of the parent pck.",
+ "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ return null;
}
private void CheckForPasswordAndRemove()
@@ -202,7 +185,11 @@ namespace PckStudio
private void LoadEditorTab()
{
fileEntryCountLabel.Text = "Files:" + currentPCK.Files.Count;
- treeViewMain.Enabled = treeMeta.Enabled = true;
+ if (isTemplateFile)
+ pckFileLabel.Text = "Unsaved File!";
+ else
+ pckFileLabel.Text = "Current PCK File: " + Path.GetFileName(saveLocation);
+ treeViewMain.Enabled = treeMeta.Enabled = true;
closeToolStripMenuItem.Visible = true;
saveToolStripMenuItem.Enabled = true;
saveToolStripMenuItem1.Enabled = true;
@@ -237,7 +224,8 @@ namespace PckStudio
convertToBedrockToolStripMenuItem.Enabled = false;
addCustomPackImageToolStripMenuItem.Enabled = false;
fileEntryCountLabel.Text = string.Empty;
- UpdateRPC();
+ pckFileLabel.Text = string.Empty;
+ UpdateRPC();
}
@@ -386,7 +374,7 @@ namespace PckStudio
{
if (currentPCK == null)
{
- RPC.SetPresence("An Open Source .PCK File Editor", "Program by PhoenixARC");
+ RPC.SetPresence("An Open Source .PCK File Editor");
return;
};
@@ -394,11 +382,11 @@ namespace PckStudio
locfile.HasLocEntry("IDS_DISPLAY_NAME") &&
locfile.Languages.Contains("en-EN"))
{
- RPC.SetPresence($"Editing a Pack: {locfile.GetLocEntry("IDS_DISPLAY_NAME", "en-EN")}", "Program by PhoenixARC");
+ RPC.SetPresence($"Editing a Pack: {locfile.GetLocEntry("IDS_DISPLAY_NAME", "en-EN")}");
return;
}
// default
- RPC.SetPresence("An Open Source .PCK File Editor", "Program by PhoenixARC");
+ RPC.SetPresence("An Open Source .PCK File Editor");
}
private void HandleAudioFile(PckFile.FileData file)
@@ -436,7 +424,7 @@ namespace PckStudio
{
if (file.Properties.HasProperty("BOX"))
{
- using (generateModel generate = new generateModel(file.Properties, new PictureBox()))
+ using (generateModel generate = new generateModel(file.Properties, Image.FromStream(new MemoryStream(file.Data))))
if (generate.ShowDialog() == DialogResult.OK)
{
entryDataTextBox.Text = entryTypeTextBox.Text = string.Empty;
@@ -449,7 +437,7 @@ namespace PckStudio
using (var ms = new MemoryStream(file.Data))
{
var texture = Image.FromStream(ms);
- SkinPreview frm = new SkinPreview(texture, file.Properties.GetPropertyValue("ANIM", s => new SkinANIM(s)));
+ SkinPreview frm = new SkinPreview(texture, file.Properties.GetPropertyValue("ANIM", SkinANIM.FromString));
frm.ShowDialog(this);
frm.Dispose();
}
@@ -487,7 +475,7 @@ namespace PckStudio
buttonEdit.Visible = true;
}
else if (file.Properties.HasProperty("ANIM") &&
- file.Properties.GetPropertyValue("ANIM", s => new SkinANIM(s)) == (ANIM_EFFECTS.RESOLUTION_64x64 | ANIM_EFFECTS.SLIM_MODEL))
+ file.Properties.GetPropertyValue("ANIM", s => SkinANIM.FromString(s) == (ANIM_EFFECTS.RESOLUTION_64x64 | ANIM_EFFECTS.SLIM_MODEL)))
{
buttonEdit.Text = "View Skin";
buttonEdit.Visible = true;
@@ -838,16 +826,19 @@ namespace PckStudio
private PckFile.FileData CreateNewAudioFile(bool isLittle)
{
// create actual valid pck file structure
- PCKAudioFile audioPck = new PCKAudioFile();
- audioPck.AddCategory(PCKAudioFile.AudioCategory.EAudioType.Overworld);
- audioPck.AddCategory(PCKAudioFile.AudioCategory.EAudioType.Nether);
- audioPck.AddCategory(PCKAudioFile.AudioCategory.EAudioType.End);
- PckFile.FileData pckFileData = currentPCK.CreateNew("audio.pck", PckFile.FileData.FileType.AudioFile);
- using (var stream = new MemoryStream())
- {
- PCKAudioFileWriter.Write(stream, audioPck, isLittle);
- pckFileData.SetData(stream.ToArray());
- }
+ PckAudioFile audioPck = new PckAudioFile();
+ audioPck.AddCategory(PckAudioFile.AudioCategory.EAudioType.Overworld);
+ audioPck.AddCategory(PckAudioFile.AudioCategory.EAudioType.Nether);
+ audioPck.AddCategory(PckAudioFile.AudioCategory.EAudioType.End);
+ PckFile.FileData pckFileData = currentPCK.CreateNewFile("audio.pck", PckFile.FileData.FileType.AudioFile, () =>
+ {
+ using (var stream = new MemoryStream())
+ {
+ var writer = new PckAudioFileWriter(audioPck, isLittle ? OMI.Endianness.LittleEndian : OMI.Endianness.BigEndian);
+ writer.WriteToStream(stream);
+ return stream.ToArray();
+ }
+ });
return pckFileData;
}
@@ -870,28 +861,37 @@ namespace PckStudio
private void createAnimatedTextureToolStripMenuItem_Click(object sender, EventArgs e)
{
- using (var ofd = new OpenFileDialog())
+ using var ofd = new OpenFileDialog()
{
- ofd.Filter = "PNG Files | *.png";
- ofd.Title = "Select a PNG File";
- if (ofd.ShowDialog() == DialogResult.OK)
+ Filter = "PNG Files | *.png",
+ Title = "Select a PNG File",
+ };
+ if (ofd.ShowDialog() != DialogResult.OK)
+ return;
+
+ using ChangeTile diag = new ChangeTile();
+ if (diag.ShowDialog(this) != DialogResult.OK)
+ return;
+
+ using Image img = new Bitmap(ofd.FileName);
+ var file = currentPCK.CreateNewFile(
+ $"res/textures/{AnimationResources.GetAnimationSection(diag.IsItem)}/{diag.SelectedTile}.png",
+ PckFile.FileData.FileType.TextureFile,
+ () =>
{
- using ChangeTile diag = new ChangeTile();
- if (diag.ShowDialog(this) == DialogResult.OK)
- {
- using Image img = new Bitmap(ofd.FileName);
- var file = AnimationUtil.CreateNewAnimationFile(img, diag.SelectedTile, diag.IsItem);
- using AnimationEditor animationEditor = new AnimationEditor(file);
- if (animationEditor.ShowDialog() == DialogResult.OK)
- {
- file.Filename = animationEditor.TileName;
- currentPCK.Files.Add(file);
- ReloadMetaTreeView();
- BuildMainTreeView();
- wasModified = true;
- }
- }
- }
+ using var stream = new MemoryStream();
+ img.Save(stream, ImageFormat.Png);
+ return stream.ToArray();
+ });
+ file.Properties.Add(("ANIM", string.Empty));
+
+ using AnimationEditor animationEditor = new AnimationEditor(file);
+ if (animationEditor.ShowDialog() == DialogResult.OK)
+ {
+ file.Filename = animationEditor.TileName;
+ ReloadMetaTreeView();
+ BuildMainTreeView();
+ wasModified = true;
}
}
@@ -950,21 +950,21 @@ namespace PckStudio
if (parent_file.Filetype is PckFile.FileData.FileType.TexturePackInfoFile || parent_file.Filetype is PckFile.FileData.FileType.SkinDataFile)
{
Console.WriteLine("Rebuilding " + parent_file.Filename);
- PckFile newPCKFile = new PckFile(3);
+ PckFile newPCKFile = new PckFile(3)
+ {
+ HasVerionString = parent_file.Filetype is PckFile.FileData.FileType.SkinDataFile
+ };
foreach (TreeNode node in GetAllChildNodes(parent.Nodes))
{
if (node.Tag is PckFile.FileData node_file)
{
- PckFile.FileData new_file = newPCKFile.CreateNew(node_file.Filename, node_file.Filetype);
+ PckFile.FileData new_file = newPCKFile.CreateNewFile(node_file.Filename.Replace(parent_file.Filename + "/", String.Empty), node_file.Filetype);
foreach (var prop in node_file.Properties) new_file.Properties.Add(prop);
new_file.SetData(node_file.Data);
}
}
- // Bool to add the XMLVersion property
- bool isSkinsPCK = parent_file.Filetype is PckFile.FileData.FileType.SkinDataFile;
-
using (MemoryStream ms = new MemoryStream())
{
var writer = new PckFileWriter(newPCKFile, LittleEndianCheckBox.Checked ? OMI.Endianness.LittleEndian : OMI.Endianness.BigEndian);
@@ -1008,9 +1008,9 @@ namespace PckStudio
try
{
using ANIMEditor diag = new ANIMEditor(property.Item2);
- if (diag.ShowDialog(this) == DialogResult.OK && diag.saved)
+ if (diag.ShowDialog(this) == DialogResult.OK)
{
- file.Properties[i] = ("ANIM", diag.outANIM);
+ file.Properties[i] = ("ANIM", diag.ResultAnim.ToString());
if (IsSubPCKNode(treeViewMain.SelectedNode.FullPath))
RebuildSubPCK(treeViewMain.SelectedNode);
ReloadMetaTreeView();
@@ -1021,7 +1021,7 @@ namespace PckStudio
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
- MessageBox.Show("Failed to parse ANIM value, aborting to normal functionality. Please make sure the value only includes hexadecimal characters (0-9,A-F) and has no more than 8 characters. It can have an optional prefix of \"0x\".");
+ MessageBox.Show("Failed to parse ANIM value, aborting to normal functionality. Please make sure the value only includes hexadecimal characters (0-9,A-F) and has no more than 8 characters.");
}
break;
@@ -1073,21 +1073,19 @@ namespace PckStudio
// Creates new empty file entry
PckFile.FileData mf = new PckFile.FileData(string.Empty, mfO.Filetype);
- mf.SetData(mfO.Data); // adds file data to minefile
+ mf.SetData(mfO.Data);
string dirName = Path.GetDirectoryName(mfO.Filename);
int clone_number = 0;
- string prev_clone_str = "_clone1";
string nameWithoutExt = Path.GetFileNameWithoutExtension(mfO.Filename);
string newFileName = mfO.Filename;
- do // Checks for existing clones and names it accordingly
+ do
{
clone_number++;
string clone_str = "_clone" + clone_number.ToString();
bool isClone = nameWithoutExt.Contains("_clone");
if (isClone) newFileName = nameWithoutExt.Remove(nameWithoutExt.Length - 7) + clone_str + Path.GetExtension(mfO.Filename);
else newFileName = nameWithoutExt + clone_str + Path.GetExtension(mfO.Filename);
- prev_clone_str = clone_str;
}
while (currentPCK.HasFile(dirName + (string.IsNullOrEmpty(dirName) ? "" : "/") + newFileName, mf.Filetype));
@@ -1208,23 +1206,26 @@ namespace PckStudio
private PckFile InitializePack(int packId, int packVersion, string packName, bool createSkinsPCK)
{
var newPck = new PckFile(3);
- var zeroFile = newPck.CreateNew("0", PckFile.FileData.FileType.InfoFile);
+
+ var zeroFile = newPck.CreateNewFile("0", PckFile.FileData.FileType.InfoFile);
zeroFile.Properties.Add(("PACKID", packId.ToString()));
zeroFile.Properties.Add(("PACKVERSION", packVersion.ToString()));
- var loc = newPck.CreateNew("localisation.loc", PckFile.FileData.FileType.LocalisationFile);
- var locFile = new LOCFile();
- locFile.InitializeDefault(packName);
- using (var stream = new MemoryStream())
+
+ var loc = newPck.CreateNewFile("localisation.loc", PckFile.FileData.FileType.LocalisationFile, () =>
{
- LOCFileWriter.Write(stream, locFile);
- loc.SetData(stream.ToArray());
- }
+ var locFile = new LOCFile();
+ locFile.InitializeDefault(packName);
+ using var stream = new MemoryStream();
+ var writer = new LOCFileWriter(locFile, 2);
+ writer.WriteToStream(stream);
+ return stream.ToArray();
+ });
if (createSkinsPCK)
{
- PckFile.FileData skinsPCKFile = newPck.CreateNew("Skins.pck", PckFile.FileData.FileType.SkinDataFile);
- using (var stream = new MemoryStream())
- {
+ PckFile.FileData skinsPCKFile = newPck.CreateNewFile("Skins.pck", PckFile.FileData.FileType.SkinDataFile, () =>
+ {
+ using var stream = new MemoryStream();
var writer = new PckFileWriter(new PckFile(3)
{
HasVerionString = true
@@ -1233,8 +1234,8 @@ namespace PckStudio
? OMI.Endianness.LittleEndian
: OMI.Endianness.BigEndian);
writer.WriteToStream(stream);
- skinsPCKFile.SetData(stream.ToArray());
- }
+ return stream.ToArray();
+ });
}
return newPck;
}
@@ -1242,7 +1243,17 @@ namespace PckStudio
private PckFile InitializeTexturePack(int packId, int packVersion, string packName, string res, bool createSkinsPCK = false)
{
var newPck = InitializePack(packId, packVersion, packName, createSkinsPCK);
- var texturepackInfo = newPck.CreateNew($"{res}/{res}Info.pck", PckFile.FileData.FileType.TexturePackInfoFile);
+ var texturepackInfo = newPck.CreateNewFile($"{res}/{res}Info.pck", PckFile.FileData.FileType.TexturePackInfoFile,
+ () =>
+ {
+ using var ms = new MemoryStream();
+ var writer = new PckFileWriter(new PckFile(3),
+ LittleEndianCheckBox.Checked
+ ? OMI.Endianness.LittleEndian
+ : OMI.Endianness.BigEndian);
+ writer.WriteToStream(ms);
+ return ms.ToArray();
+ });
texturepackInfo.Properties.Add(("PACKID", "0"));
texturepackInfo.Properties.Add(("DATAPATH", $"{res}Data.pck"));
@@ -1250,34 +1261,25 @@ namespace PckStudio
using (var ms = new MemoryStream())
{
- var icon = infoPCK.CreateNew("icon.png", PckFile.FileData.FileType.TextureFile);
+ var icon = infoPCK.CreateNewFile("icon.png", PckFile.FileData.FileType.TextureFile);
Resources.TexturePackIcon.Save(ms, ImageFormat.Png);
icon.SetData(ms.ToArray());
}
using (var ms = new MemoryStream())
{
- var comparison = infoPCK.CreateNew("comparison.png", PckFile.FileData.FileType.TextureFile);
+ var comparison = infoPCK.CreateNewFile("comparison.png", PckFile.FileData.FileType.TextureFile);
Resources.Comparison.Save(ms, ImageFormat.Png);
comparison.SetData(ms.ToArray());
}
- using (var ms = new MemoryStream())
- {
- var writer = new PckFileWriter(new PckFile(3),
- LittleEndianCheckBox.Checked
- ? OMI.Endianness.LittleEndian
- : OMI.Endianness.BigEndian);
- writer.WriteToStream(ms);
- texturepackInfo.SetData(ms.ToArray());
- }
return newPck;
}
private PckFile InitializeMashUpPack(int packId, int packVersion, string packName, string res)
{
var newPck = InitializeTexturePack(packId, packVersion, packName, res, true);
- var gameRuleFile = newPck.CreateNew("GameRules.grf", PckFile.FileData.FileType.GameRulesFile);
+ var gameRuleFile = newPck.CreateNewFile("GameRules.grf", PckFile.FileData.FileType.GameRulesFile);
var grfFile = new GameRuleFile();
grfFile.AddRule("MapOptions",
new KeyValuePair("seed", "0"),
@@ -1319,10 +1321,10 @@ namespace PckStudio
private void texturePackToolStripMenuItem_Click(object sender, EventArgs e)
{
checkSaveState();
- CreateTexturePack packPrompt = new CreateTexturePack("");
+ CreateTexturePack packPrompt = new CreateTexturePack();
if (packPrompt.ShowDialog() == DialogResult.OK)
{
- currentPCK = InitializeTexturePack(new Random().Next(8000, int.MaxValue), 0, packPrompt.packName, packPrompt.packRes);
+ currentPCK = InitializeTexturePack(new Random().Next(8000, int.MaxValue), 0, packPrompt.PackName, packPrompt.PackRes);
isTemplateFile = true;
wasModified = true;
LoadEditorTab();
@@ -1332,10 +1334,10 @@ namespace PckStudio
private void mashUpPackToolStripMenuItem_Click(object sender, EventArgs e)
{
checkSaveState();
- CreateTexturePack packPrompt = new CreateTexturePack("");
+ CreateTexturePack packPrompt = new CreateTexturePack();
if (packPrompt.ShowDialog() == DialogResult.OK)
{
- currentPCK = InitializeMashUpPack(new Random().Next(8000, int.MaxValue), 0, packPrompt.packName, packPrompt.packRes);
+ currentPCK = InitializeMashUpPack(new Random().Next(8000, int.MaxValue), 0, packPrompt.PackName, packPrompt.PackRes);
isTemplateFile = true;
wasModified = false;
LoadEditorTab();
@@ -1581,7 +1583,8 @@ namespace PckStudio
{
using (var stream = new MemoryStream())
{
- LOCFileWriter.Write(stream, locFile);
+ var writer = new LOCFileWriter(locFile, 2);
+ writer.WriteToStream(stream);
locdata.SetData(stream.ToArray());
}
return true;
@@ -1605,7 +1608,7 @@ namespace PckStudio
{
string skinNameImport = Path.GetFileName(contents.FileName);
byte[] data = File.ReadAllBytes(contents.FileName);
- PckFile.FileData mfNew = currentPCK.CreateNew(skinNameImport, PckFile.FileData.FileType.SkinFile);
+ PckFile.FileData mfNew = currentPCK.CreateNewFile(skinNameImport, PckFile.FileData.FileType.SkinFile);
mfNew.SetData(data);
string propertyFile = Path.GetFileNameWithoutExtension(contents.FileName) + ".txt";
if (File.Exists(propertyFile))
@@ -1691,31 +1694,6 @@ namespace PckStudio
MessageBox.Show("This feature is currently being reworked.", "Currently unavailable", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
- public static Bitmap ResizeImage(Image image, int width, int height)
- {
- var destRect = new Rectangle(0, 0, width, height);
- var destImage = new Bitmap(width, height);
-
- destImage.SetResolution(image.HorizontalResolution, image.VerticalResolution);
-
- using (var graphics = Graphics.FromImage(destImage))
- {
- graphics.CompositingMode = CompositingMode.SourceCopy;
- graphics.CompositingQuality = CompositingQuality.HighQuality;
- graphics.InterpolationMode = InterpolationMode.NearestNeighbor;
- graphics.SmoothingMode = SmoothingMode.HighQuality;
- graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
-
- using (var wrapMode = new ImageAttributes())
- {
- wrapMode.SetWrapMode(WrapMode.TileFlipXY);
- graphics.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, wrapMode);
- }
- }
-
- return destImage;
- }
-
private void openToolStripMenuItem1_Click(object sender, EventArgs e)
{
DateTime Begin = DateTime.Now;
@@ -1983,7 +1961,7 @@ namespace PckStudio
renamePrompt.TextLabel.Text = "Path";
if (renamePrompt.ShowDialog() == DialogResult.OK && !string.IsNullOrEmpty(renamePrompt.NewText))
{
- var file = currentPCK.CreateNew(renamePrompt.NewText, PckFile.FileData.FileType.TextureFile);
+ var file = currentPCK.CreateNewFile(renamePrompt.NewText, PckFile.FileData.FileType.TextureFile);
file.SetData(File.ReadAllBytes(fileDialog.FileName));
BuildMainTreeView();
wasModified = true;
@@ -2056,14 +2034,13 @@ namespace PckStudio
private void colourscolToolStripMenuItem_Click(object sender, EventArgs e)
{
- PckFile.FileData NewColorFile;
- if (currentPCK.TryGetFile("colours.col", PckFile.FileData.FileType.ColourTableFile, out NewColorFile))
+ if (currentPCK.TryGetFile("colours.col", PckFile.FileData.FileType.ColourTableFile, out _))
{
MessageBox.Show("A color table file already exists in this PCK and a new one cannot be created.", "Operation aborted");
return;
}
- NewColorFile = currentPCK.CreateNew("colours.col", PckFile.FileData.FileType.ColourTableFile);
- NewColorFile.SetData(Resources.tu69colours);
+ var newColorFile = currentPCK.CreateNewFile("colours.col", PckFile.FileData.FileType.ColourTableFile);
+ newColorFile.SetData(Resources.tu69colours);
BuildMainTreeView();
}
@@ -2083,11 +2060,11 @@ namespace PckStudio
saveFileDialog.DefaultExt = ".3dst";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
- using (var fs = saveFileDialog.OpenFile())
+ using (var ms = new MemoryStream(file.Data))
{
- using var ms = new MemoryStream(file.Data);
Image img = Image.FromStream(ms);
- _3DSUtil.SetImageTo3DST(fs, img);
+ var writer = new _3DSTextureWriter(img);
+ writer.WriteToFile(saveFileDialog.FileName);
}
}
}
@@ -2169,19 +2146,14 @@ namespace PckStudio
return;
}
- PckFile.FileData newSkinsPCKFile = currentPCK.CreateNew("Skins.pck", PckFile.FileData.FileType.SkinDataFile);
- using (var stream = new MemoryStream())
+ currentPCK.CreateNewFile("Skins.pck", PckFile.FileData.FileType.SkinDataFile, () =>
{
- var writer = new PckFileWriter(new PckFile(3)
- {
- HasVerionString = true
- },
- LittleEndianCheckBox.Checked
- ? OMI.Endianness.LittleEndian
- : OMI.Endianness.BigEndian);
- writer.WriteToStream(stream);
- newSkinsPCKFile.SetData(stream.ToArray());
- }
+ using var stream = new MemoryStream();
+ var writer = new PckFileWriter(new PckFile(3) { HasVerionString = true },
+ LittleEndianCheckBox.Checked ? OMI.Endianness.LittleEndian : OMI.Endianness.BigEndian);
+ writer.WriteToStream(stream);
+ return stream.ToArray();
+ });
BuildMainTreeView();
@@ -2208,7 +2180,7 @@ namespace PckStudio
int idx = line.IndexOf(' ');
if (idx == -1 || line.Length - 1 == idx)
continue;
- file.Properties.Add((line.Substring(0, idx), line.Substring(idx + 1)));
+ file.Properties.Add((line.Substring(0, idx).Replace(":", string.Empty), line.Substring(idx + 1)));
}
ReloadMetaTreeView();
if (IsSubPCKNode(node.FullPath)) RebuildSubPCK(node);
@@ -2230,7 +2202,7 @@ namespace PckStudio
using AddFilePrompt diag = new AddFilePrompt("res/" + Path.GetFileName(ofd.FileName));
if (diag.ShowDialog(this) == DialogResult.OK)
{
- PckFile.FileData file = currentPCK.CreateNew(diag.filepath, (PckFile.FileData.FileType)diag.filetype);
+ PckFile.FileData file = currentPCK.CreateNewFile(diag.Filepath, (PckFile.FileData.FileType)diag.Filetype);
file.SetData(File.ReadAllBytes(ofd.FileName));
if (IsSubPCKNode(treeViewMain.SelectedNode.FullPath)) RebuildSubPCK(treeViewMain.SelectedNode);
@@ -2245,32 +2217,34 @@ namespace PckStudio
private void behavioursbinToolStripMenuItem_Click(object sender, EventArgs e)
{
- PckFile.FileData NewBehaviourFile;
- if (currentPCK.TryGetFile("behaviours.bin", PckFile.FileData.FileType.BehavioursFile, out NewBehaviourFile))
+ if (currentPCK.TryGetFile("behaviours.bin", PckFile.FileData.FileType.BehavioursFile, out _))
{
MessageBox.Show("A behaviours file already exists in this PCK and a new one cannot be created.", "Operation aborted");
return;
}
- NewBehaviourFile = BehaviourUtil.CreateNewBehaviourFile();
- currentPCK.Files.Add(NewBehaviourFile);
+
+ currentPCK.CreateNewFile("behaviours.bin", PckFile.FileData.FileType.BehavioursFile, BehaviourResources.BehaviourFileInitializer);
BuildMainTreeView();
}
private void entityMaterialsbinToolStripMenuItem_Click(object sender, EventArgs e)
{
- PckFile.FileData NewMaterialsFile;
- if (currentPCK.TryGetFile("entityMaterials.bin", PckFile.FileData.FileType.MaterialFile, out NewMaterialsFile))
+ if (currentPCK.TryGetFile("entityMaterials.bin", PckFile.FileData.FileType.MaterialFile, out _))
{
MessageBox.Show("A behaviours file already exists in this PCK and a new one cannot be created.", "Operation aborted");
return;
}
- NewMaterialsFile = MaterialUtil.CreateNewMaterialsFile();
- currentPCK.Files.Add(NewMaterialsFile);
+ currentPCK.CreateNewFile("entityMaterials.bin", PckFile.FileData.FileType.MaterialFile, MaterialResources.MaterialsFileInitializer);
BuildMainTreeView();
}
- }
- public class PckNodeSorter : System.Collections.IComparer, IComparer
+ private void trelloBoardToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ Process.Start("https://trello.com/b/0XLNOEbe/pck-studio");
+ }
+ }
+
+ public class PckNodeSorter : System.Collections.IComparer, IComparer
{
private bool CheckForSkinAndCapeFiles(TreeNode node)
{
diff --git a/PCK-Studio/MainForm.resx b/PCK-Studio/MainForm.resx
index 1cb663dc..87f4f54a 100644
--- a/PCK-Studio/MainForm.resx
+++ b/PCK-Studio/MainForm.resx
@@ -28483,6 +28483,12 @@
Join Development Discord
+
+ 212, 22
+
+
+ Trello Board
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
@@ -30419,28 +30425,25 @@
None
-
- 9, 28
+
+ 3, 17
-
- 326, 19
+
+ 332, 23
-
- 0
+
+ 2
-
+
pckFileLabel
-
- metroLabel3
-
-
+
MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
-
+
editorTab
-
+
2
@@ -33966,6 +33969,12 @@
System.Windows.Forms.ImageList, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ trelloBoardToolStripMenuItem
+
+
+ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
MainForm
diff --git a/PCK-Studio/PckStudio.csproj b/PCK-Studio/PckStudio.csproj
index 9a7e311c..08272693 100644
--- a/PCK-Studio/PckStudio.csproj
+++ b/PCK-Studio/PckStudio.csproj
@@ -170,24 +170,28 @@
+
+
+
+
-
+
-
+
+
-
-
+
+
+
-
+
-
+
-
-
@@ -265,6 +269,8 @@
ModelsEditor.cs
+
+
Form
@@ -349,20 +355,20 @@
pleaseWait.cs
-
-
-
-
-
+
+
+
+
+
Form
-
+
BoxEditor.cs
-
+
Form
-
+
ANIMEditor.cs
@@ -419,7 +425,7 @@
installWiiU.cs
-
+
Form
@@ -467,7 +473,7 @@
CreditsForm.cs
-
+
AddEntry.cs
@@ -556,10 +562,10 @@
pleaseWait.cs
-
+
BoxEditor.cs
-
+
ANIMEditor.cs
@@ -660,9 +666,7 @@
-
-
-
+
@@ -768,6 +772,10 @@
{693AEBC1-293D-4DF0-BCAE-26A1099FE7BB}
OMI Filetype Library
+
+ {e8d0b671-3ab1-48b6-a767-58df67bd5d11}
+ SharpMss32
+