diff --git a/PCK-Studio/Classes/FileTypes/Binka.cs b/PCK-Studio/Classes/FileTypes/Binka.cs
index 26776e15..a5c25ae3 100644
--- a/PCK-Studio/Classes/FileTypes/Binka.cs
+++ b/PCK-Studio/Classes/FileTypes/Binka.cs
@@ -2,22 +2,18 @@
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 static FileCacher cacher = new FileCacher(Program.AppDataCache);
-
public static int FromWav(string inputFilepath, string outputFilepath, int compressionLevel)
{
- cacher.Cache(Properties.Resources.binka_encode, "binka_encode.exe");
+ ApplicationScope.AppDataCacher.Cache(Properties.Resources.binka_encode, "binka_encode.exe");
var process = Process.Start(new ProcessStartInfo
{
- FileName = cacher.GetCachedFilepath("binka_encode.exe"),
+ FileName = ApplicationScope.AppDataCacher.GetCachedFilepath("binka_encode.exe"),
Arguments = $"\"{inputFilepath}\" \"{outputFilepath}\" -s -b{compressionLevel}",
UseShellExecute = true,
CreateNoWindow = true,
@@ -34,16 +30,16 @@ namespace PckStudio.Classes
throw new Exception("Not a Bink Audio file.");
}
- cacher.Cache(Properties.Resources.mss32, "mss32.dll");
- cacher.Cache(Properties.Resources.binkawin, "binkawin.asi");
+ ApplicationScope.AppDataCacher.Cache(Properties.Resources.mss32, "mss32.dll");
+ ApplicationScope.AppDataCacher.Cache(Properties.Resources.binkawin, "binkawin.asi");
- LibHandle mss32LibHandle = new LibHandle(cacher.GetCachedFilepath("mss32.dll"));
+ LibHandle mss32LibHandle = new LibHandle(ApplicationScope.AppDataCacher.GetCachedFilepath("mss32.dll"));
string destinationFilepath = Path.Combine(
Path.GetDirectoryName(outputFilepath),
Path.GetFileNameWithoutExtension(inputFilepath) + ".wav");
- AILAPI.SetRedistDirectory(cacher.CacheDirectory.Replace('\\', '/'));
+ AILAPI.SetRedistDirectory(ApplicationScope.AppDataCacher.CacheDirectory.Replace('\\', '/'));
RIBAPI.LoadApplicationProviders("*.asi");
diff --git a/PCK-Studio/Classes/Misc/FTPClient.cs b/PCK-Studio/Classes/Misc/FTPClient.cs
index 61af36ad..9752d65d 100644
--- a/PCK-Studio/Classes/Misc/FTPClient.cs
+++ b/PCK-Studio/Classes/Misc/FTPClient.cs
@@ -1,5 +1,7 @@
using System;
+using System.Collections.Generic;
using System.IO;
+using System.Linq;
using System.Net;
using System.Text;
using System.Xml.Linq;
@@ -8,40 +10,36 @@ namespace PckStudio.Classes.Misc
{
public class FTPClient : IDisposable
{
- private const int bufferSize = 2048;
+ private Uri _host;
+ private ICredentials _credentials;
- private Uri hostUri;
- private NetworkCredential credentials;
-
- private FtpWebRequest request = null;
- private FtpWebResponse response = null;
- private Stream _stream = null;
+ private FtpWebRequest _request = null;
+ private FtpWebResponse _response = null;
+ private int _timeout = 1_000; // 1 sec
public FTPClient(string host, string username)
- : this(new Uri(host), username, string.Empty)
- {
- }
+ : this(new Uri(host), username, string.Empty) { }
- public FTPClient(Uri uri, string username)
- : this(uri, username, string.Empty)
- {
- }
+ public FTPClient(Uri host, string username)
+ : this(host, username, string.Empty) { }
public FTPClient(string host, string username, string password)
- : this(new Uri(host), username, password)
- {
- }
+ : this(new Uri(host), username, password) { }
public FTPClient(Uri uri, string username, string password)
- {
- hostUri = uri;
- credentials = new NetworkCredential(username, password);
+ : this(uri, new NetworkCredential(username, password)) { }
- if (hostUri.Scheme != Uri.UriSchemeFtp)
+ public FTPClient(string host, ICredentials credentials)
+ : this(new Uri(host), credentials) { }
+
+ public FTPClient(Uri host, ICredentials credentials)
+ {
+ if (host.Scheme != Uri.UriSchemeFtp)
{
throw new InvalidOperationException("Not a valid FTP Scheme");
}
-
+ this._host = host;
+ _credentials = credentials;
}
///
@@ -51,7 +49,7 @@ namespace PckStudio.Classes.Misc
///
/// See
///
- public static FtpWebRequest CreateFTPWebRequest(Uri uri, ICredentials credentials, string method)
+ public static FtpWebRequest CreateRequest(Uri uri, ICredentials credentials, string method)
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(uri);
request.Credentials = credentials;
@@ -59,44 +57,31 @@ namespace PckStudio.Classes.Misc
return request;
}
- // TODO: let it accept a destination Stream ?
public void DownloadFile(string remoteFilepath, string localFilepath)
+ {
+ using (var fs = File.OpenWrite(localFilepath))
+ {
+ DownloadFile(remoteFilepath, fs);
+ }
+ }
+
+ public void DownloadFile(string remoteFilepath, Stream destination)
{
try
{
- request = CreateFTPWebRequest(new Uri(hostUri, remoteFilepath), credentials, WebRequestMethods.Ftp.DownloadFile);
- //request = (FtpWebRequest)WebRequest.Create(host + "/" + remoteFile);
- //request.Credentials = credentials;
- //request.Method = WebRequestMethods.Ftp.DownloadFile;
-
- request.UseBinary = true;
- request.UsePassive = true;
- request.KeepAlive = true;
+ _request = CreateRequest(new Uri(_host, remoteFilepath), _credentials, WebRequestMethods.Ftp.DownloadFile);
+ SetRequestTimeout();
- response = (FtpWebResponse)request.GetResponse();
- _stream = response.GetResponseStream();
- byte[] buffer = new byte[Convert.ToInt32(GetFileSize(remoteFilepath))];
- int num = _stream.Read(buffer, 0, Convert.ToInt32(GetFileSize(remoteFilepath)));
+ _response = (FtpWebResponse)_request.GetResponse();
+ Stream responseStream = _response.GetResponseStream();
- using (FileStream fileStream = new FileStream(localFilepath, FileMode.OpenOrCreate))
- {
- try
- {
- while (num > 0)
- {
- fileStream.Write(buffer, 0, num);
- num = _stream.Read(buffer, 0, Convert.ToInt32(GetFileSize(remoteFilepath)));
- }
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.ToString());
- }
- }
+ long destinationOrigin = destination.Position;
+ responseStream.CopyTo(destination);
+ destination.Position = destinationOrigin;
- _stream.Close();
- response.Close();
- request = null;
+ responseStream.Close();
+ _response.Close();
+ _request = null;
}
catch (Exception ex)
{
@@ -108,85 +93,59 @@ namespace PckStudio.Classes.Misc
{
try
{
- request = CreateFTPWebRequest(new Uri(hostUri, directory), credentials, WebRequestMethods.Ftp.ListDirectory);
- //request = (FtpWebRequest)WebRequest.Create(host + "/" + directory);
- //request.Credentials = credentials;
- //request.Method = WebRequestMethods.Ftp.ListDirectory;
+ _request = CreateRequest(new Uri(_host, directory), _credentials, WebRequestMethods.Ftp.ListDirectory);
- request.UseBinary = true;
- request.UsePassive = true;
- request.KeepAlive = true;
+ SetRequestTimeout();
- response = (FtpWebResponse)request.GetResponse();
- _stream = response.GetResponseStream();
- StreamReader streamReader = new StreamReader(_stream);
- string text = string.Empty;
- try
+ _response = (FtpWebResponse)_request.GetResponse();
+
+ Stream responseStream = _response.GetResponseStream();
+ StreamReader streamReader = new StreamReader(responseStream);
+
+ IList text = new List();
+
+ while (streamReader.Peek() != -1)
{
- while (streamReader.Peek() != -1)
- {
- text += streamReader.ReadLine() + "|";
- }
+ text.Add(streamReader.ReadLine());
}
- catch (Exception ex)
- {
- Console.WriteLine(ex.ToString());
- }
-
streamReader.Close();
- _stream.Close();
- response.Close();
- request = null;
+ responseStream.Close();
- try
- {
- return text.Split("|".ToCharArray());
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
+ _response.Close();
+ _request = null;
+ return text.ToArray();
}
catch (Exception ex)
{
- Console.WriteLine(ex.Message);
+ Console.WriteLine(ex.ToString());
}
return Array.Empty();
}
public void UploadFile(string localFile, string remoteFile)
+ {
+ using (var fs = File.OpenRead(localFile))
+ {
+ UploadFile(fs, remoteFile);
+ }
+ }
+
+ public void UploadFile(Stream source, string remoteFile)
{
try
{
- request = CreateFTPWebRequest(new Uri(hostUri, remoteFile), credentials, WebRequestMethods.Ftp.UploadFile);
- //request = (FtpWebRequest)WebRequest.Create(host + "/" + remoteFile);
- //request.Credentials = credentials;
- //request.Method = WebRequestMethods.Ftp.UploadFile;
+ _request = CreateRequest(new Uri(_host, remoteFile), _credentials, WebRequestMethods.Ftp.UploadFile);
- request.UseBinary = true;
- request.UsePassive = true;
- request.KeepAlive = true;
-
- _stream = request.GetRequestStream();
- FileStream fileStream = new FileStream(localFile, FileMode.Open);
- byte[] buffer = new byte[fileStream.Length];
- int num = fileStream.Read(buffer, 0, (int)fileStream.Length);
- try
- {
- while (num != 0)
- {
- _stream.Write(buffer, 0, num);
- num = fileStream.Read(buffer, 0, (int)fileStream.Length);
- }
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.ToString());
- }
+ SetRequestTimeout();
- fileStream.Close();
- _stream.Close();
- request = null;
+ Stream requestStream = _request.GetRequestStream();
+ source.CopyTo(requestStream);
+ requestStream.Close();
+
+ _response = (FtpWebResponse)_request.GetResponse();
+ _response.Close();
+
+ _request = null;
}
catch (Exception ex)
{
@@ -198,19 +157,14 @@ namespace PckStudio.Classes.Misc
{
try
{
- request = CreateFTPWebRequest(new Uri(hostUri, filename), credentials, WebRequestMethods.Ftp.DeleteFile);
- //request = (FtpWebRequest)WebRequest.Create(host + "/" + filename);
- //request.Credentials = credentials;
- //request.Method = WebRequestMethods.Ftp.DeleteFile;
+ _request = CreateRequest(new Uri(_host, filename), _credentials, WebRequestMethods.Ftp.DeleteFile);
- request.UseBinary = true;
- request.UsePassive = true;
- request.KeepAlive = true;
+ SetRequestTimeout();
- response = (FtpWebResponse)request.GetResponse();
- response.Close();
+ _response = (FtpWebResponse)_request.GetResponse();
+ _response.Close();
- request = null;
+ _request = null;
}
catch (Exception ex)
{
@@ -222,19 +176,14 @@ namespace PckStudio.Classes.Misc
{
try
{
- request = CreateFTPWebRequest(new Uri(hostUri, name), credentials, WebRequestMethods.Ftp.Rename);
- //request = (FtpWebRequest)WebRequest.Create(host + "/" + name);
- //request.Credentials = credentials;
- //request.Method = WebRequestMethods.Ftp.Rename;
+ _request = CreateRequest(new Uri(_host, name), _credentials, WebRequestMethods.Ftp.Rename);
- request.UseBinary = true;
- request.UsePassive = true;
- request.KeepAlive = true;
-
- request.RenameTo = newName;
- response = (FtpWebResponse)request.GetResponse();
- response.Close();
- request = null;
+ SetRequestTimeout();
+
+ _request.RenameTo = newName;
+ _response = (FtpWebResponse)_request.GetResponse();
+ _response.Close();
+ _request = null;
}
catch (Exception ex)
{
@@ -246,27 +195,21 @@ namespace PckStudio.Classes.Misc
{
try
{
- request = CreateFTPWebRequest(new Uri(hostUri, serverFilepath), credentials, WebRequestMethods.Ftp.AppendFile);
- //request = (FtpWebRequest)WebRequest.Create(host + "/" + name);
- //request.Credentials = credentials;
- //request.Method = WebRequestMethods.Ftp.MakeDirectory;
+ _request = CreateRequest(new Uri(_host, serverFilepath), _credentials, WebRequestMethods.Ftp.AppendFile);
- request.UseBinary = true;
- request.UsePassive = true;
- request.KeepAlive = true;
+ SetRequestTimeout();
- request.ContentLength = data.Length;
+ _request.ContentLength = data.Length;
- // This example assumes the FTP site uses anonymous logon.
- Stream requestStream = request.GetRequestStream();
+ Stream requestStream = _request.GetRequestStream();
requestStream.Write(data, 0, data.Length);
requestStream.Close();
- FtpWebResponse response = (FtpWebResponse)request.GetResponse();
+ FtpWebResponse response = (FtpWebResponse)_request.GetResponse();
Console.WriteLine("Append status: {0}", response.StatusDescription);
response.Close();
- request = null;
+ _request = null;
}
catch (Exception ex)
{
@@ -278,19 +221,14 @@ namespace PckStudio.Classes.Misc
{
try
{
- request = CreateFTPWebRequest(new Uri(hostUri, name), credentials, WebRequestMethods.Ftp.MakeDirectory);
- //request = (FtpWebRequest)WebRequest.Create(host + "/" + name);
- //request.Credentials = credentials;
- //request.Method = WebRequestMethods.Ftp.MakeDirectory;
+ _request = CreateRequest(new Uri(_host, name), _credentials, WebRequestMethods.Ftp.MakeDirectory);
- request.UseBinary = true;
- request.UsePassive = true;
- request.KeepAlive = true;
+ SetRequestTimeout();
- response = (FtpWebResponse)request.GetResponse();
- response.Close();
+ _response = (FtpWebResponse)_request.GetResponse();
+ _response.Close();
- request = null;
+ _request = null;
}
catch (Exception ex)
{
@@ -300,26 +238,34 @@ namespace PckStudio.Classes.Misc
public long GetFileSize(string filepath)
{
- FtpWebRequest ftpWebRequest = CreateFTPWebRequest(new Uri(hostUri, filepath), credentials, WebRequestMethods.Ftp.GetFileSize);
- //FtpWebRequest ftpWebRequest = (FtpWebRequest)WebRequest.Create(host + "/" + fileName);
- //ftpWebRequest.Credentials = credentials;
- //ftpWebRequest.Method = WebRequestMethods.Ftp.GetFileSize;
+ _request = CreateRequest(new Uri(_host, filepath), _credentials, WebRequestMethods.Ftp.GetFileSize);
- ftpWebRequest.UseBinary = true;
+ SetRequestTimeout();
+
+ _response = (FtpWebResponse)_request.GetResponse();
+ long contentLength = _response.ContentLength;
+ _response.Close();
- FtpWebResponse response = (FtpWebResponse)ftpWebRequest.GetResponse();
- long contentLength = response.ContentLength;
- response.Close();
+ _request = null;
return contentLength;
}
+ public void SetTimeoutLimit(TimeSpan delay)
+ {
+ _timeout = (int)delay.TotalMilliseconds;
+ }
+
+ private void SetRequestTimeout()
+ {
+ if (_request != null)
+ _request.Timeout = _timeout;
+ }
+
public void Dispose()
{
- _stream.Dispose();
- response.Dispose();
- request = null;
- response = null;
- _stream = null;
+ _response?.Dispose();
+ _request = null;
+ _response = null;
}
}
}
\ No newline at end of file
diff --git a/PCK-Studio/Classes/Misc/OpenFolderDialog.cs b/PCK-Studio/Classes/Misc/OpenFolderDialog.cs
new file mode 100644
index 00000000..5af8c808
--- /dev/null
+++ b/PCK-Studio/Classes/Misc/OpenFolderDialog.cs
@@ -0,0 +1,211 @@
+/*
+ * Source by: Simon Mourier(https://stackoverflow.com/users/403671/simon-mourier)
+ */
+
+namespace PckStudio.Classes.Misc
+{
+ using System;
+ using System.Diagnostics;
+ using System.Runtime.InteropServices;
+ using System.Runtime.InteropServices.ComTypes;
+ using System.Windows; // for WPF support
+ using System.Windows.Interop; // for WPF support
+
+ public class OpenFolderDialog
+ {
+ public virtual string ResultPath { get; protected set; }
+ public virtual string ResultName { get; protected set; }
+ public virtual string InputPath { get; set; }
+ public virtual bool ForceFileSystem { get; set; }
+ public virtual string Title { get; set; }
+ public virtual string OkButtonLabel { get; set; }
+ public virtual string FileNameLabel { get; set; }
+
+ protected virtual int SetOptions(int options)
+ {
+ if (ForceFileSystem)
+ {
+ options |= (int)FOS.FOS_FORCEFILESYSTEM;
+ }
+ return options;
+ }
+
+ // for WPF support
+ public bool? ShowDialog(Window owner = null, bool throwOnError = false)
+ {
+ owner ??= Application.Current.MainWindow;
+ return ShowDialog(owner != null ? new WindowInteropHelper(owner).Handle : IntPtr.Zero, throwOnError);
+ }
+
+ // for all .NET
+ public virtual bool? ShowDialog(IntPtr owner, bool throwOnError = false)
+ {
+ var dialog = (IFileOpenDialog)new FileOpenDialog();
+ if (!string.IsNullOrEmpty(InputPath))
+ {
+ if (CheckHr(SHCreateItemFromParsingName(InputPath, null, typeof(IShellItem).GUID, out var item), throwOnError) != 0)
+ return null;
+
+ dialog.SetFolder(item);
+ }
+
+ var options = FOS.FOS_PICKFOLDERS;
+ options = (FOS)SetOptions((int)options);
+ dialog.SetOptions(options);
+
+ if (Title != null)
+ {
+ dialog.SetTitle(Title);
+ }
+
+ if (OkButtonLabel != null)
+ {
+ dialog.SetOkButtonLabel(OkButtonLabel);
+ }
+
+ if (FileNameLabel != null)
+ {
+ dialog.SetFileName(FileNameLabel);
+ }
+
+ if (owner == IntPtr.Zero)
+ {
+ owner = Process.GetCurrentProcess().MainWindowHandle;
+ if (owner == IntPtr.Zero)
+ {
+ owner = GetDesktopWindow();
+ }
+ }
+
+ var hr = dialog.Show(owner);
+ if (hr == ERROR_CANCELLED)
+ return null;
+
+ if (CheckHr(hr, throwOnError) != 0)
+ return null;
+
+ if (CheckHr(dialog.GetResult(out var result), throwOnError) != 0)
+ return null;
+
+ if (CheckHr(result.GetDisplayName(SIGDN.SIGDN_DESKTOPABSOLUTEPARSING, out var path), throwOnError) != 0)
+ return null;
+
+ ResultPath = path;
+
+ if (CheckHr(result.GetDisplayName(SIGDN.SIGDN_DESKTOPABSOLUTEEDITING, out path), false) == 0)
+ {
+ ResultName = path;
+ }
+ return true;
+ }
+
+ private static int CheckHr(int hr, bool throwOnError)
+ {
+ if (hr != 0)
+ {
+ if (throwOnError)
+ Marshal.ThrowExceptionForHR(hr);
+ }
+ return hr;
+ }
+
+ [DllImport("shell32")]
+ private static extern int SHCreateItemFromParsingName([MarshalAs(UnmanagedType.LPWStr)] string pszPath, IBindCtx pbc, [MarshalAs(UnmanagedType.LPStruct)] Guid riid, out IShellItem ppv);
+
+ [DllImport("user32")]
+ private static extern IntPtr GetDesktopWindow();
+
+#pragma warning disable IDE1006 // Naming Styles
+ private const int ERROR_CANCELLED = unchecked((int)0x800704C7);
+#pragma warning restore IDE1006 // Naming Styles
+
+ [ComImport, Guid("DC1C5A9C-E88A-4dde-A5A1-60F82A20AEF7")] // CLSID_FileOpenDialog
+ private class FileOpenDialog
+ {
+ }
+
+ [ComImport, Guid("42f85136-db7e-439c-85f1-e4075d135fc8"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ private interface IFileOpenDialog
+ {
+ [PreserveSig] int Show(IntPtr parent); // IModalWindow
+ [PreserveSig] int SetFileTypes(); // not fully defined
+ [PreserveSig] int SetFileTypeIndex(int iFileType);
+ [PreserveSig] int GetFileTypeIndex(out int piFileType);
+ [PreserveSig] int Advise(); // not fully defined
+ [PreserveSig] int Unadvise();
+ [PreserveSig] int SetOptions(FOS fos);
+ [PreserveSig] int GetOptions(out FOS pfos);
+ [PreserveSig] int SetDefaultFolder(IShellItem psi);
+ [PreserveSig] int SetFolder(IShellItem psi);
+ [PreserveSig] int GetFolder(out IShellItem ppsi);
+ [PreserveSig] int GetCurrentSelection(out IShellItem ppsi);
+ [PreserveSig] int SetFileName([MarshalAs(UnmanagedType.LPWStr)] string pszName);
+ [PreserveSig] int GetFileName([MarshalAs(UnmanagedType.LPWStr)] out string pszName);
+ [PreserveSig] int SetTitle([MarshalAs(UnmanagedType.LPWStr)] string pszTitle);
+ [PreserveSig] int SetOkButtonLabel([MarshalAs(UnmanagedType.LPWStr)] string pszText);
+ [PreserveSig] int SetFileNameLabel([MarshalAs(UnmanagedType.LPWStr)] string pszLabel);
+ [PreserveSig] int GetResult(out IShellItem ppsi);
+ [PreserveSig] int AddPlace(IShellItem psi, int alignment);
+ [PreserveSig] int SetDefaultExtension([MarshalAs(UnmanagedType.LPWStr)] string pszDefaultExtension);
+ [PreserveSig] int Close(int hr);
+ [PreserveSig] int SetClientGuid(); // not fully defined
+ [PreserveSig] int ClearClientData();
+ [PreserveSig] int SetFilter([MarshalAs(UnmanagedType.IUnknown)] object pFilter);
+ [PreserveSig] int GetResults([MarshalAs(UnmanagedType.IUnknown)] out object ppenum);
+ [PreserveSig] int GetSelectedItems([MarshalAs(UnmanagedType.IUnknown)] out object ppsai);
+ }
+
+ [ComImport, Guid("43826D1E-E718-42EE-BC55-A1E261C37BFE"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ private interface IShellItem
+ {
+ [PreserveSig] int BindToHandler(); // not fully defined
+ [PreserveSig] int GetParent(); // not fully defined
+ [PreserveSig] int GetDisplayName(SIGDN sigdnName, [MarshalAs(UnmanagedType.LPWStr)] out string ppszName);
+ [PreserveSig] int GetAttributes(); // not fully defined
+ [PreserveSig] int Compare(); // not fully defined
+ }
+
+#pragma warning disable CA1712 // Do not prefix enum values with type name
+ private enum SIGDN : uint
+ {
+ SIGDN_DESKTOPABSOLUTEEDITING = 0x8004c000,
+ SIGDN_DESKTOPABSOLUTEPARSING = 0x80028000,
+ SIGDN_FILESYSPATH = 0x80058000,
+ SIGDN_NORMALDISPLAY = 0,
+ SIGDN_PARENTRELATIVE = 0x80080001,
+ SIGDN_PARENTRELATIVEEDITING = 0x80031001,
+ SIGDN_PARENTRELATIVEFORADDRESSBAR = 0x8007c001,
+ SIGDN_PARENTRELATIVEPARSING = 0x80018001,
+ SIGDN_URL = 0x80068000
+ }
+
+ [Flags]
+ private enum FOS
+ {
+ FOS_OVERWRITEPROMPT = 0x2,
+ FOS_STRICTFILETYPES = 0x4,
+ FOS_NOCHANGEDIR = 0x8,
+ FOS_PICKFOLDERS = 0x20,
+ FOS_FORCEFILESYSTEM = 0x40,
+ FOS_ALLNONSTORAGEITEMS = 0x80,
+ FOS_NOVALIDATE = 0x100,
+ FOS_ALLOWMULTISELECT = 0x200,
+ FOS_PATHMUSTEXIST = 0x800,
+ FOS_FILEMUSTEXIST = 0x1000,
+ FOS_CREATEPROMPT = 0x2000,
+ FOS_SHAREAWARE = 0x4000,
+ FOS_NOREADONLYRETURN = 0x8000,
+ FOS_NOTESTFILECREATE = 0x10000,
+ FOS_HIDEMRUPLACES = 0x20000,
+ FOS_HIDEPINNEDPLACES = 0x40000,
+ FOS_NODEREFERENCELINKS = 0x100000,
+ FOS_OKBUTTONNEEDSINTERACTION = 0x200000,
+ FOS_DONTADDTORECENT = 0x2000000,
+ FOS_FORCESHOWHIDDEN = 0x10000000,
+ FOS_DEFAULTNOMINIMODE = 0x20000000,
+ FOS_FORCEPREVIEWPANEON = 0x40000000,
+ FOS_SUPPORTSTREAMABLEITEMS = unchecked((int)0x80000000)
+ }
+#pragma warning restore CA1712 // Do not prefix enum values with type name
+ }
+}
diff --git a/PCK-Studio/Classes/ToolboxItems/InterpolationPictureBox.cs b/PCK-Studio/Classes/ToolboxItems/PictureBoxWithInterpolationMode.cs
similarity index 86%
rename from PCK-Studio/Classes/ToolboxItems/InterpolationPictureBox.cs
rename to PCK-Studio/Classes/ToolboxItems/PictureBoxWithInterpolationMode.cs
index 674c785b..cbb93eec 100644
--- a/PCK-Studio/Classes/ToolboxItems/InterpolationPictureBox.cs
+++ b/PCK-Studio/Classes/ToolboxItems/PictureBoxWithInterpolationMode.cs
@@ -13,6 +13,7 @@ namespace PckStudio.ToolboxItems
protected override void OnPaint(PaintEventArgs paintEventArgs)
{
paintEventArgs.Graphics.InterpolationMode = InterpolationMode;
+ paintEventArgs.Graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
base.OnPaint(paintEventArgs);
}
}
diff --git a/PCK-Studio/Extensions/ColorExtensions.cs b/PCK-Studio/Extensions/ColorExtensions.cs
index e2bb0ed7..8f971123 100644
--- a/PCK-Studio/Extensions/ColorExtensions.cs
+++ b/PCK-Studio/Extensions/ColorExtensions.cs
@@ -10,23 +10,22 @@ namespace PckStudio.Extensions
/// Normalizes the Color between 0.0 - 1.0
///
///
- public static Vector3 Normalize(this Color color)
+ internal static Vector4 Normalize(this Color color)
{
- return new Vector3(color.R / 255f, color.G / 255f, color.B / 255f);
+ return new Vector4(color.R / 255f, color.G / 255f, color.B / 255f, color.A / 255f);
}
- private static T Clamp(T value, T min, T max) where T : IComparable
+ internal 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)
+ internal 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,
@@ -41,5 +40,20 @@ namespace PckStudio.Extensions
return (byte)Clamp(resultValue * 255, 0, 255);
}
+ internal static byte Mix(double ratio, byte val1, byte val2)
+ {
+ ratio = Clamp(ratio, 0.0, 1.0);
+ return (byte)(ratio * val1 + (1.0 - ratio) * val2);
+ }
+
+ internal static Color Mix(this Color c1, Color c2, double ratio)
+ {
+ ratio = Clamp(ratio, 0.0, 1.0);
+ return Color.FromArgb(c1.A,
+ Mix(ratio, c1.R, c2.R),
+ Mix(ratio, c1.G, c2.G),
+ Mix(ratio, c1.B, c2.B)
+ );
+ }
}
}
diff --git a/PCK-Studio/Extensions/EnumerableExtensions.cs b/PCK-Studio/Extensions/EnumerableExtensions.cs
index ed95e29f..275d2093 100644
--- a/PCK-Studio/Extensions/EnumerableExtensions.cs
+++ b/PCK-Studio/Extensions/EnumerableExtensions.cs
@@ -1,4 +1,5 @@
using System.Collections.Generic;
+using System.Linq;
namespace PckStudio.Extensions
{
@@ -13,5 +14,15 @@ namespace PckStudio.Extensions
}
yield break;
}
+
+ public static bool ContainsAny(this IEnumerable array, params T[] items)
+ {
+ foreach (var item in array)
+ {
+ if (items.Contains(item))
+ return true;
+ }
+ return false;
+ }
}
}
diff --git a/PCK-Studio/Extensions/ImageExtensions.cs b/PCK-Studio/Extensions/ImageExtensions.cs
index 6ff27f23..b660a527 100644
--- a/PCK-Studio/Extensions/ImageExtensions.cs
+++ b/PCK-Studio/Extensions/ImageExtensions.cs
@@ -11,48 +11,9 @@ using System.Net;
namespace PckStudio.Extensions
{
- public enum ImageLayoutDirection
- {
- Horizontal,
- Vertical
- }
-
internal static class ImageExtensions
{
- private struct ImageSection
- {
- public readonly Size Size;
- public readonly Point Point;
- public readonly Rectangle Area;
-
- public ImageSection(Size sectionSize, int index, ImageLayoutDirection layoutDirection)
- {
- switch(layoutDirection)
- {
- case ImageLayoutDirection.Horizontal:
- {
- Size = new Size(sectionSize.Height, sectionSize.Height);
- Point = new Point(index * sectionSize.Height, 0);
- }
- break;
-
- case ImageLayoutDirection.Vertical:
- {
- Size = new Size(sectionSize.Width, sectionSize.Width);
- Point = new Point(0, index * sectionSize.Width);
- }
- break;
-
- default:
- Size = Size.Empty;
- Point = new Point(-1, -1);
- break;
- }
- Area = new Rectangle(Point, Size);
- }
- }
-
- public static Image GetArea(this Image source, Rectangle area)
+ internal static Image GetArea(this Image source, Rectangle area)
{
Image tileImage = new Bitmap(area.Width, area.Height);
using (Graphics gfx = Graphics.FromImage(tileImage))
@@ -65,26 +26,43 @@ namespace PckStudio.Extensions
return tileImage;
}
- public static IEnumerable CreateImageList(this Image source, Size size)
+ ///
+ /// Creates an image array by reading in horizontal order
+ ///
+ ///
+ /// Size of individual image inside of
+ internal static IEnumerable CreateImageList(this Image source, Size size)
+ {
+ return source.CreateImageList(size, ImageLayoutDirection.Horizontal);
+ }
+
+ internal static IEnumerable CreateImageList(this Image source, int scalar)
+ {
+ return source.CreateImageList(scalar, ImageLayoutDirection.Horizontal);
+ }
+
+ internal static IEnumerable CreateImageList(this Image source, int scalar, ImageLayoutDirection layoutDirection)
+ {
+ return CreateImageList(source, new Size(scalar, scalar), layoutDirection);
+ }
+
+ internal static IEnumerable CreateImageList(this Image source, Size size, ImageLayoutDirection imageLayout)
{
int rowCount = source.Width / size.Width;
int columnCount = source.Height / size.Height;
- Debug.WriteLine($"{source.Width} {source.Height} {size} {columnCount} {rowCount}");
+ Debug.WriteLine($"{nameof(source.Size)}={source.Size}, {nameof(size)}={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);
+ if (imageLayout == ImageLayoutDirection.Vertical)
+ column = Math.DivRem(i, columnCount, out row);
+ Rectangle tileArea = new Rectangle(new Point(column * size.Width, row * size.Height), 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)
+ internal static IEnumerable CreateImageList(this Image source, ImageLayoutDirection layoutDirection)
{
for (int i = 0; i < source.Height / source.Width; i++)
{
@@ -94,7 +72,7 @@ namespace PckStudio.Extensions
yield break;
}
- public static Image CombineImages(IList sources, ImageLayoutDirection layoutDirection)
+ internal static Image CombineImages(this IList sources, ImageLayoutDirection layoutDirection)
{
Size imageSize = CalculateImageSize(sources, layoutDirection);
var image = new Bitmap(imageSize.Width, imageSize.Height);
@@ -132,7 +110,7 @@ namespace PckStudio.Extensions
return new Size(width, height);
}
- public static Image ResizeImage(this Image image, int width, int height, GraphicsConfig graphicsConfig)
+ internal 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);
@@ -151,7 +129,7 @@ namespace PckStudio.Extensions
return destImage;
}
- public static Image Fill(this Image image, Color color)
+ internal static Image Fill(this Image image, Color color)
{
using (var g = Graphics.FromImage(image))
{
@@ -163,7 +141,7 @@ namespace PckStudio.Extensions
return image;
}
- public static Image Blend(this Image image, Color overlayColor, BlendMode mode)
+ internal static Image Blend(this Image image, Color overlayColor, BlendMode mode)
{
if (image is not Bitmap baseImage)
return image;
@@ -195,7 +173,7 @@ namespace PckStudio.Extensions
return bitmapResult;
}
- public static Image Blend(this Image image, Image overlay, BlendMode mode)
+ internal 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)
@@ -232,6 +210,44 @@ namespace PckStudio.Extensions
return bitmapResult;
}
+ internal static Image Interpolate(this Image image1, Image image2, double delta)
+ {
+ delta = ColorExtensions.Clamp(delta, 0.0, 1.0);
+ if (image1 is not Bitmap baseImage || image2 is not Bitmap overlayImage ||
+ image1.Width != image2.Width || image1.Height != image2.Height)
+ return image1;
+
+ 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.Mix(delta, baseImageBuffer[k + 0], overlayImageBuffer[k + 0]);
+ baseImageBuffer[k + 1] = ColorExtensions.Mix(delta, baseImageBuffer[k + 1], overlayImageBuffer[k + 1]);
+ baseImageBuffer[k + 2] = ColorExtensions.Mix(delta, baseImageBuffer[k + 2], overlayImageBuffer[k + 2]);
+ }
+
+ 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;
+ }
+
public static Image ImageFromUrl(string imageUrl)
{
WebClient client = new WebClient();
diff --git a/PCK-Studio/Extensions/ImageLayoutDirection.cs b/PCK-Studio/Extensions/ImageLayoutDirection.cs
new file mode 100644
index 00000000..7cfc23eb
--- /dev/null
+++ b/PCK-Studio/Extensions/ImageLayoutDirection.cs
@@ -0,0 +1,8 @@
+namespace PckStudio.Extensions
+{
+ internal enum ImageLayoutDirection
+ {
+ Horizontal,
+ Vertical
+ }
+}
diff --git a/PCK-Studio/Extensions/ImageSection.cs b/PCK-Studio/Extensions/ImageSection.cs
new file mode 100644
index 00000000..b6e8fa26
--- /dev/null
+++ b/PCK-Studio/Extensions/ImageSection.cs
@@ -0,0 +1,37 @@
+using System.Drawing;
+
+namespace PckStudio.Extensions
+{
+ struct ImageSection
+ {
+ public readonly Size Size;
+ public readonly Point Point;
+ public readonly Rectangle Area;
+
+ internal ImageSection(Size sectionSize, int index, ImageLayoutDirection layoutDirection)
+ {
+ switch(layoutDirection)
+ {
+ case ImageLayoutDirection.Horizontal:
+ {
+ Size = new Size(sectionSize.Height, sectionSize.Height);
+ Point = new Point(index * sectionSize.Height, 0);
+ }
+ break;
+
+ case ImageLayoutDirection.Vertical:
+ {
+ Size = new Size(sectionSize.Width, sectionSize.Width);
+ Point = new Point(0, index * sectionSize.Width);
+ }
+ break;
+
+ default:
+ Size = Size.Empty;
+ Point = new Point(-1, -1);
+ break;
+ }
+ Area = new Rectangle(Point, Size);
+ }
+ }
+}
diff --git a/PCK-Studio/Features/CemuPanel.Designer.cs b/PCK-Studio/Features/CemuPanel.Designer.cs
new file mode 100644
index 00000000..b197f251
--- /dev/null
+++ b/PCK-Studio/Features/CemuPanel.Designer.cs
@@ -0,0 +1,285 @@
+namespace PckStudio.Features
+{
+ partial class CemuPanel
+ {
+ ///
+ /// 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 Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.Windows.Forms.TableLayoutPanel layoutPanel;
+ this.radioButtonEur = new System.Windows.Forms.RadioButton();
+ this.radioButtonUs = new System.Windows.Forms.RadioButton();
+ this.radioButtonJap = new System.Windows.Forms.RadioButton();
+ this.GameDirectoryTextBox = new MetroFramework.Controls.MetroTextBox();
+ this.BrowseDirectoryBtn = new System.Windows.Forms.Button();
+ this.DLCTreeView = new System.Windows.Forms.TreeView();
+ this.DLCContextMenu = new MetroFramework.Controls.MetroContextMenu(this.components);
+ this.openSkinPackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.openTexturePackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.addCustomPckToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.removePckToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ layoutPanel = new System.Windows.Forms.TableLayoutPanel();
+ layoutPanel.SuspendLayout();
+ this.DLCContextMenu.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // layoutPanel
+ //
+ layoutPanel.BackColor = System.Drawing.Color.Black;
+ layoutPanel.ColumnCount = 3;
+ layoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33332F));
+ layoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F));
+ layoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F));
+ layoutPanel.Controls.Add(this.radioButtonEur, 0, 1);
+ layoutPanel.Controls.Add(this.radioButtonUs, 1, 1);
+ layoutPanel.Controls.Add(this.radioButtonJap, 2, 1);
+ layoutPanel.Controls.Add(this.GameDirectoryTextBox, 0, 0);
+ layoutPanel.Controls.Add(this.BrowseDirectoryBtn, 2, 0);
+ layoutPanel.Controls.Add(this.DLCTreeView, 0, 2);
+ layoutPanel.Dock = System.Windows.Forms.DockStyle.Fill;
+ layoutPanel.Location = new System.Drawing.Point(0, 0);
+ layoutPanel.Margin = new System.Windows.Forms.Padding(0);
+ layoutPanel.Name = "layoutPanel";
+ layoutPanel.RowCount = 3;
+ layoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle());
+ layoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F));
+ layoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ layoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+ layoutPanel.Size = new System.Drawing.Size(430, 550);
+ layoutPanel.TabIndex = 4;
+ //
+ // radioButtonEur
+ //
+ this.radioButtonEur.Appearance = System.Windows.Forms.Appearance.Button;
+ this.radioButtonEur.AutoSize = true;
+ this.radioButtonEur.BackColor = System.Drawing.Color.Transparent;
+ this.radioButtonEur.CheckAlign = System.Drawing.ContentAlignment.BottomRight;
+ this.radioButtonEur.Checked = true;
+ this.radioButtonEur.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.radioButtonEur.FlatAppearance.CheckedBackColor = System.Drawing.Color.DodgerBlue;
+ this.radioButtonEur.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
+ this.radioButtonEur.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
+ this.radioButtonEur.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.radioButtonEur.Font = new System.Drawing.Font("Segoe UI", 12F);
+ this.radioButtonEur.ForeColor = System.Drawing.Color.White;
+ this.radioButtonEur.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.radioButtonEur.Location = new System.Drawing.Point(3, 36);
+ this.radioButtonEur.Name = "radioButtonEur";
+ this.radioButtonEur.Size = new System.Drawing.Size(137, 30);
+ this.radioButtonEur.TabIndex = 1;
+ this.radioButtonEur.TabStop = true;
+ this.radioButtonEur.Text = "EUR";
+ this.radioButtonEur.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.radioButtonEur.UseVisualStyleBackColor = false;
+ this.radioButtonEur.Click += new System.EventHandler(this.radioButton_Click);
+ //
+ // radioButtonUs
+ //
+ this.radioButtonUs.Appearance = System.Windows.Forms.Appearance.Button;
+ this.radioButtonUs.AutoSize = true;
+ this.radioButtonUs.BackColor = System.Drawing.Color.Transparent;
+ this.radioButtonUs.CheckAlign = System.Drawing.ContentAlignment.BottomRight;
+ this.radioButtonUs.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.radioButtonUs.FlatAppearance.CheckedBackColor = System.Drawing.Color.DodgerBlue;
+ this.radioButtonUs.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
+ this.radioButtonUs.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
+ this.radioButtonUs.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.radioButtonUs.Font = new System.Drawing.Font("Segoe UI", 12F);
+ this.radioButtonUs.ForeColor = System.Drawing.Color.White;
+ this.radioButtonUs.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.radioButtonUs.Location = new System.Drawing.Point(146, 36);
+ this.radioButtonUs.Name = "radioButtonUs";
+ this.radioButtonUs.Size = new System.Drawing.Size(137, 30);
+ this.radioButtonUs.TabIndex = 0;
+ this.radioButtonUs.Text = "US";
+ this.radioButtonUs.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.radioButtonUs.UseVisualStyleBackColor = false;
+ this.radioButtonUs.Click += new System.EventHandler(this.radioButton_Click);
+ //
+ // radioButtonJap
+ //
+ this.radioButtonJap.Appearance = System.Windows.Forms.Appearance.Button;
+ this.radioButtonJap.AutoSize = true;
+ this.radioButtonJap.BackColor = System.Drawing.Color.Transparent;
+ this.radioButtonJap.CheckAlign = System.Drawing.ContentAlignment.BottomRight;
+ this.radioButtonJap.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.radioButtonJap.FlatAppearance.CheckedBackColor = System.Drawing.Color.DodgerBlue;
+ this.radioButtonJap.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
+ this.radioButtonJap.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
+ this.radioButtonJap.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.radioButtonJap.Font = new System.Drawing.Font("Segoe UI", 12F);
+ this.radioButtonJap.ForeColor = System.Drawing.Color.White;
+ this.radioButtonJap.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.radioButtonJap.Location = new System.Drawing.Point(289, 36);
+ this.radioButtonJap.Name = "radioButtonJap";
+ this.radioButtonJap.Size = new System.Drawing.Size(138, 30);
+ this.radioButtonJap.TabIndex = 2;
+ this.radioButtonJap.Text = "JAP";
+ this.radioButtonJap.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.radioButtonJap.UseVisualStyleBackColor = false;
+ this.radioButtonJap.Click += new System.EventHandler(this.radioButton_Click);
+ //
+ // GameDirectoryTextBox
+ //
+ this.GameDirectoryTextBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ layoutPanel.SetColumnSpan(this.GameDirectoryTextBox, 2);
+ //
+ //
+ //
+ this.GameDirectoryTextBox.CustomButton.Image = null;
+ this.GameDirectoryTextBox.CustomButton.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.GameDirectoryTextBox.CustomButton.Location = new System.Drawing.Point(254, 1);
+ this.GameDirectoryTextBox.CustomButton.Name = "";
+ this.GameDirectoryTextBox.CustomButton.Size = new System.Drawing.Size(25, 25);
+ this.GameDirectoryTextBox.CustomButton.Style = MetroFramework.MetroColorStyle.Blue;
+ this.GameDirectoryTextBox.CustomButton.TabIndex = 1;
+ this.GameDirectoryTextBox.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light;
+ this.GameDirectoryTextBox.CustomButton.UseSelectable = true;
+ this.GameDirectoryTextBox.CustomButton.Visible = false;
+ this.GameDirectoryTextBox.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.GameDirectoryTextBox.Enabled = false;
+ this.GameDirectoryTextBox.Lines = new string[0];
+ this.GameDirectoryTextBox.Location = new System.Drawing.Point(3, 3);
+ this.GameDirectoryTextBox.MaxLength = 32767;
+ this.GameDirectoryTextBox.Name = "GameDirectoryTextBox";
+ this.GameDirectoryTextBox.PasswordChar = '\0';
+ this.GameDirectoryTextBox.PromptText = "Cemu Game Directory";
+ this.GameDirectoryTextBox.ScrollBars = System.Windows.Forms.ScrollBars.None;
+ this.GameDirectoryTextBox.SelectedText = "";
+ this.GameDirectoryTextBox.SelectionLength = 0;
+ this.GameDirectoryTextBox.SelectionStart = 0;
+ this.GameDirectoryTextBox.ShortcutsEnabled = true;
+ this.GameDirectoryTextBox.Size = new System.Drawing.Size(280, 27);
+ this.GameDirectoryTextBox.Style = MetroFramework.MetroColorStyle.Blue;
+ this.GameDirectoryTextBox.TabIndex = 11;
+ this.GameDirectoryTextBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.GameDirectoryTextBox.UseSelectable = true;
+ this.GameDirectoryTextBox.WaterMark = "Cemu Game Directory";
+ this.GameDirectoryTextBox.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109)))));
+ this.GameDirectoryTextBox.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel);
+ this.GameDirectoryTextBox.TextChanged += new System.EventHandler(this.GameDirectoryTextBox_TextChanged);
+ //
+ // BrowseDirectoryBtn
+ //
+ this.BrowseDirectoryBtn.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+ this.BrowseDirectoryBtn.BackColor = System.Drawing.Color.DarkCyan;
+ this.BrowseDirectoryBtn.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.BrowseDirectoryBtn.FlatAppearance.BorderSize = 0;
+ this.BrowseDirectoryBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.BrowseDirectoryBtn.Font = new System.Drawing.Font("Segoe UI", 9.75F);
+ this.BrowseDirectoryBtn.ForeColor = System.Drawing.Color.White;
+ this.BrowseDirectoryBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.BrowseDirectoryBtn.Location = new System.Drawing.Point(289, 3);
+ this.BrowseDirectoryBtn.Name = "BrowseDirectoryBtn";
+ this.BrowseDirectoryBtn.Size = new System.Drawing.Size(138, 27);
+ this.BrowseDirectoryBtn.TabIndex = 12;
+ this.BrowseDirectoryBtn.Text = "Browse";
+ this.BrowseDirectoryBtn.UseVisualStyleBackColor = false;
+ this.BrowseDirectoryBtn.Click += new System.EventHandler(this.BrowseDirectoryBtn_Click);
+ //
+ // DLCTreeView
+ //
+ this.DLCTreeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ layoutPanel.SetColumnSpan(this.DLCTreeView, 3);
+ this.DLCTreeView.ContextMenuStrip = this.DLCContextMenu;
+ this.DLCTreeView.Location = new System.Drawing.Point(3, 72);
+ this.DLCTreeView.Name = "DLCTreeView";
+ this.DLCTreeView.Size = new System.Drawing.Size(424, 475);
+ this.DLCTreeView.TabIndex = 13;
+ this.DLCTreeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.DLCTreeView_AfterSelect);
+ this.DLCTreeView.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.DLCTreeView_NodeMouseDoubleClick);
+ //
+ // DLCContextMenu
+ //
+ this.DLCContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.openSkinPackToolStripMenuItem,
+ this.openTexturePackToolStripMenuItem,
+ this.addCustomPckToolStripMenuItem,
+ this.removePckToolStripMenuItem});
+ this.DLCContextMenu.Name = "DLCContextMenu";
+ this.DLCContextMenu.Size = new System.Drawing.Size(173, 92);
+ //
+ // openSkinPackToolStripMenuItem
+ //
+ this.openSkinPackToolStripMenuItem.Name = "openSkinPackToolStripMenuItem";
+ this.openSkinPackToolStripMenuItem.Size = new System.Drawing.Size(172, 22);
+ this.openSkinPackToolStripMenuItem.Text = "Open Pack";
+ this.openSkinPackToolStripMenuItem.Click += new System.EventHandler(this.openSkinPackToolStripMenuItem_Click);
+ //
+ // openTexturePackToolStripMenuItem
+ //
+ this.openTexturePackToolStripMenuItem.Name = "openTexturePackToolStripMenuItem";
+ this.openTexturePackToolStripMenuItem.Size = new System.Drawing.Size(172, 22);
+ this.openTexturePackToolStripMenuItem.Text = "Open Texture Pack";
+ this.openTexturePackToolStripMenuItem.Click += new System.EventHandler(this.openTexturePackToolStripMenuItem_Click);
+ //
+ // addCustomPckToolStripMenuItem
+ //
+ this.addCustomPckToolStripMenuItem.Name = "addCustomPckToolStripMenuItem";
+ this.addCustomPckToolStripMenuItem.Size = new System.Drawing.Size(172, 22);
+ this.addCustomPckToolStripMenuItem.Text = "Add pck";
+ this.addCustomPckToolStripMenuItem.Click += new System.EventHandler(this.addCustomPckToolStripMenuItem_Click);
+ //
+ // removePckToolStripMenuItem
+ //
+ this.removePckToolStripMenuItem.Name = "removePckToolStripMenuItem";
+ this.removePckToolStripMenuItem.Size = new System.Drawing.Size(172, 22);
+ this.removePckToolStripMenuItem.Text = "Remove pck";
+ this.removePckToolStripMenuItem.Click += new System.EventHandler(this.removePckToolStripMenuItem_Click);
+ //
+ // CemuPanel
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.AutoSize = true;
+ this.BackColor = System.Drawing.SystemColors.ActiveCaptionText;
+ this.Controls.Add(layoutPanel);
+ this.Name = "CemuPanel";
+ this.Size = new System.Drawing.Size(430, 550);
+ layoutPanel.ResumeLayout(false);
+ layoutPanel.PerformLayout();
+ this.DLCContextMenu.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button BrowseDirectoryBtn;
+ private MetroFramework.Controls.MetroTextBox GameDirectoryTextBox;
+ private System.Windows.Forms.RadioButton radioButtonEur;
+ private System.Windows.Forms.RadioButton radioButtonUs;
+ private System.Windows.Forms.RadioButton radioButtonJap;
+ private System.Windows.Forms.TreeView DLCTreeView;
+ private MetroFramework.Controls.MetroContextMenu DLCContextMenu;
+ private System.Windows.Forms.ToolStripMenuItem openSkinPackToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem openTexturePackToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem addCustomPckToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem removePckToolStripMenuItem;
+ }
+}
diff --git a/PCK-Studio/Features/CemuPanel.cs b/PCK-Studio/Features/CemuPanel.cs
new file mode 100644
index 00000000..8d6757bd
--- /dev/null
+++ b/PCK-Studio/Features/CemuPanel.cs
@@ -0,0 +1,282 @@
+using System;
+using System.Xml;
+using System.IO;
+using System.Linq;
+using System.Windows.Forms;
+using PckStudio.Extensions;
+using PckStudio.Classes.Misc;
+
+namespace PckStudio.Features
+{
+ ///
+ /// Wishlist:
+ /// - add the ability to save the currently open pck file to the desired folder destination.
+ /// (even if the pck file has not yet be saved to disk)
+ ///
+ public partial class CemuPanel : UserControl
+ {
+ public CemuPanel()
+ {
+ InitializeComponent();
+ if (!TryApplyPermanentCemuConfig() &&
+ MessageBox.Show("Failed to get Cemu perma settings\nDo you want to open your local settings.xml file?",
+ "Cemu mlc path not found",
+ MessageBoxButtons.YesNo,
+ MessageBoxIcon.Warning) == DialogResult.Yes
+ )
+ {
+
+ OpenFileDialog fileDialog = new OpenFileDialog()
+ {
+ Filter = "Cemu Settings|settings.xml",
+ };
+
+ if (fileDialog.ShowDialog(this) == DialogResult.OK)
+ {
+ TryApplyCemuConfig(fileDialog.FileName);
+ }
+ }
+ }
+
+ private bool TryApplyCemuConfig(string settingsPath)
+ {
+ string cemuPath = Path.Combine(Path.GetDirectoryName(settingsPath), "Cemu.exe");
+ if (File.Exists(cemuPath))
+ {
+ var xml = new XmlDocument();
+ xml.Load(settingsPath);
+ GameDirectoryTextBox.Text = xml.SelectSingleNode("content").SelectSingleNode("mlc_path").InnerText;
+ BrowseDirectoryBtn.Enabled = false;
+ }
+ return false;
+ }
+
+ private bool TryApplyPermanentCemuConfig()
+ {
+ string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Cemu");
+ string filepath = Path.Combine(path, "perm_setting.xml");
+ if (Directory.Exists(path) && File.Exists(filepath))
+ {
+ try
+ {
+ var xml = new XmlDocument();
+ xml.Load(filepath);
+ var configNode = xml.SelectSingleNode("config");
+ var mlcpathNode = configNode.SelectSingleNode("MlcPath");
+ GameDirectoryTextBox.Text = mlcpathNode.InnerText;
+ BrowseDirectoryBtn.Enabled = false;
+ return true;
+ }
+ catch
+ {
+ return false;
+ }
+ }
+ return false;
+ }
+
+ private string GetSelectedRegionTitleId()
+ {
+ if (radioButtonEur.Checked)
+ {
+ return "101d7500";
+ }
+ if (radioButtonUs.Checked)
+ {
+ return "101d9d00";
+ }
+ if (radioButtonJap.Checked)
+ {
+ return "101dbe00";
+ }
+ throw new Exception("how did you get here ?");
+ }
+
+ private string GetGameContentPath()
+ {
+ string region = GetSelectedRegionTitleId();
+ return $"{GameDirectoryTextBox.Text}/usr/title/0005000e/{region}/content";
+ }
+
+ private string GetContentSubDirectory(params string[] subpaths)
+ {
+ return Path.Combine(GetGameContentPath(), Path.Combine(subpaths));
+ }
+
+ private void BrowseDirectoryBtn_Click(object sender, EventArgs e)
+ {
+ OpenFolderDialog openFolderDialog = new OpenFolderDialog
+ {
+ Title = "Select Cemu mlc01 Directory"
+ };
+ if (openFolderDialog.ShowDialog(Handle) == true && Directory.Exists(openFolderDialog.ResultPath))
+ {
+ GameDirectoryTextBox.Text = openFolderDialog.ResultPath;
+ }
+ }
+
+ private class DLCDirectoryInfo
+ {
+ private readonly bool _hasTexturePack;
+ private readonly string _basePckPath;
+ private readonly string _texturePackPath;
+
+ public bool HasTexturePack => _hasTexturePack;
+ public string PackPath => _basePckPath;
+ public string TexturePackPath => _texturePackPath;
+
+ public DLCDirectoryInfo(DirectoryInfo directory)
+ {
+ _basePckPath = directory.GetFiles().FirstOrDefault(f => f.Name.EndsWith(".pck")).FullName;
+ _ = _basePckPath ?? throw new NullReferenceException($"Could not find any '.pck' inside {directory.Name}");
+ if (TryGetDataDirectory(directory, out var dataDir))
+ {
+ var tpFileInfo = dataDir.GetFiles().FirstOrDefault(f => !f.Name.Equals("audio.pck") && f.Name.EndsWith(".pck"));
+ _hasTexturePack = tpFileInfo is not null;
+ _texturePackPath = _hasTexturePack ? tpFileInfo.FullName : string.Empty;
+ }
+ }
+
+ public DLCDirectoryInfo(string path)
+ : this(new DirectoryInfo(path))
+ {
+ }
+
+ private bool TryGetDataDirectory(DirectoryInfo directory, out DirectoryInfo dataDirectory)
+ {
+ var dirs = directory.GetDirectories("Data", SearchOption.TopDirectoryOnly);
+ dataDirectory = dirs.Length != 0 ? dirs[0] : null;
+ return dirs.Length != 0;
+ }
+ }
+
+ private void ListDLCs()
+ {
+ DLCTreeView.Nodes.Clear();
+ if (!IsValidInstallDirectory())
+ {
+ MessageBox.Show("Please select a valid Game Directory!", "Invalid Directory Specified",
+ MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+
+ if (!IsValidGameDirectory())
+ {
+ MessageBox.Show($"Could not find '{GetGameContentPath()}'!", "Not Found",
+ MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+
+ string dirPath = GetContentSubDirectory("WiiU", "DLC");
+ DirectoryInfo dlcDirectory = new DirectoryInfo(dirPath);
+
+ if (!dlcDirectory.Exists)
+ {
+ MessageBox.Show($"'{dirPath}' does not exist!", "Not Found",
+ MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+
+ foreach (var directoryInfo in dlcDirectory.GetDirectories())
+ {
+ if (directoryInfo.GetFileSystemInfos().Length != 0)
+ {
+ var node = DLCTreeView.Nodes.Add(directoryInfo.Name);
+ node.Tag = new DLCDirectoryInfo(directoryInfo);
+ }
+ }
+ }
+
+ private bool IsValidInstallDirectory()
+ {
+ return !string.IsNullOrWhiteSpace(GameDirectoryTextBox.Text) && Directory.Exists(GameDirectoryTextBox.Text);
+ }
+
+ private void radioButton_Click(object sender, EventArgs e)
+ {
+ ListDLCs();
+ }
+
+ private bool IsValidGameDirectory()
+ {
+ return IsValidInstallDirectory() && Directory.Exists(GetGameContentPath());
+ }
+
+ private void openSkinPackToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ if (DLCTreeView.SelectedNode.Tag is DLCDirectoryInfo dlcDir)
+ {
+ Program.MainInstance.LoadPckFromFile(dlcDir.PackPath);
+ }
+ }
+
+ private void openTexturePackToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ if (DLCTreeView.SelectedNode.Tag is DLCDirectoryInfo dlcDir && dlcDir.HasTexturePack)
+ {
+ Program.MainInstance.LoadPckFromFile(dlcDir.TexturePackPath);
+ }
+ }
+
+ private void DLCTreeView_AfterSelect(object sender, TreeViewEventArgs e)
+ {
+ openTexturePackToolStripMenuItem.Visible = e.Node.Tag is DLCDirectoryInfo dlcDir && dlcDir.HasTexturePack;
+ }
+
+ private void addCustomPckToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ RenamePrompt prompt = new RenamePrompt(string.Empty);
+ prompt.OKButton.Text = "OK";
+ prompt.TextLabel.Text = "Folder:";
+
+ if (prompt.ShowDialog(this) != DialogResult.OK)
+ return;
+
+ if (prompt.NewText.ContainsAny(Path.GetInvalidPathChars()))
+ {
+ MessageBox.Show("Invalid Folder name entered!", "Invalid Folder Name", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+
+ string directoryPath = GetContentSubDirectory("WiiU", "DLC", prompt.NewText);
+
+ if (Directory.Exists(directoryPath))
+ {
+ MessageBox.Show("A Folder with the same name already exists!", "Folder Name taken", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ Directory.CreateDirectory(directoryPath);
+
+ using OpenFileDialog fileDialog = new OpenFileDialog
+ {
+ Filter = "PCK (Minecraft Console Package)|*.pck"
+ };
+ if (fileDialog.ShowDialog(this) == DialogResult.OK)
+ {
+ File.Copy(fileDialog.FileName, Path.Combine(directoryPath, fileDialog.SafeFileName));
+ }
+ }
+
+ private void removePckToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ string pckName = DLCTreeView.SelectedNode.Text;
+ var result = MessageBox.Show($"Are you sure you want to permanently delete '{pckName}'?", "Hold up!", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
+ if (result == DialogResult.Yes)
+ {
+ string directoryPath = GetContentSubDirectory("WiiU", "DLC", pckName);
+ Directory.Delete(directoryPath, recursive: true);
+ DLCTreeView.SelectedNode.Remove();
+ }
+ }
+
+ private void DLCTreeView_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
+ {
+ openSkinPackToolStripMenuItem_Click(sender, e);
+ }
+
+ private void GameDirectoryTextBox_TextChanged(object sender, EventArgs e)
+ {
+ ListDLCs();
+ }
+ }
+}
diff --git a/PCK-Studio/Forms/Utilities/ConsoleInstaller.resx b/PCK-Studio/Features/CemuPanel.resx
similarity index 95%
rename from PCK-Studio/Forms/Utilities/ConsoleInstaller.resx
rename to PCK-Studio/Features/CemuPanel.resx
index b5e534e5..e04b8618 100644
--- a/PCK-Studio/Forms/Utilities/ConsoleInstaller.resx
+++ b/PCK-Studio/Features/CemuPanel.resx
@@ -117,10 +117,10 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
False
-
- False
+
+ 17, 17
\ No newline at end of file
diff --git a/PCK-Studio/Forms/Utilities/installWiiU.ja.resx b/PCK-Studio/Features/InstallWiiU.ja.resx
similarity index 100%
rename from PCK-Studio/Forms/Utilities/installWiiU.ja.resx
rename to PCK-Studio/Features/InstallWiiU.ja.resx
diff --git a/PCK-Studio/Features/PckManager.Designer.cs b/PCK-Studio/Features/PckManager.Designer.cs
new file mode 100644
index 00000000..9d06e8dc
--- /dev/null
+++ b/PCK-Studio/Features/PckManager.Designer.cs
@@ -0,0 +1,127 @@
+namespace PckStudio.Features
+{
+ partial class PckManager
+ {
+ ///
+ /// 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()
+ {
+ MetroFramework.Controls.MetroLabel metroLabel1;
+ MetroFramework.Controls.MetroLabel metroLabel2;
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PckManager));
+ this.supportedPlatformComboBox = new MetroFramework.Controls.MetroComboBox();
+ this.mainPanel = new System.Windows.Forms.TableLayoutPanel();
+ metroLabel1 = new MetroFramework.Controls.MetroLabel();
+ metroLabel2 = new MetroFramework.Controls.MetroLabel();
+ this.mainPanel.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // metroLabel1
+ //
+ metroLabel1.AutoSize = true;
+ metroLabel1.Location = new System.Drawing.Point(264, 73);
+ metroLabel1.Name = "metroLabel1";
+ metroLabel1.Size = new System.Drawing.Size(90, 19);
+ metroLabel1.Style = MetroFramework.MetroColorStyle.Black;
+ metroLabel1.TabIndex = 1;
+ metroLabel1.Text = "Console Type:";
+ metroLabel1.Theme = MetroFramework.MetroThemeStyle.Dark;
+ //
+ // metroLabel2
+ //
+ metroLabel2.AutoSize = true;
+ metroLabel2.Dock = System.Windows.Forms.DockStyle.Fill;
+ metroLabel2.Location = new System.Drawing.Point(3, 0);
+ metroLabel2.Name = "metroLabel2";
+ metroLabel2.Size = new System.Drawing.Size(183, 35);
+ metroLabel2.Style = MetroFramework.MetroColorStyle.Black;
+ metroLabel2.TabIndex = 13;
+ metroLabel2.Text = "Platform type:";
+ metroLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ metroLabel2.Theme = MetroFramework.MetroThemeStyle.Dark;
+ //
+ // supportedPlatformComboBox
+ //
+ this.supportedPlatformComboBox.BackColor = System.Drawing.SystemColors.Window;
+ this.supportedPlatformComboBox.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.supportedPlatformComboBox.FormattingEnabled = true;
+ this.supportedPlatformComboBox.ItemHeight = 23;
+ this.supportedPlatformComboBox.Location = new System.Drawing.Point(192, 3);
+ this.supportedPlatformComboBox.Name = "supportedPlatformComboBox";
+ this.supportedPlatformComboBox.PromptText = "Select Platform";
+ this.supportedPlatformComboBox.Size = new System.Drawing.Size(184, 29);
+ this.supportedPlatformComboBox.Style = MetroFramework.MetroColorStyle.Black;
+ this.supportedPlatformComboBox.TabIndex = 0;
+ this.supportedPlatformComboBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.supportedPlatformComboBox.UseSelectable = true;
+ this.supportedPlatformComboBox.SelectedIndexChanged += new System.EventHandler(this.supportedPlatformComboBox_SelectedIndexChanged);
+ //
+ // mainPanel
+ //
+ this.mainPanel.BackColor = System.Drawing.Color.Transparent;
+ this.mainPanel.ColumnCount = 2;
+ this.mainPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
+ this.mainPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
+ this.mainPanel.Controls.Add(this.supportedPlatformComboBox, 1, 0);
+ this.mainPanel.Controls.Add(metroLabel2, 0, 0);
+ this.mainPanel.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.mainPanel.Location = new System.Drawing.Point(20, 60);
+ this.mainPanel.Margin = new System.Windows.Forms.Padding(0);
+ this.mainPanel.Name = "mainPanel";
+ this.mainPanel.RowCount = 2;
+ this.mainPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F));
+ this.mainPanel.RowStyles.Add(new System.Windows.Forms.RowStyle());
+ this.mainPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+ this.mainPanel.Size = new System.Drawing.Size(379, 560);
+ this.mainPanel.TabIndex = 3;
+ //
+ // PckManager
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(419, 640);
+ this.Controls.Add(this.mainPanel);
+ this.Controls.Add(metroLabel1);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.MinimumSize = new System.Drawing.Size(419, 640);
+ this.Name = "PckManager";
+ this.Style = MetroFramework.MetroColorStyle.Silver;
+ this.Text = "Pck Manager";
+ this.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.mainPanel.ResumeLayout(false);
+ this.mainPanel.PerformLayout();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private MetroFramework.Controls.MetroComboBox supportedPlatformComboBox;
+ private System.Windows.Forms.TableLayoutPanel mainPanel;
+ }
+}
\ No newline at end of file
diff --git a/PCK-Studio/Features/PckManager.cs b/PCK-Studio/Features/PckManager.cs
new file mode 100644
index 00000000..a533ba84
--- /dev/null
+++ b/PCK-Studio/Features/PckManager.cs
@@ -0,0 +1,81 @@
+/* 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.Windows.Forms;
+
+namespace PckStudio.Features
+{
+ public partial class PckManager : MetroFramework.Forms.MetroForm
+ {
+ private Control currentlyShowingControl;
+ private const string CemU = "Cemu";
+
+ // TODO: Implement these Panels
+ private const string WiiU = "Wii U";
+ private const string PS3 = "Play Station 3";
+ private const string PSVita = "PS Vita";
+ private const string RPCS3 = "RPCS3";
+
+ public PckManager()
+ {
+ InitializeComponent();
+ supportedPlatformComboBox.Items.AddRange(new string[]
+ {
+ // WiiU,
+ // PS3,
+ // PSVita,
+ CemU,
+ // RPCS3,
+ });
+ }
+
+ protected override void OnGotFocus(EventArgs e)
+ {
+ currentlyShowingControl?.Focus();
+ }
+
+ private void supportedPlatformComboBox_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ mainPanel.Controls.Remove(currentlyShowingControl);
+ if (supportedPlatformComboBox.SelectedIndex > -1)
+ {
+ string text = supportedPlatformComboBox.Items[supportedPlatformComboBox.SelectedIndex].ToString();
+ try
+ {
+ currentlyShowingControl = text switch
+ {
+ CemU => new CemuPanel(),
+ //WiiU => new WiiUPanel(),
+ //PS3 => throw new NotImplementedException($"{text}-Panel is currently not implemented."),
+ //PSVita => throw new NotImplementedException($"{text}-Panel is currently not implemented."),
+ //RPCS3 => throw new NotImplementedException($"{text}-Panel is currently not implemented."),
+ _ => throw new Exception($"No Panel found for: {text}"),
+ };
+ currentlyShowingControl.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Bottom | AnchorStyles.Right;
+ mainPanel.SetColumnSpan(currentlyShowingControl, 2);
+ mainPanel.Controls.Add(currentlyShowingControl, 0, 1);
+ }
+ catch (NotImplementedException ex)
+ {
+ MessageBox.Show(ex.Message, "Not Implemented");
+ }
+
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/PCK-Studio/Features/PckManager.resx b/PCK-Studio/Features/PckManager.resx
new file mode 100644
index 00000000..8f491558
--- /dev/null
+++ b/PCK-Studio/Features/PckManager.resx
@@ -0,0 +1,2633 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ False
+
+
+ False
+
+
+
+
+ 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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
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAABAAAAAAEAAAEAAAAAAAEAAAABAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAABaZ2JhYWFiYmFhYmJhYWFiYWJqPgAAAAAA
+ AAAAAAAAZj4AAAAEAAAAAAQAAAAEAAAAAAROYQAAAAAAAAAAAABWAAwTExYWExMTExMTExYUFBQTCABc
+ AAAAAAAAAAAACEAAIThhYTJeMmBhV2FgT1NhYTIhAEEHAAAAAAAAAAAMPwQoMlZ/Qn5BfnNzfXxzc357
+ TiQEPwsAAAAAAAAAAAs/AidSi2k+h0mKeHuFhHt5h4NOIgU/CwAAAAAAAAAAC0AELFGQgnGSfIp4e5CN
+ dnqRkE8nBD8LAAAAAAAAAAALQAQpQXNlMC4ycXFycVhxX2ZxRCgEQAsAAAAAAAAAAAtCBShOgXU0MjKB
+ f2RlYYFldYFMKQVCDQAAAAAAAAAADUQIL1CKekRBP4mHNDJiioKEiVAoB0INAAAAAAAAAAANRAgsU46P
+ kI9ojo44MmiPjottRC8LQQsAAAAAAAAAAAtECi9clIh7lGuUlDcya5SSkoROKQtHCwAAAAAAAAAACk4P
+ LlyZk4qYcZiYbmxumXeMmFwvDUkLAAAAAAAAAAALTA8vXJaWl5Zvl5eXlm2WdIeWXC8PSQsAAAAAAAAA
+ AAtOETA3PjI+Mjg4ODg4OD43PjI4LxBPCwAAAAAAAAAAC08SMjk5Pjk+OTc5OTc0NzI3MjcuEk8LAAAA
+ AAAAAAAMVBMwPjg4ODg5PjkyIhkaGhsZHBgTTwoAAAAAAAAAAAtTFDI+Pj4+Pj4+MiEiLCgpLCwoFBZo
+ BAAAAAAAAAAAC1QZND4+Pj4+PkAyGjE0MjIwMh4YaGAAAAAAAAAAAAALVho0QD8+Pj4+PjIhPjQyODIi
+ G2hhAAAAAAAAAAAAAAtYHjI/Pz8/Pz9BMiE3Pjk4IRxqYAAAAAAAAAAAAAAAC1ggOEA/QEJBQEA0KD4+
+ PiEiamEAAAAAAAAAAAAAAAAMWiA3REFBQkRCQjIsQT8iImxgAAAAAAAAAAAAAAAAAAtcJD5CQURBREFB
+ OC8/IidsYQAAAAAAAAAAAAAAAAAACl0nMT5AQEBAQEE3KC8vcFwAAAAAAAAAAAAAAAAAAAAAYikhLCkp
+ KSkpJyIiLnFaAAAAAAAAAAAAAAAAAAAAAAB4WCwsLCwsLCwvLy9xVQAAAAAAAAAAAAAAAAAAAAAAAAB6
+ e3d3d3d3d3d3fl8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////4AAP/8AAA/+AAAH/gAAB/4AAAf+AAA
+ H/gAAB/4AAAf+AAAH/gAAB/4AAAf+AAAH/gAAB/4AAAf+AAAH/gAAB/4AAAf+AAAH/gAAD/4AAB/+AAA
+ //gAAf/4AAP/+AAH//gAD//4AB///AA//////////////////ygAAAAYAAAAMAAAAAEAIAAAAAAAABIA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAABMAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAA
+ GAAAABgAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAgAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAA/xcXF/8oKCj/KSkp/ykpKf8pKSn/KSkp/ykpKf8pKSn/KSkp
+ /ykpKf8pKSn/KSkp/ygoKP8AAAD/AAAA/wAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAA
+ /ysrK/81NTX/sbGx/zU1Nf+xsbH/NDQ0/7Gxsf80NDT/sbGx/zQ0NP80NDT/sbGx/zQ0NP8qKir/AAAA
+ /wAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApAAAA/ywsLP82Njb/1NTU/zY2Nv/U1NT/NjY2
+ /zY2Nv82Njb/NjY2/zY2Nv82Njb/NjY2/zY2Nv8sLCz/AAAA/wAAACoAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAApAAAA/y4uLv84ODj/+fn5/zg4OP/5+fn/ODg4/zc3N/83Nzf/+fn5/zc3N/83Nzf/+fn5
+ /zc3N/8tLS3/AAAA/wAAACoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApAgIC/y4uLv85OTn/ra2t
+ /zk5Of85OTn/lpaW/62trf+tra3/cXFx/62trf85OTn/ra2t/zk5Of8uLi7/AgIC/wAAACoAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAApBgYG/zAwMP87Ozv/v7+//zs7O/87Ozv/oqKi/7+/v/86Ojr/Ojo6
+ /7+/v/+/v7//v7+//zo6Ov8vLy//BQUF/wAAACoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApCQkJ
+ /zExMf88PDz/0dHR/9HR0f/R0dH/r6+v/9HR0f88PDz/PDw8/9HR0f/R0dH/PDw8/zw8PP8xMTH/CQkJ
+ /wAAACoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApDQ0N/zMzM/8+Pj7/5OTk/z4+Pv/k5OT/u7u7
+ /+Tk5P89PT3/PT09/+Tk5P89PT3/5OTk/z09Pf8yMjL/DAwM/wAAACoAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAApEBAQ/zMzM/8/Pz//9vb2//b29v/29vb/x8fH//b29v/29vb/jIyM//b29v8/Pz//9vb2
+ /z8/P/8zMzP/EBAQ/wAAACoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApFBQU/zU1Nf9BQUH/QUFB
+ /0FBQf9BQUH/QUFB/0FBQf9BQUH/QEBA/0BAQP9AQED/QEBA/0BAQP80NDT/ExMT/wAAACoAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAApGBgY/zY2Nv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv8/Pz//NjY2
+ /zQ0NP80NDT/NDQ0/zQ0NP8qKir/FxcX/wAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApGxsb
+ /zg4OP9ERET/RERE/0RERP9ERET/RERE/0NDQ/8eHh7/NjY2/zY2Nv82Njb/NjY2/zY2Nv8bGxv/Ghoa
+ /wAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApHx8f/zg4OP9FRUX/RUVF/0VFRf9FRUX/RUVF
+ /0FBQf8eHh7/Ozs7/zs7O/87Ozv/Ojo6/x4eHv8eHh7/AAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAApIiIi/zo6Ov9HR0f/R0dH/0dHR/9HR0f/R0dH/0JCQv8lJSX/QEBA/z8/P/8/Pz//IiIi
+ /yIiIv8AAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApJiYm/zs7O/9ISEj/SEhI
+ /0hISP9ISEj/SEhI/0NDQ/8pKSn/RERE/0RERP8lJSX/JSUl/wAAACUAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAApKSkp/z09Pf9KSkr/SkpK/0pKSv9KSkr/SkpK/0VFRf8sLCz/SUlJ
+ /ykpKf8pKSn/AAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoLS0t
+ /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=
+
+
+
\ No newline at end of file
diff --git a/PCK-Studio/Features/WiiUPanel.Designer.cs b/PCK-Studio/Features/WiiUPanel.Designer.cs
new file mode 100644
index 00000000..26c792f3
--- /dev/null
+++ b/PCK-Studio/Features/WiiUPanel.Designer.cs
@@ -0,0 +1,428 @@
+namespace PckStudio.Features
+{
+ partial class WiiUPanel
+ {
+ ///
+ /// 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 Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.myTablePanel1 = new System.Windows.Forms.TableLayoutPanel();
+ this.buttonServerToggle = new System.Windows.Forms.Button();
+ this.IPv4TextBox = new MetroFramework.Controls.MetroTextBox();
+ this.listViewPCKS = new System.Windows.Forms.ListView();
+ this.contextMenuStripCaffiine = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.replaceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.replacePCKToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.radioButtonUSB = new System.Windows.Forms.RadioButton();
+ this.TextBoxPackImage = new MetroFramework.Controls.MetroTextBox();
+ this.radioButtonSystem = new System.Windows.Forms.RadioButton();
+ this.buttonSelect = new System.Windows.Forms.Button();
+ this.PackImageSelection = new System.Windows.Forms.Button();
+ this.regionLayoutPanel = new System.Windows.Forms.TableLayoutPanel();
+ this.radioButtonEur = new System.Windows.Forms.RadioButton();
+ this.radioButtonUs = new System.Windows.Forms.RadioButton();
+ this.radioButtonJap = new System.Windows.Forms.RadioButton();
+ this.myTablePanel1.SuspendLayout();
+ this.contextMenuStripCaffiine.SuspendLayout();
+ this.regionLayoutPanel.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // myTablePanel1
+ //
+ this.myTablePanel1.BackColor = System.Drawing.Color.Black;
+ this.myTablePanel1.ColumnCount = 3;
+ this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
+ this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F));
+ this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F));
+ this.myTablePanel1.Controls.Add(this.buttonServerToggle, 2, 0);
+ this.myTablePanel1.Controls.Add(this.IPv4TextBox, 0, 0);
+ this.myTablePanel1.Controls.Add(this.listViewPCKS, 0, 4);
+ this.myTablePanel1.Controls.Add(this.radioButtonUSB);
+ this.myTablePanel1.Controls.Add(this.TextBoxPackImage, 0, 1);
+ this.myTablePanel1.Controls.Add(this.radioButtonSystem, 1, 2);
+ this.myTablePanel1.Controls.Add(this.buttonSelect, 0, 2);
+ this.myTablePanel1.Controls.Add(this.PackImageSelection, 2, 1);
+ this.myTablePanel1.Controls.Add(this.regionLayoutPanel, 0, 3);
+ this.myTablePanel1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.myTablePanel1.Location = new System.Drawing.Point(0, 0);
+ this.myTablePanel1.Margin = new System.Windows.Forms.Padding(0);
+ this.myTablePanel1.Name = "myTablePanel1";
+ this.myTablePanel1.RowCount = 8;
+ this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
+ this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
+ this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F));
+ this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 46F));
+ this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
+ this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
+ this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
+ this.myTablePanel1.Size = new System.Drawing.Size(430, 550);
+ this.myTablePanel1.TabIndex = 3;
+ //
+ // buttonServerToggle
+ //
+ this.buttonServerToggle.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+ this.buttonServerToggle.BackColor = System.Drawing.Color.SpringGreen;
+ this.buttonServerToggle.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.buttonServerToggle.Enabled = false;
+ this.buttonServerToggle.FlatAppearance.BorderSize = 0;
+ this.buttonServerToggle.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.buttonServerToggle.Font = new System.Drawing.Font("Segoe UI", 9.75F);
+ this.buttonServerToggle.ForeColor = System.Drawing.Color.White;
+ this.buttonServerToggle.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.buttonServerToggle.Location = new System.Drawing.Point(289, 3);
+ this.buttonServerToggle.Name = "buttonServerToggle";
+ this.buttonServerToggle.Size = new System.Drawing.Size(138, 27);
+ this.buttonServerToggle.TabIndex = 9;
+ this.buttonServerToggle.Text = "Start";
+ this.buttonServerToggle.UseVisualStyleBackColor = false;
+ this.buttonServerToggle.Click += new System.EventHandler(this.buttonServerToggle_Click);
+ //
+ // IPv4TextBox
+ //
+ this.IPv4TextBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ this.myTablePanel1.SetColumnSpan(this.IPv4TextBox, 2);
+ //
+ //
+ //
+ this.IPv4TextBox.CustomButton.Image = null;
+ this.IPv4TextBox.CustomButton.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.IPv4TextBox.CustomButton.Location = new System.Drawing.Point(312, 1);
+ this.IPv4TextBox.CustomButton.Name = "";
+ this.IPv4TextBox.CustomButton.Size = new System.Drawing.Size(25, 25);
+ this.IPv4TextBox.CustomButton.Style = MetroFramework.MetroColorStyle.Blue;
+ this.IPv4TextBox.CustomButton.TabIndex = 1;
+ this.IPv4TextBox.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light;
+ this.IPv4TextBox.CustomButton.UseSelectable = true;
+ this.IPv4TextBox.CustomButton.Visible = false;
+ this.IPv4TextBox.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.IPv4TextBox.IconRight = true;
+ this.IPv4TextBox.Lines = new string[0];
+ this.IPv4TextBox.Location = new System.Drawing.Point(3, 3);
+ this.IPv4TextBox.MaxLength = 32767;
+ this.IPv4TextBox.Name = "IPv4TextBox";
+ this.IPv4TextBox.PasswordChar = '\0';
+ this.IPv4TextBox.PromptText = "Wii U IP";
+ this.IPv4TextBox.ScrollBars = System.Windows.Forms.ScrollBars.None;
+ this.IPv4TextBox.SelectedText = "";
+ this.IPv4TextBox.SelectionLength = 0;
+ this.IPv4TextBox.SelectionStart = 0;
+ this.IPv4TextBox.ShortcutsEnabled = true;
+ this.IPv4TextBox.Size = new System.Drawing.Size(280, 27);
+ this.IPv4TextBox.Style = MetroFramework.MetroColorStyle.Blue;
+ this.IPv4TextBox.TabIndex = 10;
+ this.IPv4TextBox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.IPv4TextBox.UseSelectable = true;
+ this.IPv4TextBox.WaterMark = "Wii U IP";
+ this.IPv4TextBox.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109)))));
+ this.IPv4TextBox.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel);
+ //
+ // listViewPCKS
+ //
+ this.listViewPCKS.Activation = System.Windows.Forms.ItemActivation.TwoClick;
+ this.myTablePanel1.SetColumnSpan(this.listViewPCKS, 3);
+ this.listViewPCKS.ContextMenuStrip = this.contextMenuStripCaffiine;
+ this.listViewPCKS.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.listViewPCKS.Enabled = false;
+ this.listViewPCKS.HideSelection = false;
+ this.listViewPCKS.Location = new System.Drawing.Point(3, 151);
+ this.listViewPCKS.Name = "listViewPCKS";
+ this.listViewPCKS.Size = new System.Drawing.Size(424, 396);
+ this.listViewPCKS.TabIndex = 3;
+ this.listViewPCKS.UseCompatibleStateImageBehavior = false;
+ this.listViewPCKS.View = System.Windows.Forms.View.Details;
+ this.listViewPCKS.MouseDown += new System.Windows.Forms.MouseEventHandler(this.listViewPCKS_MouseDown);
+ //
+ // contextMenuStripCaffiine
+ //
+ this.contextMenuStripCaffiine.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.replaceToolStripMenuItem,
+ this.replacePCKToolStripMenuItem});
+ this.contextMenuStripCaffiine.Name = "contextMenuStripCaffiine";
+ this.contextMenuStripCaffiine.Size = new System.Drawing.Size(212, 48);
+ //
+ // replaceToolStripMenuItem
+ //
+ this.replaceToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Replace;
+ this.replaceToolStripMenuItem.Name = "replaceToolStripMenuItem";
+ this.replaceToolStripMenuItem.Size = new System.Drawing.Size(211, 22);
+ this.replaceToolStripMenuItem.Text = "Replace";
+ this.replaceToolStripMenuItem.TextImageRelation = System.Windows.Forms.TextImageRelation.TextAboveImage;
+ this.replaceToolStripMenuItem.Click += new System.EventHandler(this.replaceToolStripMenuItem_Click);
+ //
+ // replacePCKToolStripMenuItem
+ //
+ this.replacePCKToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Replace;
+ this.replacePCKToolStripMenuItem.Name = "replacePCKToolStripMenuItem";
+ this.replacePCKToolStripMenuItem.Size = new System.Drawing.Size(211, 22);
+ this.replacePCKToolStripMenuItem.Text = "Replace with external PCK";
+ this.replacePCKToolStripMenuItem.Click += new System.EventHandler(this.replacePCKToolStripMenuItem_Click);
+ //
+ // radioButtonUSB
+ //
+ this.radioButtonUSB.Appearance = System.Windows.Forms.Appearance.Button;
+ this.radioButtonUSB.BackColor = System.Drawing.Color.Transparent;
+ this.radioButtonUSB.CheckAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.radioButtonUSB.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.radioButtonUSB.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal;
+ this.radioButtonUSB.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
+ this.radioButtonUSB.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
+ this.radioButtonUSB.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.radioButtonUSB.Font = new System.Drawing.Font("Segoe UI", 12F);
+ this.radioButtonUSB.ForeColor = System.Drawing.Color.White;
+ this.radioButtonUSB.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.radioButtonUSB.Location = new System.Drawing.Point(289, 69);
+ this.radioButtonUSB.Name = "radioButtonUSB";
+ this.radioButtonUSB.Size = new System.Drawing.Size(138, 30);
+ this.radioButtonUSB.TabIndex = 6;
+ this.radioButtonUSB.Text = "USB";
+ this.radioButtonUSB.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.radioButtonUSB.UseVisualStyleBackColor = false;
+ this.radioButtonUSB.Click += new System.EventHandler(this.radioButton_Click);
+ //
+ // TextBoxPackImage
+ //
+ this.TextBoxPackImage.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ this.myTablePanel1.SetColumnSpan(this.TextBoxPackImage, 2);
+ //
+ //
+ //
+ this.TextBoxPackImage.CustomButton.Image = null;
+ this.TextBoxPackImage.CustomButton.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.TextBoxPackImage.CustomButton.Location = new System.Drawing.Point(312, 1);
+ this.TextBoxPackImage.CustomButton.Name = "";
+ this.TextBoxPackImage.CustomButton.Size = new System.Drawing.Size(25, 25);
+ this.TextBoxPackImage.CustomButton.Style = MetroFramework.MetroColorStyle.Blue;
+ this.TextBoxPackImage.CustomButton.TabIndex = 1;
+ this.TextBoxPackImage.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light;
+ this.TextBoxPackImage.CustomButton.UseSelectable = true;
+ this.TextBoxPackImage.CustomButton.Visible = false;
+ this.TextBoxPackImage.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.TextBoxPackImage.IconRight = true;
+ this.TextBoxPackImage.Lines = new string[0];
+ this.TextBoxPackImage.Location = new System.Drawing.Point(3, 36);
+ this.TextBoxPackImage.MaxLength = 32767;
+ this.TextBoxPackImage.Name = "TextBoxPackImage";
+ this.TextBoxPackImage.PasswordChar = '\0';
+ this.TextBoxPackImage.PromptText = "Pack Image";
+ this.TextBoxPackImage.ReadOnly = true;
+ this.TextBoxPackImage.ScrollBars = System.Windows.Forms.ScrollBars.None;
+ this.TextBoxPackImage.SelectedText = "";
+ this.TextBoxPackImage.SelectionLength = 0;
+ this.TextBoxPackImage.SelectionStart = 0;
+ this.TextBoxPackImage.ShortcutsEnabled = true;
+ this.TextBoxPackImage.Size = new System.Drawing.Size(280, 27);
+ this.TextBoxPackImage.Style = MetroFramework.MetroColorStyle.Blue;
+ this.TextBoxPackImage.TabIndex = 11;
+ this.TextBoxPackImage.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.TextBoxPackImage.UseSelectable = true;
+ this.TextBoxPackImage.WaterMark = "Pack Image";
+ this.TextBoxPackImage.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109)))));
+ this.TextBoxPackImage.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel);
+ //
+ // radioButtonSystem
+ //
+ this.radioButtonSystem.Appearance = System.Windows.Forms.Appearance.Button;
+ this.radioButtonSystem.BackColor = System.Drawing.Color.Transparent;
+ this.radioButtonSystem.CheckAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.radioButtonSystem.Checked = true;
+ this.radioButtonSystem.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.radioButtonSystem.FlatAppearance.CheckedBackColor = System.Drawing.Color.DodgerBlue;
+ this.radioButtonSystem.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
+ this.radioButtonSystem.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
+ this.radioButtonSystem.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.radioButtonSystem.Font = new System.Drawing.Font("Segoe UI", 12F);
+ this.radioButtonSystem.ForeColor = System.Drawing.Color.White;
+ this.radioButtonSystem.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.radioButtonSystem.Location = new System.Drawing.Point(146, 69);
+ this.radioButtonSystem.Name = "radioButtonSystem";
+ this.radioButtonSystem.Size = new System.Drawing.Size(137, 30);
+ this.radioButtonSystem.TabIndex = 5;
+ this.radioButtonSystem.TabStop = true;
+ this.radioButtonSystem.Text = "System";
+ this.radioButtonSystem.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.radioButtonSystem.UseVisualStyleBackColor = false;
+ this.radioButtonSystem.Click += new System.EventHandler(this.radioButton_Click);
+ //
+ // buttonSelect
+ //
+ this.buttonSelect.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+ this.buttonSelect.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.buttonSelect.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.buttonSelect.Font = new System.Drawing.Font("Segoe UI", 12F);
+ this.buttonSelect.ForeColor = System.Drawing.Color.White;
+ this.buttonSelect.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.buttonSelect.Location = new System.Drawing.Point(3, 69);
+ this.buttonSelect.Name = "buttonSelect";
+ this.buttonSelect.Size = new System.Drawing.Size(137, 30);
+ this.buttonSelect.TabIndex = 1;
+ this.buttonSelect.UseVisualStyleBackColor = true;
+ this.buttonSelect.Click += new System.EventHandler(this.buttonSelect_Click);
+ //
+ // PackImageSelection
+ //
+ this.PackImageSelection.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+ this.PackImageSelection.BackColor = System.Drawing.Color.DarkCyan;
+ this.PackImageSelection.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.PackImageSelection.Enabled = false;
+ this.PackImageSelection.FlatAppearance.BorderSize = 0;
+ this.PackImageSelection.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.PackImageSelection.Font = new System.Drawing.Font("Segoe UI", 9.75F);
+ this.PackImageSelection.ForeColor = System.Drawing.Color.White;
+ this.PackImageSelection.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.PackImageSelection.Location = new System.Drawing.Point(289, 36);
+ this.PackImageSelection.Name = "PackImageSelection";
+ this.PackImageSelection.Size = new System.Drawing.Size(138, 27);
+ this.PackImageSelection.TabIndex = 12;
+ this.PackImageSelection.Text = "Browse";
+ this.PackImageSelection.UseVisualStyleBackColor = false;
+ this.PackImageSelection.Click += new System.EventHandler(this.PackImageSelection_Click);
+ //
+ // regionLayoutPanel
+ //
+ this.regionLayoutPanel.ColumnCount = 3;
+ this.myTablePanel1.SetColumnSpan(this.regionLayoutPanel, 3);
+ this.regionLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
+ this.regionLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
+ this.regionLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
+ this.regionLayoutPanel.Controls.Add(this.radioButtonEur, 0, 0);
+ this.regionLayoutPanel.Controls.Add(this.radioButtonUs, 1, 0);
+ this.regionLayoutPanel.Controls.Add(this.radioButtonJap, 2, 0);
+ this.regionLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.regionLayoutPanel.Location = new System.Drawing.Point(3, 105);
+ this.regionLayoutPanel.Name = "regionLayoutPanel";
+ this.regionLayoutPanel.RowCount = 1;
+ this.regionLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle());
+ this.regionLayoutPanel.Size = new System.Drawing.Size(424, 40);
+ this.regionLayoutPanel.TabIndex = 13;
+ //
+ // radioButtonEur
+ //
+ this.radioButtonEur.Appearance = System.Windows.Forms.Appearance.Button;
+ this.radioButtonEur.AutoSize = true;
+ this.radioButtonEur.BackColor = System.Drawing.Color.Transparent;
+ this.radioButtonEur.CheckAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.radioButtonEur.Checked = true;
+ this.radioButtonEur.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.radioButtonEur.FlatAppearance.CheckedBackColor = System.Drawing.Color.DodgerBlue;
+ this.radioButtonEur.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
+ this.radioButtonEur.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
+ this.radioButtonEur.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.radioButtonEur.Font = new System.Drawing.Font("Segoe UI", 12F);
+ this.radioButtonEur.ForeColor = System.Drawing.Color.White;
+ this.radioButtonEur.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.radioButtonEur.Location = new System.Drawing.Point(3, 3);
+ this.radioButtonEur.Name = "radioButtonEur";
+ this.radioButtonEur.Size = new System.Drawing.Size(135, 34);
+ this.radioButtonEur.TabIndex = 1;
+ this.radioButtonEur.TabStop = true;
+ this.radioButtonEur.Text = "EUR";
+ this.radioButtonEur.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.radioButtonEur.UseVisualStyleBackColor = false;
+ this.radioButtonEur.Click += new System.EventHandler(this.radioButton_Click);
+ //
+ // radioButtonUs
+ //
+ this.radioButtonUs.Appearance = System.Windows.Forms.Appearance.Button;
+ this.radioButtonUs.AutoSize = true;
+ this.radioButtonUs.BackColor = System.Drawing.Color.Transparent;
+ this.radioButtonUs.CheckAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.radioButtonUs.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.radioButtonUs.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal;
+ this.radioButtonUs.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
+ this.radioButtonUs.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
+ this.radioButtonUs.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.radioButtonUs.Font = new System.Drawing.Font("Segoe UI", 12F);
+ this.radioButtonUs.ForeColor = System.Drawing.Color.White;
+ this.radioButtonUs.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.radioButtonUs.Location = new System.Drawing.Point(144, 3);
+ this.radioButtonUs.Name = "radioButtonUs";
+ this.radioButtonUs.Size = new System.Drawing.Size(135, 34);
+ this.radioButtonUs.TabIndex = 0;
+ this.radioButtonUs.Text = "US";
+ this.radioButtonUs.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.radioButtonUs.UseVisualStyleBackColor = false;
+ this.radioButtonUs.Click += new System.EventHandler(this.radioButton_Click);
+ //
+ // radioButtonJap
+ //
+ this.radioButtonJap.Appearance = System.Windows.Forms.Appearance.Button;
+ this.radioButtonJap.AutoSize = true;
+ this.radioButtonJap.BackColor = System.Drawing.Color.Transparent;
+ this.radioButtonJap.CheckAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.radioButtonJap.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.radioButtonJap.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal;
+ this.radioButtonJap.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
+ this.radioButtonJap.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
+ this.radioButtonJap.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.radioButtonJap.Font = new System.Drawing.Font("Segoe UI", 12F);
+ this.radioButtonJap.ForeColor = System.Drawing.Color.White;
+ this.radioButtonJap.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.radioButtonJap.Location = new System.Drawing.Point(285, 3);
+ this.radioButtonJap.Name = "radioButtonJap";
+ this.radioButtonJap.Size = new System.Drawing.Size(136, 34);
+ this.radioButtonJap.TabIndex = 2;
+ this.radioButtonJap.Text = "JAP";
+ this.radioButtonJap.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.radioButtonJap.UseVisualStyleBackColor = false;
+ this.radioButtonJap.Click += new System.EventHandler(this.radioButton_Click);
+ //
+ // WiiUPanel
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.BackColor = System.Drawing.SystemColors.ActiveCaptionText;
+ this.Controls.Add(this.myTablePanel1);
+ this.Name = "WiiUPanel";
+ this.Size = new System.Drawing.Size(430, 550);
+ this.myTablePanel1.ResumeLayout(false);
+ this.contextMenuStripCaffiine.ResumeLayout(false);
+ this.regionLayoutPanel.ResumeLayout(false);
+ this.regionLayoutPanel.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.TableLayoutPanel myTablePanel1;
+ private System.Windows.Forms.Button buttonServerToggle;
+ private System.Windows.Forms.Button buttonSelect;
+ private System.Windows.Forms.RadioButton radioButtonSystem;
+ private System.Windows.Forms.RadioButton radioButtonUSB;
+ private System.Windows.Forms.RadioButton radioButtonEur;
+ private System.Windows.Forms.RadioButton radioButtonUs;
+ private System.Windows.Forms.RadioButton radioButtonJap;
+ private MetroFramework.Controls.MetroTextBox IPv4TextBox;
+ private System.Windows.Forms.ListView listViewPCKS;
+ private MetroFramework.Controls.MetroTextBox TextBoxPackImage;
+ private System.Windows.Forms.Button PackImageSelection;
+ private System.Windows.Forms.ContextMenuStrip contextMenuStripCaffiine;
+ private System.Windows.Forms.ToolStripMenuItem replaceToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem replacePCKToolStripMenuItem;
+ private System.Windows.Forms.TableLayoutPanel regionLayoutPanel;
+ }
+}
diff --git a/PCK-Studio/Features/WiiUPanel.cs b/PCK-Studio/Features/WiiUPanel.cs
new file mode 100644
index 00000000..e1f3aab4
--- /dev/null
+++ b/PCK-Studio/Features/WiiUPanel.cs
@@ -0,0 +1,290 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Text.RegularExpressions;
+using System.Windows.Forms;
+using OMI.Formats.Archive;
+using OMI.Formats.Pck;
+using OMI.Workers.Archive;
+using OMI.Workers.Pck;
+using PckStudio.Classes.Misc;
+
+namespace PckStudio.Features
+{
+ public partial class WiiUPanel : UserControl
+ {
+ string DLCPath = string.Empty;
+ string mod = string.Empty;
+ bool serverOn = false;
+ ConsoleArchive archive = new ConsoleArchive();
+ PckFile currentPCK = null;
+
+ private const string FtpUsername = "PCK_Studio_Client";
+ // TODO: randomize per 'session'(instance)
+ private const string FtpSessionPassword = "a3262443";
+ private ICredentials sessionCredentials = new NetworkCredential(FtpUsername, FtpSessionPassword);
+
+ public WiiUPanel()
+ {
+ InitializeComponent();
+ UpdateDLCPath();
+ buttonServerToggle.Enabled = true;
+ if (listViewPCKS.Columns.Count == 0)
+ {
+ listViewPCKS.Columns.Add(DLCPath, listViewPCKS.Width);
+ }
+ }
+
+ [Obsolete("Prompt user to use Aroma instead!")]
+ private void buttonSelect_Click(object sender, EventArgs e)
+ {
+ MessageBox.Show("Please use Aroma's ftp Plugin!");
+ return;
+ }
+
+ private enum ButtonState
+ {
+ Start,
+ Stop,
+ Wait
+ }
+
+ private void SetButtonState(ButtonState state)
+ {
+ switch(state)
+ {
+ case ButtonState.Start:
+ buttonServerToggle.BackColor = Color.FromArgb(68, 178, 13);
+ serverOn = false;
+ buttonServerToggle.Text = "Start";
+ listViewPCKS.Enabled = false;
+ break;
+ case ButtonState.Stop:
+ serverOn = true;
+ buttonServerToggle.BackColor = Color.Red;
+ buttonServerToggle.Text = "Stop";
+ listViewPCKS.Enabled = true;
+ break;
+ case ButtonState.Wait:
+ buttonServerToggle.BackColor = Color.MediumAquamarine;
+ buttonServerToggle.Text = "Wait..";
+ break;
+ default:
+ break;
+ }
+ }
+
+ private string GetConsoleDevice()
+ {
+ if (radioButtonSystem.Checked)
+ {
+ return "storage_mlc";
+ }
+ if (radioButtonUSB.Checked)
+ {
+ return "storage_usb";
+ }
+ throw new Exception("how did you get here ?");
+ }
+
+ private string GetConsoleRegion()
+ {
+ if (radioButtonEur.Checked)
+ {
+ return "101d7500";
+ }
+ if (radioButtonUs.Checked)
+ {
+ return "101d9d00";
+ }
+ if (radioButtonJap.Checked)
+ {
+ return "101dbe00";
+ }
+ throw new Exception("how did you get here ?");
+ }
+
+ private string GetGameContentPath()
+ {
+ string device = GetConsoleDevice();
+ string region = GetConsoleRegion();
+ return $"{device}/usr/title/0005000e/{region}/content";
+ }
+
+ private void UpdateDLCPath()
+ {
+ DLCPath = $"{GetGameContentPath()}/WiiU/DLC/";
+ }
+
+ private void buttonServerToggle_Click(object sender, EventArgs e)
+ {
+ //Turn off server
+ if (serverOn)
+ {
+ listViewPCKS.Items.Clear();
+ try
+ {
+ SetButtonState(ButtonState.Start);
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.ToString());
+ }
+ return;
+ }
+
+ if (!Regex.IsMatch(IPv4TextBox.Text, @"^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$"))
+ {
+ MessageBox.Show("Please enter a valid Wii U IP!");
+ return;
+ }
+
+ // Turn on server
+ try
+ {
+ SetButtonState(ButtonState.Wait);
+
+ ServicePointManager.Expect100Continue = true;
+
+ using (var client = new FTPClient($"ftp://{IPv4TextBox.Text}", sessionCredentials))
+ {
+ client.SetTimeoutLimit(TimeSpan.FromSeconds(10));
+ string[] dirList = client.ListDirectory(DLCPath);
+ listViewPCKS.Items.AddRange(dirList.Select(s => new ListViewItem(s)).ToArray());
+ foreach (ListViewItem pck in listViewPCKS.Items)
+ {
+ string[] res = client.ListDirectory($"{DLCPath}/{pck.Text}");
+ if (res.Length != 1)
+ {
+ pck.Remove();
+ }
+ }
+ }
+
+ SetButtonState(ButtonState.Stop);
+ }
+ catch (Exception ex)
+ {
+ SetButtonState(ButtonState.Start);
+ MessageBox.Show(ex.ToString());
+ }
+ }
+
+ private void radioButton_Click(object sender, EventArgs e)
+ {
+ UpdateDLCPath();
+ listViewPCKS.Columns[0].Text = DLCPath;
+ }
+
+ private void listViewPCKS_MouseDown(object sender, MouseEventArgs e)
+ {
+ ListViewHitTestInfo hitTestInfo = listViewPCKS.HitTest(e.Location);
+ if (e.Button == MouseButtons.Right && hitTestInfo.Location != ListViewHitTestLocations.None)
+ {
+ contextMenuStripCaffiine.Show(Cursor.Position);
+ }
+ }
+
+ private void replaceToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ if (listViewPCKS.SelectedItems.Count != 0)
+ {
+ SetButtonState(ButtonState.Wait);
+ ReplacePck(mod);
+ MessageBox.Show("PCK Replaced!");
+ }
+ SetButtonState(ButtonState.Stop);
+ UpdateDLCPath();
+ }
+
+ private void replacePCKToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ if (listViewPCKS.SelectedItems.Count != 0)
+ {
+ SetButtonState(ButtonState.Wait);
+ OpenFileDialog openPCK = new OpenFileDialog();
+ openPCK.Filter = "PCK File|*.pck";
+
+ if (openPCK.ShowDialog() == DialogResult.OK)
+ {
+ ReplacePck(openPCK.FileName);
+ MessageBox.Show("PCK Replaced!");
+ }
+ }
+ SetButtonState(ButtonState.Stop);
+ UpdateDLCPath();
+ }
+
+ private void ReplacePck(string filename)
+ {
+ using (FTPClient client = new FTPClient($"ftp://{IPv4TextBox.Text}", sessionCredentials))
+ client.UploadFile(filename, DLCPath + "/" + listViewPCKS.SelectedItems[0].Text + "/" + listViewPCKS.SelectedItems[0].Tag.ToString());
+ if (!string.IsNullOrWhiteSpace(TextBoxPackImage.Text))
+ {
+ string PackID = GetPackId(filename);
+ GetARCFromConsole();
+ AddOrReplacePackImage(PackID);
+ SendARCToConsole();
+ }
+ }
+
+ private string GetPackId(string filepath)
+ {
+ var reader = new PckFileReader();
+ currentPCK = reader.FromFile(filepath);
+ if (currentPCK is null) return string.Empty;
+ return currentPCK.TryGetFile("0", PckFile.FileData.FileType.InfoFile, out var file)
+ ? file.Properties.GetProperty("PACKID").Item2
+ : string.Empty;
+ }
+
+ private void GetARCFromConsole()
+ {
+ using var ms = new MemoryStream();
+ using (FTPClient client = new FTPClient($"ftp://{IPv4TextBox.Text}", sessionCredentials))
+ {
+ client.DownloadFile(GetGameContentPath() + "/Common/Media/MediaWiiU.arc", ms);
+ ms.Position = 0;
+ var reader = new ARCFileReader();
+ archive = reader.FromStream(ms);
+ }
+ }
+
+ private void AddOrReplacePackImage(string packId)
+ {
+ string arcPath = $"Graphics\\PackGraphics\\{packId}.png";
+ byte[] data = File.ReadAllBytes(TextBoxPackImage.Text);
+ if (archive.ContainsKey(arcPath)) archive[arcPath] = data;
+ else archive.Add(arcPath, data);
+ }
+
+ private void SendARCToConsole()
+ {
+ using (FTPClient client = new FTPClient($"ftp://{IPv4TextBox.Text}", sessionCredentials))
+ {
+ using (var ms = new MemoryStream())
+ {
+ var writer = new ARCFileWriter(archive);
+ writer.WriteToStream(ms);
+ ms.Position = 0;
+ client.UploadFile(ms, GetGameContentPath() + "/Common/Media/MediaWiiU.arc");
+ }
+ archive.Clear();
+ currentPCK?.Files.Clear();
+ currentPCK = null;
+ }
+ GC.Collect();
+ }
+
+ private void PackImageSelection_Click(object sender, EventArgs e)
+ {
+ OpenFileDialog ofd = new OpenFileDialog();
+ ofd.Filter = "Pack Image|*.png";
+ if (ofd.ShowDialog() == DialogResult.OK)
+ TextBoxPackImage.Text = ofd.FileName;
+ }
+ }
+}
diff --git a/PCK-Studio/Forms/Utilities/installPS3.resx b/PCK-Studio/Features/WiiUPanel.resx
similarity index 100%
rename from PCK-Studio/Forms/Utilities/installPS3.resx
rename to PCK-Studio/Features/WiiUPanel.resx
diff --git a/PCK-Studio/Forms/Utilities/installWiiU.resx b/PCK-Studio/Features/installWiiU.resx
similarity index 100%
rename from PCK-Studio/Forms/Utilities/installWiiU.resx
rename to PCK-Studio/Features/installWiiU.resx
diff --git a/PCK-Studio/Forms/Additional-Popups/EntityForms/AddEntry.cs b/PCK-Studio/Forms/Additional-Popups/EntityForms/AddEntry.cs
index 1d2ec6f8..85b9a19c 100644
--- a/PCK-Studio/Forms/Additional-Popups/EntityForms/AddEntry.cs
+++ b/PCK-Studio/Forms/Additional-Popups/EntityForms/AddEntry.cs
@@ -10,15 +10,14 @@ namespace PckStudio.Forms.Additional_Popups.EntityForms
{
string selectedEntity = "";
- JObject EntityJSONData;
+ private static JObject EntityJSONData = JObject.Parse(Properties.Resources.entityData);
public string SelectedEntity => selectedEntity;
List treeViewEntityCache = new List();
- public AddEntry(JObject entityData, System.Drawing.Image[] entityImages)
+ public AddEntry(string dataType, System.Drawing.Image[] entityImages)
{
InitializeComponent();
- EntityJSONData = entityData;
ImageList entities = new ImageList();
entities.ColorDepth = ColorDepth.Depth32Bit;
entities.ImageSize = new System.Drawing.Size(32, 32);
@@ -29,9 +28,9 @@ namespace PckStudio.Forms.Additional_Popups.EntityForms
{
int i = 0;
- if (EntityJSONData["entities"] != null)
+ if (EntityJSONData[dataType] != null)
{
- foreach (JObject content in EntityJSONData["entities"].Children())
+ foreach (JObject content in EntityJSONData[dataType].Children())
{
foreach (JProperty prop in content.Properties())
{
diff --git a/PCK-Studio/Forms/Editor/Animation.cs b/PCK-Studio/Forms/Editor/Animation.cs
index 66f25134..c6733dc5 100644
--- a/PCK-Studio/Forms/Editor/Animation.cs
+++ b/PCK-Studio/Forms/Editor/Animation.cs
@@ -14,29 +14,28 @@ namespace PckStudio.Forms.Editor
public int FrameCount => frames.Count;
- public int TextureCount => frameTextures.Count;
+ public int TextureCount => textures.Count;
- public Frame this[int frameIndex] => frames[frameIndex];
-
- // TODO: implement this
public bool Interpolate { get; set; } = false;
- private readonly List frameTextures;
+ private readonly List textures;
private readonly List frames = new List();
- public Animation(IEnumerable image)
+ public Animation(IEnumerable textures)
{
- frameTextures = new List(image);
+ this.textures = new List(textures);
+ AddSingleFrames();
+ }
+
+ public Animation(IEnumerable frameTextures, string ANIM)
+ {
+ this.textures = new List(frameTextures);
+ ParseAnim(ANIM);
}
- public Animation(IEnumerable frameTextures, string ANIM) : this(frameTextures)
- {
- ParseAnim(ANIM);
- }
-
- public struct Frame
+ public class Frame
{
public readonly Image Texture;
public int Ticks;
@@ -51,23 +50,22 @@ namespace PckStudio.Forms.Editor
}
}
- private void ParseAnim(string ANIM)
+ 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);
+ _ = anim ?? throw new ArgumentNullException(nameof(anim));
+ anim = anim.Trim();
+ 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);
- }
+ {
+ AddSingleFrames();
+ return;
+ }
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);
@@ -76,22 +74,35 @@ namespace PckStudio.Forms.Editor
// 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]);
+ int currentFrameTime = frameData.Length < 2 || 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)
+ private void CheckTextureIndex(int index)
{
- if (frameTextureIndex < 0 || frameTextureIndex >= frameTextures.Count)
- throw new ArgumentOutOfRangeException(nameof(frameTextureIndex));
- Frame f = new Frame(frameTextures[frameTextureIndex], frameTime);
- frames.Add(f);
- return f;
+ if ((index < 0 || index >= textures.Count))
+ throw new ArgumentOutOfRangeException(nameof(index));
+ }
+
+ public Frame AddFrame(int textureIndex) => AddFrame(textureIndex, MinimumFrameTime);
+ public Frame AddFrame(int textureIndex, int frameTime)
+ {
+ CheckTextureIndex(textureIndex);
+ Frame frame = new Frame(textures[textureIndex], frameTime);
+ frames.Add(frame);
+ return frame;
}
+ private void AddSingleFrames()
+ {
+ for (int i = 0; i < TextureCount; i++)
+ {
+ AddFrame(i);
+ }
+ }
+
public bool RemoveFrame(int frameIndex)
{
frames.RemoveAt(frameIndex);
@@ -105,22 +116,26 @@ namespace PckStudio.Forms.Editor
return frames;
}
- public List GetFrameTextures()
+ public List GetTextures()
{
- return frameTextures;
+ return textures;
}
public int GetTextureIndex(Image frameTexture)
{
_ = frameTexture ?? throw new ArgumentNullException(nameof(frameTexture));
- return frameTextures.IndexOf(frameTexture);
+ return textures.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)
+ public void SetFrame(int frameIndex, Frame frame)
{
- frames[frameIndex] = new Frame(frameTextures[frameTextureIndex], frameTime);
+ frames[frameIndex] = frame;
+ }
+
+ public void SetFrame(int frameIndex, int textureIndex, int frameTime = MinimumFrameTime)
+ {
+ CheckTextureIndex(textureIndex);
+ SetFrame(frameIndex, new Frame(textures[textureIndex], frameTime));
}
public string BuildAnim()
@@ -131,16 +146,12 @@ namespace PckStudio.Forms.Editor
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)
+ public Image BuildTexture()
+ {
+ if (textures[0].Width != textures[0].Height)
throw new Exception("Invalid size");
- var textures = isClockOrCompass ? linearImages : frameTextures;
-
- return ImageExtensions.CombineImages(textures, ImageLayoutDirection.Vertical);
+ return textures.CombineImages(ImageLayoutDirection.Vertical);
}
}
}
diff --git a/PCK-Studio/Forms/Editor/AnimationEditor.Designer.cs b/PCK-Studio/Forms/Editor/AnimationEditor.Designer.cs
index d43d2f57..16162ca0 100644
--- a/PCK-Studio/Forms/Editor/AnimationEditor.Designer.cs
+++ b/PCK-Studio/Forms/Editor/AnimationEditor.Designer.cs
@@ -49,15 +49,15 @@
this.setBulkSpedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.javaAnimationSupportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.InterpolationCheckbox = new MetroFramework.Controls.MetroCheckBox();
- this.AnimationPlayBtn = new MetroFramework.Controls.MetroButton();
- this.AnimationStopBtn = new MetroFramework.Controls.MetroButton();
+ this.AnimationStartStopBtn = new MetroFramework.Controls.MetroButton();
this.tileLabel = new MetroFramework.Controls.MetroLabel();
+ this.animationPictureBox = new PckStudio.Forms.Editor.AnimationPictureBox();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
- this.pictureBoxWithInterpolationMode1 = new PckStudio.ToolboxItems.PictureBoxWithInterpolationMode();
+ this.importGifToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.contextMenuStrip1.SuspendLayout();
this.menuStrip.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.animationPictureBox)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.pictureBoxWithInterpolationMode1)).BeginInit();
this.SuspendLayout();
//
// frameTreeView
@@ -151,7 +151,8 @@
this.bulkAnimationSpeedToolStripMenuItem,
this.importJavaAnimationToolStripMenuItem,
this.exportJavaAnimationToolStripMenuItem,
- this.changeTileToolStripMenuItem});
+ this.changeTileToolStripMenuItem,
+ this.importGifToolStripMenuItem});
this.editToolStripMenuItem.ForeColor = System.Drawing.Color.White;
this.editToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Tools_48px;
this.editToolStripMenuItem.Name = "editToolStripMenuItem";
@@ -231,37 +232,24 @@
this.InterpolationCheckbox.AutoSize = true;
this.InterpolationCheckbox.Location = new System.Drawing.Point(161, 63);
this.InterpolationCheckbox.Name = "InterpolationCheckbox";
- this.InterpolationCheckbox.Size = new System.Drawing.Size(231, 15);
+ this.InterpolationCheckbox.Size = new System.Drawing.Size(129, 15);
this.InterpolationCheckbox.TabIndex = 17;
- this.InterpolationCheckbox.Text = "Enable Interpolation (not shown below)";
+ this.InterpolationCheckbox.Text = "Enable Interpolation";
this.InterpolationCheckbox.Theme = MetroFramework.MetroThemeStyle.Dark;
this.InterpolationCheckbox.UseSelectable = true;
this.InterpolationCheckbox.CheckedChanged += new System.EventHandler(this.InterpolationCheckbox_CheckedChanged);
//
- // AnimationPlayBtn
+ // AnimationStartStopBtn
//
- this.AnimationPlayBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.AnimationPlayBtn.Location = new System.Drawing.Point(157, 317);
- this.AnimationPlayBtn.Name = "AnimationPlayBtn";
- this.AnimationPlayBtn.Size = new System.Drawing.Size(116, 24);
- this.AnimationPlayBtn.TabIndex = 18;
- this.AnimationPlayBtn.Text = "Play Animation";
- this.AnimationPlayBtn.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.AnimationPlayBtn.UseSelectable = true;
- this.AnimationPlayBtn.Click += new System.EventHandler(this.StartAnimationBtn_Click);
- //
- // AnimationStopBtn
- //
- this.AnimationStopBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.AnimationStopBtn.Enabled = false;
- this.AnimationStopBtn.Location = new System.Drawing.Point(276, 317);
- this.AnimationStopBtn.Name = "AnimationStopBtn";
- this.AnimationStopBtn.Size = new System.Drawing.Size(116, 24);
- this.AnimationStopBtn.TabIndex = 19;
- this.AnimationStopBtn.Text = "Stop Animation";
- this.AnimationStopBtn.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.AnimationStopBtn.UseSelectable = true;
- this.AnimationStopBtn.Click += new System.EventHandler(this.StopAnimationBtn_Click);
+ this.AnimationStartStopBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.AnimationStartStopBtn.Location = new System.Drawing.Point(157, 317);
+ this.AnimationStartStopBtn.Name = "AnimationStartStopBtn";
+ this.AnimationStartStopBtn.Size = new System.Drawing.Size(232, 24);
+ this.AnimationStartStopBtn.TabIndex = 18;
+ this.AnimationStartStopBtn.Text = "Play Animation";
+ this.AnimationStartStopBtn.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.AnimationStartStopBtn.UseSelectable = true;
+ this.AnimationStartStopBtn.Click += new System.EventHandler(this.AnimationStartStopBtn_Click);
//
// tileLabel
//
@@ -275,26 +263,34 @@
this.tileLabel.Text = "tileLabel";
this.tileLabel.Theme = MetroFramework.MetroThemeStyle.Dark;
//
+ // animationPictureBox
+ //
+ this.animationPictureBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.animationPictureBox.Location = new System.Drawing.Point(157, 88);
+ this.animationPictureBox.Name = "animationPictureBox";
+ this.animationPictureBox.Size = new System.Drawing.Size(235, 223);
+ this.animationPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
+ this.animationPictureBox.TabIndex = 16;
+ this.animationPictureBox.TabStop = false;
+ //
// pictureBox1
//
+ this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
this.pictureBox1.Location = new System.Drawing.Point(154, 60);
this.pictureBox1.Name = "pictureBox1";
- this.pictureBox1.Size = new System.Drawing.Size(244, 24);
+ this.pictureBox1.Size = new System.Drawing.Size(255, 24);
this.pictureBox1.TabIndex = 21;
this.pictureBox1.TabStop = false;
//
- // pictureBoxWithInterpolationMode1
+ // importGifToolStripMenuItem
//
- this.pictureBoxWithInterpolationMode1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.pictureBoxWithInterpolationMode1.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
- this.pictureBoxWithInterpolationMode1.Location = new System.Drawing.Point(157, 88);
- this.pictureBoxWithInterpolationMode1.Name = "pictureBoxWithInterpolationMode1";
- this.pictureBoxWithInterpolationMode1.Size = new System.Drawing.Size(235, 223);
- this.pictureBoxWithInterpolationMode1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
- this.pictureBoxWithInterpolationMode1.TabIndex = 16;
- this.pictureBoxWithInterpolationMode1.TabStop = false;
+ this.importGifToolStripMenuItem.Name = "importGifToolStripMenuItem";
+ this.importGifToolStripMenuItem.Size = new System.Drawing.Size(210, 22);
+ this.importGifToolStripMenuItem.Text = "Import Gif";
+ this.importGifToolStripMenuItem.Click += new System.EventHandler(this.importGifToolStripMenuItem_Click);
//
// AnimationEditor
//
@@ -304,10 +300,9 @@
this.ClientSize = new System.Drawing.Size(412, 362);
this.Controls.Add(this.InterpolationCheckbox);
this.Controls.Add(this.pictureBox1);
- this.Controls.Add(this.AnimationStopBtn);
- this.Controls.Add(this.AnimationPlayBtn);
+ this.Controls.Add(this.AnimationStartStopBtn);
this.Controls.Add(this.tileLabel);
- this.Controls.Add(this.pictureBoxWithInterpolationMode1);
+ this.Controls.Add(this.animationPictureBox);
this.Controls.Add(this.frameTreeView);
this.Controls.Add(this.menuStrip);
this.Font = new System.Drawing.Font("Segoe UI", 8.25F);
@@ -321,8 +316,8 @@
this.contextMenuStrip1.ResumeLayout(false);
this.menuStrip.ResumeLayout(false);
this.menuStrip.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.animationPictureBox)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.pictureBoxWithInterpolationMode1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
@@ -334,13 +329,12 @@
private System.Windows.Forms.MenuStrip menuStrip;
private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem saveToolStripMenuItem1;
- private PckStudio.ToolboxItems.PictureBoxWithInterpolationMode pictureBoxWithInterpolationMode1;
+ private PckStudio.Forms.Editor.AnimationPictureBox animationPictureBox;
private MetroFramework.Controls.MetroCheckBox InterpolationCheckbox;
- private MetroFramework.Controls.MetroButton AnimationPlayBtn;
+ private MetroFramework.Controls.MetroButton AnimationStartStopBtn;
private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
private System.Windows.Forms.ToolStripMenuItem addFrameToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem removeFrameToolStripMenuItem;
- private MetroFramework.Controls.MetroButton AnimationStopBtn;
private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem bulkAnimationSpeedToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem importJavaAnimationToolStripMenuItem;
@@ -353,6 +347,7 @@
private System.Windows.Forms.ToolStripMenuItem setBulkSpedToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem javaAnimationSupportToolStripMenuItem;
private System.Windows.Forms.ImageList TextureIcons;
- private System.Windows.Forms.PictureBox pictureBox1;
- }
+ private System.Windows.Forms.PictureBox pictureBox1;
+ private System.Windows.Forms.ToolStripMenuItem importGifToolStripMenuItem;
+ }
}
\ No newline at end of file
diff --git a/PCK-Studio/Forms/Editor/AnimationEditor.cs b/PCK-Studio/Forms/Editor/AnimationEditor.cs
index 6ced4063..0e13ed43 100644
--- a/PCK-Studio/Forms/Editor/AnimationEditor.cs
+++ b/PCK-Studio/Forms/Editor/AnimationEditor.cs
@@ -11,6 +11,7 @@ using PckStudio.Forms.Additional_Popups.Animation;
using PckStudio.Forms.Utilities;
using PckStudio.Extensions;
using OMI.Formats.Pck;
+using System.Collections.Generic;
namespace PckStudio.Forms.Editor
{
@@ -18,7 +19,6 @@ namespace PckStudio.Forms.Editor
{
PckFile.FileData animationFile;
Animation currentAnimation;
- AnimationPlayer player;
bool isItem = false;
string animationSection => AnimationResources.GetAnimationSection(isItem);
@@ -40,10 +40,9 @@ namespace PckStudio.Forms.Editor
TileName = Path.GetFileNameWithoutExtension(file.Filename);
InterpolationCheckbox.Visible = !IsEditingSpecial;
- InterpolationCheckbox.Checked = InterpolationCheckbox.Visible;
- bulkAnimationSpeedToolStripMenuItem.Enabled = InterpolationCheckbox.Visible;
- importJavaAnimationToolStripMenuItem.Enabled = InterpolationCheckbox.Visible;
- exportJavaAnimationToolStripMenuItem.Enabled = InterpolationCheckbox.Visible;
+ bulkAnimationSpeedToolStripMenuItem.Enabled = !IsEditingSpecial;
+ importJavaAnimationToolStripMenuItem.Enabled = !IsEditingSpecial;
+ exportJavaAnimationToolStripMenuItem.Enabled = !IsEditingSpecial;
animationFile = file;
@@ -54,7 +53,6 @@ namespace PckStudio.Forms.Editor
currentAnimation = animationFile.Properties.HasProperty("ANIM")
? new Animation(frameTextures, animationFile.Properties.GetPropertyValue("ANIM"))
: new Animation(frameTextures);
- player = new AnimationPlayer(pictureBoxWithInterpolationMode1);
foreach (JObject content in AnimationResources.tileData[animationSection].Children())
{
@@ -74,7 +72,7 @@ namespace PckStudio.Forms.Editor
frameTreeView.Nodes.Clear();
// $"Frame: {i}, Frame Time: {Animation.MinimumFrameTime}"
TextureIcons.Images.Clear();
- TextureIcons.Images.AddRange(currentAnimation.GetFrameTextures().ToArray());
+ TextureIcons.Images.AddRange(currentAnimation.GetTextures().ToArray());
foreach (var frame in currentAnimation.GetFrames())
{
var imageIndex = currentAnimation.GetTextureIndex(frame.Texture);
@@ -84,37 +82,29 @@ namespace PckStudio.Forms.Editor
SelectedImageIndex = imageIndex,
});
}
- player.SelectFrame(currentAnimation, 0);
+ animationPictureBox.SelectFrame(currentAnimation, 0);
}
private void frameTreeView_AfterSelect(object sender, TreeViewEventArgs e)
{
- if (player.IsPlaying && !AnimationPlayBtn.Enabled)
- AnimationPlayBtn.Enabled = !(AnimationStopBtn.Enabled = !AnimationStopBtn.Enabled);
- player.SelectFrame(currentAnimation, frameTreeView.SelectedNode.Index);
+ if (animationPictureBox.IsPlaying)
+ AnimationStartStopBtn.Text = "Play Animation";
+ animationPictureBox.SelectFrame(currentAnimation, frameTreeView.SelectedNode.Index);
}
- private int mix(double ratio, int val1, int val2) // Ported from Java Edition code
+ private void AnimationStartStopBtn_Click(object sender, EventArgs e)
{
- return (int)(ratio * val1 + (1.0D - ratio) * val2);
- }
-
- private void StartAnimationBtn_Click(object sender, EventArgs e)
- {
- // prevent player from crashing
- player.Stop();
- AnimationPlayBtn.Enabled = !(AnimationStopBtn.Enabled = !AnimationStopBtn.Enabled);
- if (currentAnimation.FrameCount > 1)
+ if (animationPictureBox.IsPlaying)
{
- player.SetContext(pictureBoxWithInterpolationMode1);
- player.Start(currentAnimation);
+ AnimationStartStopBtn.Text = "Play Animation";
+ animationPictureBox.Stop();
+ return;
+ }
+ if (currentAnimation.FrameCount > 1)
+ {
+ animationPictureBox.Start(currentAnimation);
+ AnimationStartStopBtn.Text = "Stop Animation";
}
- }
-
- private void StopAnimationBtn_Click(object sender, EventArgs e)
- {
- AnimationPlayBtn.Enabled = !(AnimationStopBtn.Enabled = !AnimationStopBtn.Enabled);
- player.Stop();
}
private void frameTreeView_KeyDown(object sender, KeyEventArgs e)
@@ -135,17 +125,19 @@ namespace PckStudio.Forms.Editor
private void saveToolStripMenuItem1_Click(object sender, EventArgs e)
{
- string anim = currentAnimation.BuildAnim();
-
- animationFile.Properties.SetProperty("ANIM", IsEditingSpecial ? "" : anim);
- using (var stream = new MemoryStream())
+ if (!IsEditingSpecial)
{
- var texture = currentAnimation.BuildTexture(IsEditingSpecial);
- texture.Save(stream, ImageFormat.Png);
- animationFile.SetData(stream.ToArray());
+ string anim = currentAnimation.BuildAnim();
+ animationFile.Properties.SetProperty("ANIM", anim);
+ using (var stream = new MemoryStream())
+ {
+ var texture = currentAnimation.BuildTexture();
+ texture.Save(stream, ImageFormat.Png);
+ animationFile.SetData(stream.ToArray());
+ }
+ //Reusing this for the tile path
+ TileName = "res/textures/" + (isItem ? "items/" : "blocks/") + TileName + ".png" ;
}
- //Reusing this for the tile path
- TileName = "res/textures/" + (isItem ? "items/" : "blocks/") + TileName + ".png" ;
DialogResult = DialogResult.OK;
}
@@ -232,8 +224,11 @@ namespace PckStudio.Forms.Editor
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
- * rather than the actual frame that was clicked. I've just switched to passing the index to fix this for now. -Matt
+ /* Found a bug here. When passing the frame variable,
+ * it would replace the first instance of that frame and time
+ * rather than the actual frame that was clicked.
+ * I've just switched to passing the index to fix this for now.
+ * - Matt
*/
currentAnimation.SetFrame(frameTreeView.SelectedNode.Index, diag.FrameTextureIndex, diag.FrameTime);
@@ -294,8 +289,7 @@ namespace PckStudio.Forms.Editor
MessageBox.Show(textureFile + " was not found", "Texture not found");
return;
}
- using MemoryStream textureMem = new MemoryStream(File.ReadAllBytes(textureFile));
- var textures = Image.FromStream(textureMem).CreateImageList(ImageLayoutDirection.Horizontal);
+ var textures = Image.FromFile(textureFile).CreateImageList(ImageLayoutDirection.Horizontal);
var new_animation = new Animation(textures);
try
{
@@ -382,7 +376,7 @@ namespace PckStudio.Forms.Editor
string jsondata = JsonConvert.SerializeObject(mcmeta, Formatting.Indented);
string filename = fileDialog.FileName;
File.WriteAllText(filename, jsondata);
- var finalTexture = currentAnimation.BuildTexture(isClockOrCompass: false);
+ var finalTexture = currentAnimation.BuildTexture();
finalTexture.Save(Path.GetFileNameWithoutExtension(filename)); // removes ".mcmeta" from filename!
MessageBox.Show("Animation was successfully exported to " + filename, "Export successful!");
}
@@ -437,10 +431,41 @@ namespace PckStudio.Forms.Editor
private void AnimationEditor_FormClosing(object sender, FormClosingEventArgs e)
{
- if (player.IsPlaying)
+ if (animationPictureBox.IsPlaying)
{
- player.Stop();
+ animationPictureBox.Stop();
}
}
+
+ private void importGifToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ OpenFileDialog fileDialog = new OpenFileDialog()
+ {
+ Filter = "GIF|*.gif"
+ };
+ if (fileDialog.ShowDialog(this) != DialogResult.OK)
+ return;
+
+ var gif = Image.FromFile(fileDialog.FileName);
+ if (!gif.RawFormat.Equals(ImageFormat.Gif))
+ {
+ MessageBox.Show("Selected file is not a gif", "Invalid file", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+
+
+ FrameDimension dimension = new FrameDimension(gif.FrameDimensionsList[0]);
+ int frameCount = gif.GetFrameCount(dimension);
+
+ var textures = new List(frameCount);
+
+ for (int i = 0; i < frameCount; i++)
+ {
+ gif.SelectActiveFrame(dimension, i);
+ textures.Add(new Bitmap(gif));
+ }
+ currentAnimation = new Animation(textures);
+ LoadAnimationTreeView();
+ }
}
}
diff --git a/PCK-Studio/Forms/Editor/AnimationPictureBox.cs b/PCK-Studio/Forms/Editor/AnimationPictureBox.cs
new file mode 100644
index 00000000..4985525f
--- /dev/null
+++ b/PCK-Studio/Forms/Editor/AnimationPictureBox.cs
@@ -0,0 +1,114 @@
+using System;
+using System.Threading;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading.Tasks;
+using System.Drawing.Drawing2D;
+using System.Runtime.CompilerServices;
+
+using PckStudio.Extensions;
+
+namespace PckStudio.Forms.Editor
+{
+ internal class AnimationPictureBox : PictureBox
+ {
+ public bool IsPlaying => _isPlaying;
+
+ 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(AnimationPictureBox.Stop)} called from {callerName}!");
+ cts.Cancel();
+ }
+
+ public void SelectFrame(Animation animation, int index)
+ {
+ if (IsPlaying)
+ Stop();
+ _animation = animation;
+ currentAnimationFrameIndex = index;
+ currentFrame = SetAnimationFrame(index);
+ }
+
+ private const int TickInMillisecond = 50; // 1 InGame tick
+
+ private bool _isPlaying = false;
+ private int currentAnimationFrameIndex = 0;
+ private Animation.Frame currentFrame;
+ private Animation _animation;
+ private CancellationTokenSource cts = new CancellationTokenSource();
+
+ protected override void OnPaint(PaintEventArgs pe)
+ {
+ pe.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor;
+ pe.Graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
+ base.OnPaint(pe);
+ }
+
+ private async void DoAnimate()
+ {
+ _ = _animation ?? throw new ArgumentNullException(nameof(_animation));
+ _isPlaying = true;
+ Animation.Frame nextFrame;
+ while (!cts.IsCancellationRequested)
+ {
+ if (currentAnimationFrameIndex >= _animation.FrameCount)
+ {
+ currentAnimationFrameIndex = 0;
+ }
+
+ if (currentAnimationFrameIndex + 1 >= _animation.FrameCount)
+ {
+ nextFrame = _animation.GetFrame(0);
+ }
+ else
+ {
+ nextFrame = _animation.GetFrame(currentAnimationFrameIndex + 1);
+ }
+
+ currentFrame = _animation.GetFrame(currentAnimationFrameIndex++);
+ if (_animation.Interpolate)
+ {
+ await InterpolateFrame(currentFrame, nextFrame);
+ continue;
+ }
+ SetAnimationFrame(currentFrame);
+ await Task.Delay(TickInMillisecond * currentFrame.Ticks);
+ }
+ _isPlaying = false;
+ }
+
+ private async Task InterpolateFrame(Animation.Frame currentFrame, Animation.Frame nextFrame)
+ {
+ for (int tick = 0; tick < currentFrame.Ticks && !cts.IsCancellationRequested; tick++)
+ {
+ double delta = 1.0f - tick / (double)currentFrame.Ticks;
+ if (!IsDisposed)
+ Invoke(() =>
+ {
+ if (!IsDisposed)
+ Image = currentFrame.Texture.Interpolate(nextFrame.Texture, delta);
+ });
+ await Task.Delay(TickInMillisecond);
+ }
+ }
+
+ private Animation.Frame SetAnimationFrame(int frameIndex)
+ {
+ var frame = _animation.GetFrame(frameIndex);
+ SetAnimationFrame(frame);
+ return frame;
+ }
+
+ private void SetAnimationFrame(Animation.Frame frame)
+ {
+ Invoke(() => Image = frame.Texture);
+ }
+ }
+}
diff --git a/PCK-Studio/Forms/Editor/AnimationPlayer.cs b/PCK-Studio/Forms/Editor/AnimationPlayer.cs
deleted file mode 100644
index bca7ca62..00000000
--- a/PCK-Studio/Forms/Editor/AnimationPlayer.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-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 a6c41e9c..c14407d5 100644
--- a/PCK-Studio/Forms/Editor/AudioEditor.Designer.cs
+++ b/PCK-Studio/Forms/Editor/AudioEditor.Designer.cs
@@ -29,243 +29,262 @@ 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.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.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.howToAddSongsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.whatIsEachCategoryToolStripMenuItem = 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.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.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.whatIsEachCategoryToolStripMenuItem = 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.convertToWAVToolStripMenuItem = 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.addCategoryStripMenuItem,
- this.removeCategoryStripMenuItem});
- 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);
- //
- // 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.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.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.creditsEditorToolStripMenuItem,
+ 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.deleteUnusedBINKAsToolStripMenuItem,
- this.openDataFolderToolStripMenuItem,
- this.bulkReplaceExistingTracksToolStripMenuItem});
- 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);
- //
- // helpToolStripMenuItem
- //
- this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.bulkReplaceExistingTracksToolStripMenuItem,
+ this.organizeTracksToolStripMenuItem});
+ this.toolsToolStripMenuItem.ForeColor = System.Drawing.Color.White;
+ this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem";
+ resources.ApplyResources(this.toolsToolStripMenuItem, "toolsToolStripMenuItem");
+ //
+ // 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.whatIsEachCategoryToolStripMenuItem,
this.howToEditCreditsToolStripMenuItem,
this.optimizeDataFolderToolStripMenuItem,
this.bINKACompressionToolStripMenuItem});
- this.helpToolStripMenuItem.ForeColor = System.Drawing.Color.White;
- this.helpToolStripMenuItem.Name = "helpToolStripMenuItem";
- resources.ApplyResources(this.helpToolStripMenuItem, "helpToolStripMenuItem");
+ this.organizeTracksToolStripMenuItem.Name = "organizeTracksToolStripMenuItem";
+ resources.ApplyResources(this.organizeTracksToolStripMenuItem, "organizeTracksToolStripMenuItem");
+ this.organizeTracksToolStripMenuItem.Click += new System.EventHandler(this.organizeTracksToolStripMenuItem_Click);
//
- // howToAddSongsToolStripMenuItem
- //
- this.howToAddSongsToolStripMenuItem.Name = "howToAddSongsToolStripMenuItem";
- resources.ApplyResources(this.howToAddSongsToolStripMenuItem, "howToAddSongsToolStripMenuItem");
- this.howToAddSongsToolStripMenuItem.Click += new System.EventHandler(this.howToAddSongsToolStripMenuItem_Click);
- //
- // whatIsEachCategoryToolStripMenuItem
- //
- this.whatIsEachCategoryToolStripMenuItem.Name = "whatIsEachCategoryToolStripMenuItem";
- resources.ApplyResources(this.whatIsEachCategoryToolStripMenuItem, "whatIsEachCategoryToolStripMenuItem");
- this.whatIsEachCategoryToolStripMenuItem.Click += new System.EventHandler(this.whatIsEachCategoryToolStripMenuItem_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";
+ // helpToolStripMenuItem
+ 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.whatIsEachCategoryToolStripMenuItem.Name = "whatIsEachCategoryToolStripMenuItem";
+ resources.ApplyResources(this.whatIsEachCategoryToolStripMenuItem, "whatIsEachCategoryToolStripMenuItem");
+ this.whatIsEachCategoryToolStripMenuItem.Click += new System.EventHandler(this.whatIsEachCategoryToolStripMenuItem_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.verifyFileLocationToolStripMenuItem,
+ this.convertToWAVToolStripMenuItem});
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;
+ 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);
+ //
+ // convertToWAVToolStripMenuItem
+ //
+ this.convertToWAVToolStripMenuItem.Name = "convertToWAVToolStripMenuItem";
+ resources.ApplyResources(this.convertToWAVToolStripMenuItem, "convertToWAVToolStripMenuItem");
+ this.convertToWAVToolStripMenuItem.Click += new System.EventHandler(this.convertToWAVToolStripMenuItem_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
//
- resources.ApplyResources(this.compressionUpDown, "compressionUpDown");
- this.compressionUpDown.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ this.compressionUpDown.BackColor = System.Drawing.Color.FromArgb(64, 64, 64);
this.compressionUpDown.ForeColor = System.Drawing.SystemColors.Window;
+ resources.ApplyResources(this.compressionUpDown, "compressionUpDown");
this.compressionUpDown.Maximum = new decimal(new int[] {
9,
0,
@@ -276,31 +295,34 @@ namespace PckStudio.Forms.Editor
0,
0,
0});
- 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.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
- 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.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.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();
this.Controls.Add(this.menuStrip);
- this.ForeColor = System.Drawing.Color.White;
this.Name = "AudioEditor";
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.AudioEditor_FormClosed);
this.Shown += new System.EventHandler(this.AudioEditor_Shown);
@@ -330,7 +352,6 @@ namespace PckStudio.Forms.Editor
private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem;
private System.Windows.Forms.ImageList catImages;
private System.Windows.Forms.ToolStripMenuItem toolsToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem creditsEditorToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem verifyFileLocationToolStripMenuItem;
private MetroFramework.Controls.MetroCheckBox playOverworldInCreative;
private System.Windows.Forms.ToolStripMenuItem deleteUnusedBINKAsToolStripMenuItem;
diff --git a/PCK-Studio/Forms/Editor/AudioEditor.cs b/PCK-Studio/Forms/Editor/AudioEditor.cs
index ce22a2c9..a4482b4b 100644
--- a/PCK-Studio/Forms/Editor/AudioEditor.cs
+++ b/PCK-Studio/Forms/Editor/AudioEditor.cs
@@ -16,10 +16,8 @@ using PckStudio.Classes.IO.PCK;
using OMI.Formats.Languages;
using OMI.Formats.Pck;
using PckStudio.Forms.Additional_Popups;
-using PckStudio.Forms.Additional_Popups.Audio;
-// Audio Editor by MattNL
-// additional work and optimization by Miku-666
+// Audio Editor by MattNL and Miku-666
namespace PckStudio.Forms.Editor
{
@@ -28,7 +26,6 @@ namespace PckStudio.Forms.Editor
public string defaultType = "yes";
PckAudioFile audioFile = null;
PckFile.FileData audioPCK;
- LOCFile loc;
bool _isLittleEndian = false;
MainForm parent = null;
@@ -56,10 +53,9 @@ namespace PckStudio.Forms.Editor
return (PckAudioFile.AudioCategory.EAudioType)Categories.IndexOf(category);
}
- public AudioEditor(PckFile.FileData file, LOCFile locFile, bool isLittleEndian)
+ public AudioEditor(PckFile.FileData file, bool isLittleEndian)
{
InitializeComponent();
- loc = locFile;
_isLittleEndian = isLittleEndian;
audioPCK = file;
@@ -76,9 +72,15 @@ namespace PckStudio.Forms.Editor
{
treeView1.BeginUpdate();
treeView1.Nodes.Clear();
+
foreach (var category in audioFile.Categories)
{
- if(category.audioType == PckAudioFile.AudioCategory.EAudioType.Creative)
+ // fix songs with directories using backslash instead of forward slash
+ // Songs with a backslash instead of a forward slash would not play in RPCS3
+ foreach (string songname in category.SongNames.FindAll(s => s.Contains('\\')))
+ category.SongNames[category.SongNames.IndexOf(songname)] = songname.Replace('\\', '/');
+
+ if (category.audioType == PckAudioFile.AudioCategory.EAudioType.Creative)
{
if (category.Name == "include_overworld" &&
audioFile.TryGetCategory(PckAudioFile.AudioCategory.EAudioType.Overworld, out PckAudioFile.AudioCategory overworldCategory))
@@ -419,14 +421,6 @@ namespace PckStudio.Forms.Editor
"You can edit the credits for the PCK in the Credits editor! No more managing credit IDs!\n\n", "Help");
}
- private void creditsEditorToolStripMenuItem_Click(object sender, EventArgs e)
- {
- var credits = audioFile.GetCreditsString();
- using (CreditsEditor prompt = new CreditsEditor(credits))
- if (prompt.ShowDialog() == DialogResult.OK)
- audioFile.SetCredits(prompt.Credits.Split('\n'));
- }
-
private void deleteUnusedBINKAsToolStripMenuItem_Click(object sender, EventArgs e)
{
DialogResult dr = MessageBox.Show("This will delete all unused BINKA songs in the Data directory. This cannot be undone. Are you sure you want to continue?", "Warning", MessageBoxButtons.YesNo);
@@ -610,12 +604,14 @@ namespace PckStudio.Forms.Editor
{
string song = category.SongNames[i];
string songpath = Path.Combine(parent.GetDataPath(), song + ".binka");
- if (File.Exists(songpath))
+ string new_path = Path.Combine(musicdir, Path.GetFileName(song) + ".binka");
+ if (File.Exists(songpath) && !File.Exists(new_path))
{
- File.Move(songpath, Path.Combine(musicdir, song + ".binka"));
- }
+ File.Move(songpath, new_path);
- category.SongNames[i] = Path.Combine("Music", song.Replace(song, Path.GetFileNameWithoutExtension(songpath)));
+ // Songs with a backslash instead of a forward slash were not playing in RPCS3
+ category.SongNames[i] = "Music/" + song.Replace(song, Path.GetFileNameWithoutExtension(songpath));
+ }
}
}
treeView2.Nodes.Clear();
diff --git a/PCK-Studio/Forms/Editor/AudioEditor.resx b/PCK-Studio/Forms/Editor/AudioEditor.resx
index 9e5ea696..d86c2d07 100644
--- a/PCK-Studio/Forms/Editor/AudioEditor.resx
+++ b/PCK-Studio/Forms/Editor/AudioEditor.resx
@@ -145,6 +145,12 @@
Remove Category
+
+ 168, 22
+
+
+ Set Category
+
169, 48
@@ -166,7 +172,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADk
- MAAAAk1TRnQBSQFMAgEBCQEAAZgBAAGYAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
+ MAAAAk1TRnQBSQFMAgEBCQEAAbABAAGwAQABEAEAARABAAT/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
@@ -404,68 +410,12 @@
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
@@ -482,17 +432,11 @@
Save
-
- 46, 20
+
+ 37, 20
-
- Tools
-
-
- 220, 22
-
-
- Credits Editor
+
+ File
220, 22
@@ -515,8 +459,14 @@
46, 20
-
- Help
+
+ Organize Tracks
+
+
+ 46, 20
+
+
+ Tools
243, 22
@@ -552,10 +502,10 @@
Help
- 0, 0
+ 20, 60
- 450, 24
+ 410, 24
11
@@ -590,31 +540,31 @@
- 180, 22
+ 173, 22
Add Entry
- 180, 22
+ 173, 22
Remove Entry
- 180, 22
+ 173, 22
Verify File Location
- 180, 22
+ 173, 22
Convert To WAV
- 181, 114
+ 174, 92
contextMenuStrip2
@@ -3293,12 +3243,6 @@
System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- creditsEditorToolStripMenuItem
-
-
- System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
deleteUnusedBINKAsToolStripMenuItem
diff --git a/PCK-Studio/Forms/Editor/BehaviourEditor.Designer.cs b/PCK-Studio/Forms/Editor/BehaviourEditor.Designer.cs
index 887f148a..074f2974 100644
--- a/PCK-Studio/Forms/Editor/BehaviourEditor.Designer.cs
+++ b/PCK-Studio/Forms/Editor/BehaviourEditor.Designer.cs
@@ -28,269 +28,284 @@
///
private void InitializeComponent()
{
- this.components = new System.ComponentModel.Container();
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BehaviourEditor));
- this.treeView1 = new System.Windows.Forms.TreeView();
- this.metroContextMenu1 = new MetroFramework.Controls.MetroContextMenu(this.components);
- this.addToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.addNewEntryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.addNewPositionOverrideToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.renameToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.removeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.menuStrip = new System.Windows.Forms.MenuStrip();
- this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.saveToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
- this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.MobIsTamedCheckbox = new MetroFramework.Controls.MetroCheckBox();
- this.MobHasSaddleCheckbox = new MetroFramework.Controls.MetroCheckBox();
- this.zUpDown = new System.Windows.Forms.NumericUpDown();
- this.yUpDown = new System.Windows.Forms.NumericUpDown();
- this.zLabel = new MetroFramework.Controls.MetroLabel();
- this.yLabel = new MetroFramework.Controls.MetroLabel();
- this.xUpDown = new System.Windows.Forms.NumericUpDown();
- this.xLabel = new MetroFramework.Controls.MetroLabel();
- this.metroContextMenu1.SuspendLayout();
- this.menuStrip.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.zUpDown)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.yUpDown)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.xUpDown)).BeginInit();
- this.SuspendLayout();
- //
- // treeView1
- //
- this.treeView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BehaviourEditor));
+ this.treeView1 = new System.Windows.Forms.TreeView();
+ this.metroContextMenu1 = new MetroFramework.Controls.MetroContextMenu(this.components);
+ this.addToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.addNewEntryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.addNewPositionOverrideToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.renameToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.removeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.menuStrip = new System.Windows.Forms.MenuStrip();
+ this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.saveToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
+ this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.MobIsTamedCheckbox = new MetroFramework.Controls.MetroCheckBox();
+ this.MobHasSaddleCheckbox = new MetroFramework.Controls.MetroCheckBox();
+ this.zUpDown = new System.Windows.Forms.NumericUpDown();
+ this.yUpDown = new System.Windows.Forms.NumericUpDown();
+ this.zLabel = new MetroFramework.Controls.MetroLabel();
+ this.yLabel = new MetroFramework.Controls.MetroLabel();
+ this.xUpDown = new System.Windows.Forms.NumericUpDown();
+ this.xLabel = new MetroFramework.Controls.MetroLabel();
+ this.metroContextMenu1.SuspendLayout();
+ this.menuStrip.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.zUpDown)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.yUpDown)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xUpDown)).BeginInit();
+ this.SuspendLayout();
+ //
+ // treeView1
+ //
+ this.treeView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
- this.treeView1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
- this.treeView1.ContextMenuStrip = this.metroContextMenu1;
- this.treeView1.ForeColor = System.Drawing.Color.White;
- this.treeView1.Location = new System.Drawing.Point(20, 84);
- this.treeView1.Margin = new System.Windows.Forms.Padding(0);
- this.treeView1.Name = "treeView1";
- this.treeView1.Size = new System.Drawing.Size(186, 176);
- this.treeView1.TabIndex = 13;
- this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);
- this.treeView1.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView1_NodeMouseClick);
- this.treeView1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeView1_KeyDown);
- this.treeView1.MouseHover += new System.EventHandler(this.treeView1_MouseHover);
- //
- // metroContextMenu1
- //
- this.metroContextMenu1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.treeView1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ this.treeView1.ContextMenuStrip = this.metroContextMenu1;
+ this.treeView1.ForeColor = System.Drawing.Color.White;
+ this.treeView1.Location = new System.Drawing.Point(20, 84);
+ this.treeView1.Margin = new System.Windows.Forms.Padding(0);
+ this.treeView1.Name = "treeView1";
+ this.treeView1.Size = new System.Drawing.Size(186, 176);
+ this.treeView1.TabIndex = 13;
+ this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);
+ this.treeView1.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView1_NodeMouseClick);
+ this.treeView1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeView1_KeyDown);
+ this.treeView1.MouseHover += new System.EventHandler(this.treeView1_MouseHover);
+ //
+ // metroContextMenu1
+ //
+ this.metroContextMenu1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.addToolStripMenuItem,
this.renameToolStripMenuItem,
this.removeToolStripMenuItem});
- this.metroContextMenu1.Name = "metroContextMenu1";
- this.metroContextMenu1.Size = new System.Drawing.Size(118, 70);
- //
- // addToolStripMenuItem
- //
- this.addToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.metroContextMenu1.Name = "metroContextMenu1";
+ this.metroContextMenu1.Size = new System.Drawing.Size(118, 70);
+ //
+ // addToolStripMenuItem
+ //
+ this.addToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.addNewEntryToolStripMenuItem,
this.addNewPositionOverrideToolStripMenuItem});
- this.addToolStripMenuItem.Name = "addToolStripMenuItem";
- this.addToolStripMenuItem.Size = new System.Drawing.Size(117, 22);
- this.addToolStripMenuItem.Text = "Add";
- //
- // addNewEntryToolStripMenuItem
- //
- this.addNewEntryToolStripMenuItem.Name = "addNewEntryToolStripMenuItem";
- this.addNewEntryToolStripMenuItem.Size = new System.Drawing.Size(217, 22);
- this.addNewEntryToolStripMenuItem.Text = "Add New Entry";
- this.addNewEntryToolStripMenuItem.Click += new System.EventHandler(this.addNewEntryToolStripMenuItem_Click);
- //
- // addNewPositionOverrideToolStripMenuItem
- //
- this.addNewPositionOverrideToolStripMenuItem.Name = "addNewPositionOverrideToolStripMenuItem";
- this.addNewPositionOverrideToolStripMenuItem.Size = new System.Drawing.Size(217, 22);
- this.addNewPositionOverrideToolStripMenuItem.Text = "Add New Position Override";
- this.addNewPositionOverrideToolStripMenuItem.Click += new System.EventHandler(this.addNewPositionOverrideToolStripMenuItem_Click);
- //
- // renameToolStripMenuItem
- //
- this.renameToolStripMenuItem.Name = "renameToolStripMenuItem";
- this.renameToolStripMenuItem.Size = new System.Drawing.Size(117, 22);
- this.renameToolStripMenuItem.Text = "Change";
- this.renameToolStripMenuItem.Click += new System.EventHandler(this.changeToolStripMenuItem_Click);
- //
- // removeToolStripMenuItem
- //
- this.removeToolStripMenuItem.Name = "removeToolStripMenuItem";
- this.removeToolStripMenuItem.Size = new System.Drawing.Size(117, 22);
- this.removeToolStripMenuItem.Text = "Remove";
- this.removeToolStripMenuItem.Click += new System.EventHandler(this.removeToolStripMenuItem_Click);
- //
- // menuStrip
- //
- this.menuStrip.AutoSize = false;
- 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.addToolStripMenuItem.Name = "addToolStripMenuItem";
+ this.addToolStripMenuItem.Size = new System.Drawing.Size(117, 22);
+ this.addToolStripMenuItem.Text = "Add";
+ //
+ // addNewEntryToolStripMenuItem
+ //
+ this.addNewEntryToolStripMenuItem.Name = "addNewEntryToolStripMenuItem";
+ this.addNewEntryToolStripMenuItem.Size = new System.Drawing.Size(217, 22);
+ this.addNewEntryToolStripMenuItem.Text = "Add New Entry";
+ this.addNewEntryToolStripMenuItem.Click += new System.EventHandler(this.addNewEntryToolStripMenuItem_Click);
+ //
+ // addNewPositionOverrideToolStripMenuItem
+ //
+ this.addNewPositionOverrideToolStripMenuItem.Name = "addNewPositionOverrideToolStripMenuItem";
+ this.addNewPositionOverrideToolStripMenuItem.Size = new System.Drawing.Size(217, 22);
+ this.addNewPositionOverrideToolStripMenuItem.Text = "Add New Position Override";
+ this.addNewPositionOverrideToolStripMenuItem.Click += new System.EventHandler(this.addNewPositionOverrideToolStripMenuItem_Click);
+ //
+ // renameToolStripMenuItem
+ //
+ this.renameToolStripMenuItem.Name = "renameToolStripMenuItem";
+ this.renameToolStripMenuItem.Size = new System.Drawing.Size(117, 22);
+ this.renameToolStripMenuItem.Text = "Change";
+ this.renameToolStripMenuItem.Click += new System.EventHandler(this.changeToolStripMenuItem_Click);
+ //
+ // removeToolStripMenuItem
+ //
+ this.removeToolStripMenuItem.Name = "removeToolStripMenuItem";
+ this.removeToolStripMenuItem.Size = new System.Drawing.Size(117, 22);
+ this.removeToolStripMenuItem.Text = "Remove";
+ this.removeToolStripMenuItem.Click += new System.EventHandler(this.removeToolStripMenuItem_Click);
+ //
+ // menuStrip
+ //
+ this.menuStrip.AutoSize = false;
+ 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.helpToolStripMenuItem});
- this.menuStrip.Location = new System.Drawing.Point(20, 60);
- this.menuStrip.Name = "menuStrip";
- this.menuStrip.Size = new System.Drawing.Size(309, 24);
- this.menuStrip.TabIndex = 14;
- this.menuStrip.Text = "menuStrip1";
- //
- // fileToolStripMenuItem
- //
- this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.menuStrip.Location = new System.Drawing.Point(20, 60);
+ this.menuStrip.Name = "menuStrip";
+ this.menuStrip.Size = new System.Drawing.Size(309, 24);
+ this.menuStrip.TabIndex = 14;
+ this.menuStrip.Text = "menuStrip1";
+ //
+ // fileToolStripMenuItem
+ //
+ this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.saveToolStripMenuItem1});
- this.fileToolStripMenuItem.ForeColor = System.Drawing.Color.White;
- this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
- this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
- this.fileToolStripMenuItem.Text = "File";
- //
- // saveToolStripMenuItem1
- //
- this.saveToolStripMenuItem1.Image = ((System.Drawing.Image)(resources.GetObject("saveToolStripMenuItem1.Image")));
- this.saveToolStripMenuItem1.Name = "saveToolStripMenuItem1";
- this.saveToolStripMenuItem1.Size = new System.Drawing.Size(98, 22);
- this.saveToolStripMenuItem1.Text = "Save";
- this.saveToolStripMenuItem1.Click += new System.EventHandler(this.saveToolStripMenuItem1_Click);
- //
- // helpToolStripMenuItem
- //
- this.helpToolStripMenuItem.ForeColor = System.Drawing.Color.White;
- this.helpToolStripMenuItem.Name = "helpToolStripMenuItem";
- this.helpToolStripMenuItem.Size = new System.Drawing.Size(44, 20);
- this.helpToolStripMenuItem.Text = "Help";
- //
- // MobIsTamedCheckbox
- //
- this.MobIsTamedCheckbox.AutoSize = true;
- this.MobIsTamedCheckbox.Enabled = false;
- this.MobIsTamedCheckbox.Location = new System.Drawing.Point(221, 104);
- this.MobIsTamedCheckbox.Name = "MobIsTamedCheckbox";
- this.MobIsTamedCheckbox.Size = new System.Drawing.Size(96, 15);
- this.MobIsTamedCheckbox.TabIndex = 22;
- this.MobIsTamedCheckbox.Text = "Mob is tamed";
- this.MobIsTamedCheckbox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.MobIsTamedCheckbox.UseSelectable = true;
- this.MobIsTamedCheckbox.CheckedChanged += new System.EventHandler(this.MobIsTamedCheckbox_CheckedChanged);
- //
- // MobHasSaddleCheckbox
- //
- this.MobHasSaddleCheckbox.AutoSize = true;
- this.MobHasSaddleCheckbox.Enabled = false;
- this.MobHasSaddleCheckbox.Location = new System.Drawing.Point(221, 136);
- this.MobHasSaddleCheckbox.Name = "MobHasSaddleCheckbox";
- this.MobHasSaddleCheckbox.Size = new System.Drawing.Size(106, 15);
- this.MobHasSaddleCheckbox.TabIndex = 23;
- this.MobHasSaddleCheckbox.Text = "Mob has saddle";
- this.MobHasSaddleCheckbox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.MobHasSaddleCheckbox.UseSelectable = true;
- this.MobHasSaddleCheckbox.CheckedChanged += new System.EventHandler(this.MobHasSaddleCheckbox_CheckedChanged);
- //
- // zUpDown
- //
- this.zUpDown.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(17)))), ((int)(((byte)(17)))), ((int)(((byte)(17)))));
- this.zUpDown.DecimalPlaces = 3;
- this.zUpDown.Enabled = false;
- this.zUpDown.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204)))));
- this.zUpDown.Location = new System.Drawing.Point(254, 220);
- this.zUpDown.Maximum = new decimal(new int[] {
+ this.fileToolStripMenuItem.ForeColor = System.Drawing.Color.White;
+ this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
+ this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
+ this.fileToolStripMenuItem.Text = "File";
+ //
+ // saveToolStripMenuItem1
+ //
+ this.saveToolStripMenuItem1.Image = ((System.Drawing.Image)(resources.GetObject("saveToolStripMenuItem1.Image")));
+ this.saveToolStripMenuItem1.Name = "saveToolStripMenuItem1";
+ this.saveToolStripMenuItem1.Size = new System.Drawing.Size(98, 22);
+ this.saveToolStripMenuItem1.Text = "Save";
+ this.saveToolStripMenuItem1.Click += new System.EventHandler(this.saveToolStripMenuItem1_Click);
+ //
+ // helpToolStripMenuItem
+ //
+ this.helpToolStripMenuItem.ForeColor = System.Drawing.Color.White;
+ this.helpToolStripMenuItem.Name = "helpToolStripMenuItem";
+ this.helpToolStripMenuItem.Size = new System.Drawing.Size(44, 20);
+ this.helpToolStripMenuItem.Text = "Help";
+ //
+ // MobIsTamedCheckbox
+ //
+ this.MobIsTamedCheckbox.AutoSize = true;
+ this.MobIsTamedCheckbox.Enabled = false;
+ this.MobIsTamedCheckbox.Location = new System.Drawing.Point(221, 104);
+ this.MobIsTamedCheckbox.Name = "MobIsTamedCheckbox";
+ this.MobIsTamedCheckbox.Size = new System.Drawing.Size(96, 15);
+ this.MobIsTamedCheckbox.TabIndex = 22;
+ this.MobIsTamedCheckbox.Text = "Mob is tamed";
+ this.MobIsTamedCheckbox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.MobIsTamedCheckbox.UseSelectable = true;
+ this.MobIsTamedCheckbox.CheckedChanged += new System.EventHandler(this.MobIsTamedCheckbox_CheckedChanged);
+ //
+ // MobHasSaddleCheckbox
+ //
+ this.MobHasSaddleCheckbox.AutoSize = true;
+ this.MobHasSaddleCheckbox.Enabled = false;
+ this.MobHasSaddleCheckbox.Location = new System.Drawing.Point(221, 136);
+ this.MobHasSaddleCheckbox.Name = "MobHasSaddleCheckbox";
+ this.MobHasSaddleCheckbox.Size = new System.Drawing.Size(106, 15);
+ this.MobHasSaddleCheckbox.TabIndex = 23;
+ this.MobHasSaddleCheckbox.Text = "Mob has saddle";
+ this.MobHasSaddleCheckbox.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.MobHasSaddleCheckbox.UseSelectable = true;
+ this.MobHasSaddleCheckbox.CheckedChanged += new System.EventHandler(this.MobHasSaddleCheckbox_CheckedChanged);
+ //
+ // zUpDown
+ //
+ this.zUpDown.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(17)))), ((int)(((byte)(17)))), ((int)(((byte)(17)))));
+ this.zUpDown.DecimalPlaces = 3;
+ this.zUpDown.Enabled = false;
+ this.zUpDown.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204)))));
+ this.zUpDown.Location = new System.Drawing.Point(254, 220);
+ this.zUpDown.Maximum = new decimal(new int[] {
255,
0,
0,
0});
- this.zUpDown.Name = "zUpDown";
- this.zUpDown.Size = new System.Drawing.Size(75, 20);
- this.zUpDown.TabIndex = 29;
- this.zUpDown.ValueChanged += new System.EventHandler(this.zUpDown_ValueChanged);
- //
- // yUpDown
- //
- this.yUpDown.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(17)))), ((int)(((byte)(17)))), ((int)(((byte)(17)))));
- this.yUpDown.DecimalPlaces = 3;
- this.yUpDown.Enabled = false;
- this.yUpDown.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204)))));
- this.yUpDown.Location = new System.Drawing.Point(254, 194);
- this.yUpDown.Maximum = new decimal(new int[] {
+ this.zUpDown.Minimum = new decimal(new int[] {
+ 255,
+ 0,
+ 0,
+ -2147483648});
+ this.zUpDown.Name = "zUpDown";
+ this.zUpDown.Size = new System.Drawing.Size(75, 20);
+ this.zUpDown.TabIndex = 29;
+ this.zUpDown.ValueChanged += new System.EventHandler(this.zUpDown_ValueChanged);
+ //
+ // yUpDown
+ //
+ this.yUpDown.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(17)))), ((int)(((byte)(17)))), ((int)(((byte)(17)))));
+ this.yUpDown.DecimalPlaces = 3;
+ this.yUpDown.Enabled = false;
+ this.yUpDown.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204)))));
+ this.yUpDown.Location = new System.Drawing.Point(254, 194);
+ this.yUpDown.Maximum = new decimal(new int[] {
255,
0,
0,
0});
- this.yUpDown.Name = "yUpDown";
- this.yUpDown.Size = new System.Drawing.Size(75, 20);
- this.yUpDown.TabIndex = 28;
- this.yUpDown.ValueChanged += new System.EventHandler(this.yUpDown_ValueChanged);
- //
- // zLabel
- //
- this.zLabel.AutoSize = true;
- this.zLabel.Location = new System.Drawing.Point(221, 220);
- this.zLabel.Name = "zLabel";
- this.zLabel.Size = new System.Drawing.Size(20, 19);
- this.zLabel.TabIndex = 25;
- this.zLabel.Text = "Z:";
- this.zLabel.Theme = MetroFramework.MetroThemeStyle.Dark;
- //
- // yLabel
- //
- this.yLabel.AutoSize = true;
- this.yLabel.Location = new System.Drawing.Point(222, 194);
- this.yLabel.Name = "yLabel";
- this.yLabel.Size = new System.Drawing.Size(20, 19);
- this.yLabel.TabIndex = 24;
- this.yLabel.Text = "Y:";
- this.yLabel.Theme = MetroFramework.MetroThemeStyle.Dark;
- //
- // xUpDown
- //
- this.xUpDown.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(17)))), ((int)(((byte)(17)))), ((int)(((byte)(17)))));
- this.xUpDown.DecimalPlaces = 3;
- this.xUpDown.Enabled = false;
- this.xUpDown.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204)))));
- this.xUpDown.Location = new System.Drawing.Point(254, 168);
- this.xUpDown.Maximum = new decimal(new int[] {
+ this.yUpDown.Minimum = new decimal(new int[] {
+ 255,
+ 0,
+ 0,
+ -2147483648});
+ this.yUpDown.Name = "yUpDown";
+ this.yUpDown.Size = new System.Drawing.Size(75, 20);
+ this.yUpDown.TabIndex = 28;
+ this.yUpDown.ValueChanged += new System.EventHandler(this.yUpDown_ValueChanged);
+ //
+ // zLabel
+ //
+ this.zLabel.AutoSize = true;
+ this.zLabel.Location = new System.Drawing.Point(221, 220);
+ this.zLabel.Name = "zLabel";
+ this.zLabel.Size = new System.Drawing.Size(20, 19);
+ this.zLabel.TabIndex = 25;
+ this.zLabel.Text = "Z:";
+ this.zLabel.Theme = MetroFramework.MetroThemeStyle.Dark;
+ //
+ // yLabel
+ //
+ this.yLabel.AutoSize = true;
+ this.yLabel.Location = new System.Drawing.Point(222, 194);
+ this.yLabel.Name = "yLabel";
+ this.yLabel.Size = new System.Drawing.Size(20, 19);
+ this.yLabel.TabIndex = 24;
+ this.yLabel.Text = "Y:";
+ this.yLabel.Theme = MetroFramework.MetroThemeStyle.Dark;
+ //
+ // xUpDown
+ //
+ this.xUpDown.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(17)))), ((int)(((byte)(17)))), ((int)(((byte)(17)))));
+ this.xUpDown.DecimalPlaces = 3;
+ this.xUpDown.Enabled = false;
+ this.xUpDown.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204)))));
+ this.xUpDown.Location = new System.Drawing.Point(254, 168);
+ this.xUpDown.Maximum = new decimal(new int[] {
255,
0,
0,
0});
- this.xUpDown.Name = "xUpDown";
- this.xUpDown.Size = new System.Drawing.Size(75, 20);
- this.xUpDown.TabIndex = 31;
- this.xUpDown.ValueChanged += new System.EventHandler(this.xUpDown_ValueChanged);
- //
- // xLabel
- //
- this.xLabel.AutoSize = true;
- this.xLabel.Location = new System.Drawing.Point(222, 168);
- this.xLabel.Name = "xLabel";
- this.xLabel.Size = new System.Drawing.Size(20, 19);
- this.xLabel.TabIndex = 30;
- this.xLabel.Text = "X:";
- this.xLabel.Theme = MetroFramework.MetroThemeStyle.Dark;
- //
- // BehaviourEditor
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(349, 280);
- this.Controls.Add(this.xUpDown);
- this.Controls.Add(this.xLabel);
- this.Controls.Add(this.zUpDown);
- this.Controls.Add(this.yUpDown);
- this.Controls.Add(this.zLabel);
- this.Controls.Add(this.yLabel);
- this.Controls.Add(this.MobHasSaddleCheckbox);
- this.Controls.Add(this.MobIsTamedCheckbox);
- this.Controls.Add(this.menuStrip);
- this.Controls.Add(this.treeView1);
- this.Name = "BehaviourEditor";
- this.Resizable = false;
- this.Style = MetroFramework.MetroColorStyle.Silver;
- this.Text = "Behaviour Editor";
- this.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.metroContextMenu1.ResumeLayout(false);
- this.menuStrip.ResumeLayout(false);
- this.menuStrip.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.zUpDown)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.yUpDown)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.xUpDown)).EndInit();
- this.ResumeLayout(false);
- this.PerformLayout();
+ this.xUpDown.Minimum = new decimal(new int[] {
+ 255,
+ 0,
+ 0,
+ -2147483648});
+ this.xUpDown.Name = "xUpDown";
+ this.xUpDown.Size = new System.Drawing.Size(75, 20);
+ this.xUpDown.TabIndex = 31;
+ this.xUpDown.ValueChanged += new System.EventHandler(this.xUpDown_ValueChanged);
+ //
+ // xLabel
+ //
+ this.xLabel.AutoSize = true;
+ this.xLabel.Location = new System.Drawing.Point(222, 168);
+ this.xLabel.Name = "xLabel";
+ this.xLabel.Size = new System.Drawing.Size(20, 19);
+ this.xLabel.TabIndex = 30;
+ this.xLabel.Text = "X:";
+ this.xLabel.Theme = MetroFramework.MetroThemeStyle.Dark;
+ //
+ // BehaviourEditor
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(349, 280);
+ this.Controls.Add(this.xUpDown);
+ this.Controls.Add(this.xLabel);
+ this.Controls.Add(this.zUpDown);
+ this.Controls.Add(this.yUpDown);
+ this.Controls.Add(this.zLabel);
+ this.Controls.Add(this.yLabel);
+ this.Controls.Add(this.MobHasSaddleCheckbox);
+ this.Controls.Add(this.MobIsTamedCheckbox);
+ this.Controls.Add(this.menuStrip);
+ this.Controls.Add(this.treeView1);
+ this.Name = "BehaviourEditor";
+ this.Resizable = false;
+ this.Style = MetroFramework.MetroColorStyle.Silver;
+ this.Text = "Behaviour Editor";
+ this.Theme = MetroFramework.MetroThemeStyle.Dark;
+ this.metroContextMenu1.ResumeLayout(false);
+ this.menuStrip.ResumeLayout(false);
+ this.menuStrip.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.zUpDown)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.yUpDown)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xUpDown)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
}
diff --git a/PCK-Studio/Forms/Editor/BehaviourEditor.cs b/PCK-Studio/Forms/Editor/BehaviourEditor.cs
index 214151fc..8726bf9c 100644
--- a/PCK-Studio/Forms/Editor/BehaviourEditor.cs
+++ b/PCK-Studio/Forms/Editor/BehaviourEditor.cs
@@ -20,6 +20,8 @@ namespace PckStudio.Forms.Editor
private readonly PckFile.FileData _file;
BehaviourFile behaviourFile;
+ private readonly JObject EntityJSONData = JObject.Parse(Properties.Resources.entityData);
+
void SetUpTree()
{
treeView1.BeginUpdate();
@@ -28,13 +30,13 @@ namespace PckStudio.Forms.Editor
{
TreeNode EntryNode = new TreeNode(entry.name);
- foreach (JObject content in Utilities.BehaviourResources.entityData["behaviours"].Children())
+ foreach (JObject content in EntityJSONData["behaviours"].Children())
{
var prop = content.Properties().FirstOrDefault(prop => prop.Name == entry.name);
if (prop is JProperty)
{
EntryNode.Text = (string)prop.Value;
- EntryNode.ImageIndex = Utilities.BehaviourResources.entityData["behaviours"].Children().ToList().IndexOf(content);
+ EntryNode.ImageIndex = EntityJSONData["behaviours"].Children().ToList().IndexOf(content);
EntryNode.SelectedImageIndex = EntryNode.ImageIndex;
break;
}
@@ -149,7 +151,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.BehaviourResources.entityData, Utilities.BehaviourResources.entityImages);
+ var diag = new AddEntry("behaviours", Utilities.BehaviourResources.entityImages);
diag.acceptBtn.Text = "Save";
if (diag.ShowDialog() == DialogResult.OK)
@@ -164,13 +166,13 @@ namespace PckStudio.Forms.Editor
entry.name = diag.SelectedEntity;
treeView1.SelectedNode.Tag = entry;
- foreach (JObject content in Utilities.BehaviourResources.entityData["behaviours"].Children())
+ foreach (JObject content in EntityJSONData["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.BehaviourResources.entityData["behaviours"].Children().ToList().IndexOf(content);
+ treeView1.SelectedNode.ImageIndex = EntityJSONData["behaviours"].Children().ToList().IndexOf(content);
treeView1.SelectedNode.SelectedImageIndex = treeView1.SelectedNode.ImageIndex;
break;
}
@@ -203,7 +205,7 @@ namespace PckStudio.Forms.Editor
private void addNewEntryToolStripMenuItem_Click(object sender, EventArgs e)
{
- var diag = new AddEntry(Utilities.BehaviourResources.entityData, Utilities.BehaviourResources.entityImages);
+ var diag = new AddEntry("behaviours", Utilities.BehaviourResources.entityImages);
if(diag.ShowDialog() == DialogResult.OK)
{
@@ -217,13 +219,13 @@ namespace PckStudio.Forms.Editor
TreeNode NewOverrideNode = new TreeNode(NewOverride.name);
NewOverrideNode.Tag = NewOverride;
- foreach (JObject content in Utilities.BehaviourResources.entityData["behaviours"].Children())
+ foreach (JObject content in EntityJSONData["behaviours"].Children())
{
var prop = content.Properties().FirstOrDefault(prop => prop.Name == NewOverride.name);
if (prop is JProperty)
{
NewOverrideNode.Text = (string)prop.Value;
- NewOverrideNode.ImageIndex = Utilities.BehaviourResources.entityData["behaviours"].Children().ToList().IndexOf(content);
+ NewOverrideNode.ImageIndex = EntityJSONData["behaviours"].Children().ToList().IndexOf(content);
NewOverrideNode.SelectedImageIndex = NewOverrideNode.ImageIndex;
break;
}
diff --git a/PCK-Studio/Forms/Editor/MaterialsEditor.cs b/PCK-Studio/Forms/Editor/MaterialsEditor.cs
index 33f421d5..f8345162 100644
--- a/PCK-Studio/Forms/Editor/MaterialsEditor.cs
+++ b/PCK-Studio/Forms/Editor/MaterialsEditor.cs
@@ -19,6 +19,8 @@ namespace PckStudio.Forms.Editor
private readonly PckFile.FileData _file;
MaterialContainer materialFile;
+ private readonly JObject EntityJSONData = JObject.Parse(Properties.Resources.entityData);
+
void SetUpTree()
{
treeView1.BeginUpdate();
@@ -27,13 +29,13 @@ namespace PckStudio.Forms.Editor
{
TreeNode EntryNode = new TreeNode(entry.Name);
- foreach (JObject content in Utilities.MaterialResources.entityData["materials"].Children())
+ foreach (JObject content in EntityJSONData["materials"].Children())
{
var prop = content.Properties().FirstOrDefault(prop => prop.Name == entry.Name);
if (prop is JProperty)
{
EntryNode.Text = (string)prop.Value;
- EntryNode.ImageIndex = Utilities.MaterialResources.entityData["materials"].Children().ToList().IndexOf(content);
+ EntryNode.ImageIndex = EntityJSONData["materials"].Children().ToList().IndexOf(content);
EntryNode.SelectedImageIndex = EntryNode.ImageIndex;
break;
}
@@ -132,7 +134,7 @@ namespace PckStudio.Forms.Editor
private void addToolStripMenuItem_Click(object sender, EventArgs e)
{
- var diag = new Additional_Popups.EntityForms.AddEntry(Utilities.MaterialResources.entityData, Utilities.MaterialResources.entityImages);
+ var diag = new Additional_Popups.EntityForms.AddEntry("materials", Utilities.MaterialResources.entityImages);
if (diag.ShowDialog() == DialogResult.OK)
{
@@ -146,13 +148,13 @@ namespace PckStudio.Forms.Editor
TreeNode NewEntryNode = new TreeNode(NewEntry.Name);
NewEntryNode.Tag = NewEntry;
- foreach (JObject content in Utilities.MaterialResources.entityData["materials"].Children())
+ foreach (JObject content in EntityJSONData["materials"].Children())
{
var prop = content.Properties().FirstOrDefault(prop => prop.Name == NewEntry.Name);
if (prop is JProperty)
{
NewEntryNode.Text = (string)prop.Value;
- NewEntryNode.ImageIndex = Utilities.MaterialResources.entityData["materials"].Children().ToList().IndexOf(content);
+ NewEntryNode.ImageIndex = EntityJSONData["materials"].Children().ToList().IndexOf(content);
NewEntryNode.SelectedImageIndex = NewEntryNode.ImageIndex;
break;
}
diff --git a/PCK-Studio/Forms/Skins-And-Textures/generateModel.cs b/PCK-Studio/Forms/Skins-And-Textures/generateModel.cs
index 3e65ab99..e46ade39 100644
--- a/PCK-Studio/Forms/Skins-And-Textures/generateModel.cs
+++ b/PCK-Studio/Forms/Skins-And-Textures/generateModel.cs
@@ -54,19 +54,18 @@ namespace PckStudio
"WAIST",
"PANTS0",
"PANTS1",
- "SOCK0",
- "SOCK1",
// Armor Parts
- "HELMET",
- "CHEST", "BODYARMOR",
- "SHOULDER0", "ARMARMOR0",
- "SHOULDER1", "ARMARMOR0",
+ "BODYARMOR",
+ "ARMARMOR0",
+ "ARMARMOR1",
"BELT",
"LEGGING0",
"LEGGING1",
+ "SOCK0",
+ "SOCK1",
"BOOT0",
- "BOOT1",
+ "BOOT1"
};
private static readonly string[] ValidModelOffsetTypes = new string[]
@@ -87,8 +86,8 @@ namespace PckStudio
"BELT",
"LEGGING0",
"LEGGING1",
- "BOOT0",
- "BOOT1",
+ "SOCK0", "BOOT0",
+ "SOCK1", "BOOT1",
"TOOL0",
"TOOL1",
@@ -117,6 +116,7 @@ namespace PckStudio
public GenerateModel(PckFile.PCKProperties skinProperties, Image texture)
{
+ MessageBox.Show(this, "This feature is now considered obsolete and will no longer recieve updates. A better alternative is currently under development. Use at your own risk.", "Obsolete Feature", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
InitializeComponent();
boxes = skinProperties;
texturePreview.Image = texture;
diff --git a/PCK-Studio/Forms/Utilities/BehaviourResources.cs b/PCK-Studio/Forms/Utilities/BehaviourResources.cs
index 36d295b8..dcaf4431 100644
--- a/PCK-Studio/Forms/Utilities/BehaviourResources.cs
+++ b/PCK-Studio/Forms/Utilities/BehaviourResources.cs
@@ -12,7 +12,6 @@ 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();
diff --git a/PCK-Studio/Forms/Utilities/ConsoleInstaller.Designer.cs b/PCK-Studio/Forms/Utilities/ConsoleInstaller.Designer.cs
deleted file mode 100644
index d6a260c6..00000000
--- a/PCK-Studio/Forms/Utilities/ConsoleInstaller.Designer.cs
+++ /dev/null
@@ -1,320 +0,0 @@
-namespace PckStudio.Forms.Utilities
-{
- partial class ConsoleInstaller
- {
- ///
- /// 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()
- {
- MetroFramework.Controls.MetroLabel metroLabel1;
- MetroFramework.Controls.MetroLabel metroLabel2;
- this.selectedConsoleComboBox = new MetroFramework.Controls.MetroComboBox();
- this.myTablePanel1 = new System.Windows.Forms.TableLayoutPanel();
- this.EurDig = new System.Windows.Forms.RadioButton();
- this.USDig = new System.Windows.Forms.RadioButton();
- this.textBoxHost = new MetroFramework.Controls.MetroTextBox();
- this.EurDisc = new System.Windows.Forms.RadioButton();
- this.USDisc = new System.Windows.Forms.RadioButton();
- this.listViewPCKS = new System.Windows.Forms.ListView();
- this.JPDig = new System.Windows.Forms.RadioButton();
- this.buttonServerToggle = new System.Windows.Forms.Button();
- metroLabel1 = new MetroFramework.Controls.MetroLabel();
- metroLabel2 = new MetroFramework.Controls.MetroLabel();
- this.myTablePanel1.SuspendLayout();
- this.SuspendLayout();
- //
- // metroLabel1
- //
- metroLabel1.AutoSize = true;
- metroLabel1.Location = new System.Drawing.Point(264, 73);
- metroLabel1.Name = "metroLabel1";
- metroLabel1.Size = new System.Drawing.Size(90, 19);
- metroLabel1.Style = MetroFramework.MetroColorStyle.Black;
- metroLabel1.TabIndex = 1;
- metroLabel1.Text = "Console Type:";
- metroLabel1.Theme = MetroFramework.MetroThemeStyle.Dark;
- //
- // metroLabel2
- //
- metroLabel2.AutoSize = true;
- metroLabel2.Dock = System.Windows.Forms.DockStyle.Fill;
- metroLabel2.Location = new System.Drawing.Point(129, 0);
- metroLabel2.Name = "metroLabel2";
- metroLabel2.Size = new System.Drawing.Size(120, 35);
- metroLabel2.Style = MetroFramework.MetroColorStyle.Black;
- metroLabel2.TabIndex = 13;
- metroLabel2.Text = "Console Type:";
- metroLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- metroLabel2.Theme = MetroFramework.MetroThemeStyle.Dark;
- //
- // selectedConsoleComboBox
- //
- this.selectedConsoleComboBox.BackColor = System.Drawing.SystemColors.Window;
- this.selectedConsoleComboBox.FormattingEnabled = true;
- this.selectedConsoleComboBox.ItemHeight = 23;
- this.selectedConsoleComboBox.Items.AddRange(new object[] {
- "Wii U",
- "Play Station 3",
- "PS Vita"});
- this.selectedConsoleComboBox.Location = new System.Drawing.Point(255, 3);
- this.selectedConsoleComboBox.Name = "selectedConsoleComboBox";
- this.selectedConsoleComboBox.PromptText = "Select console";
- this.selectedConsoleComboBox.Size = new System.Drawing.Size(121, 29);
- this.selectedConsoleComboBox.Style = MetroFramework.MetroColorStyle.Black;
- this.selectedConsoleComboBox.TabIndex = 0;
- this.selectedConsoleComboBox.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.selectedConsoleComboBox.UseSelectable = true;
- //
- // myTablePanel1
- //
- this.myTablePanel1.BackColor = System.Drawing.Color.Transparent;
- this.myTablePanel1.ColumnCount = 3;
- this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33332F));
- this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F));
- this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F));
- this.myTablePanel1.Controls.Add(this.EurDig, 1, 2);
- this.myTablePanel1.Controls.Add(this.USDig, 2, 2);
- this.myTablePanel1.Controls.Add(this.textBoxHost, 0, 1);
- this.myTablePanel1.Controls.Add(this.EurDisc, 1, 3);
- this.myTablePanel1.Controls.Add(this.USDisc, 2, 3);
- this.myTablePanel1.Controls.Add(this.listViewPCKS, 0, 4);
- this.myTablePanel1.Controls.Add(this.JPDig, 0, 2);
- this.myTablePanel1.Controls.Add(this.buttonServerToggle, 2, 1);
- this.myTablePanel1.Controls.Add(this.selectedConsoleComboBox, 2, 0);
- this.myTablePanel1.Controls.Add(metroLabel2, 1, 0);
- this.myTablePanel1.Dock = System.Windows.Forms.DockStyle.Fill;
- this.myTablePanel1.Location = new System.Drawing.Point(20, 60);
- this.myTablePanel1.Margin = new System.Windows.Forms.Padding(0);
- this.myTablePanel1.Name = "myTablePanel1";
- this.myTablePanel1.RowCount = 5;
- this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F));
- this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
- this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F));
- this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F));
- this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
- this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
- this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
- this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
- this.myTablePanel1.Size = new System.Drawing.Size(379, 561);
- this.myTablePanel1.TabIndex = 3;
- //
- // EurDig
- //
- this.EurDig.Appearance = System.Windows.Forms.Appearance.Button;
- this.EurDig.AutoSize = true;
- this.EurDig.BackColor = System.Drawing.Color.Transparent;
- this.EurDig.CheckAlign = System.Drawing.ContentAlignment.BottomRight;
- this.EurDig.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal;
- this.EurDig.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
- this.EurDig.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
- this.EurDig.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.EurDig.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.EurDig.ForeColor = System.Drawing.Color.White;
- this.EurDig.Location = new System.Drawing.Point(129, 71);
- this.EurDig.Name = "EurDig";
- this.EurDig.Size = new System.Drawing.Size(100, 30);
- this.EurDig.TabIndex = 11;
- this.EurDig.Text = "EUR Digital";
- this.EurDig.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.EurDig.UseVisualStyleBackColor = false;
- //
- // USDig
- //
- this.USDig.Appearance = System.Windows.Forms.Appearance.Button;
- this.USDig.AutoSize = true;
- this.USDig.BackColor = System.Drawing.Color.Transparent;
- this.USDig.CheckAlign = System.Drawing.ContentAlignment.BottomRight;
- this.USDig.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal;
- this.USDig.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
- this.USDig.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
- this.USDig.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.USDig.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.USDig.ForeColor = System.Drawing.Color.White;
- this.USDig.Location = new System.Drawing.Point(255, 71);
- this.USDig.Name = "USDig";
- this.USDig.Size = new System.Drawing.Size(91, 30);
- this.USDig.TabIndex = 12;
- this.USDig.Text = "US Digital";
- this.USDig.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.USDig.UseVisualStyleBackColor = false;
- //
- // textBoxHost
- //
- this.textBoxHost.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
- this.myTablePanel1.SetColumnSpan(this.textBoxHost, 2);
- //
- //
- //
- this.textBoxHost.CustomButton.Image = null;
- this.textBoxHost.CustomButton.Location = new System.Drawing.Point(274, 2);
- this.textBoxHost.CustomButton.Name = "";
- this.textBoxHost.CustomButton.Size = new System.Drawing.Size(15, 15);
- this.textBoxHost.CustomButton.Style = MetroFramework.MetroColorStyle.Blue;
- this.textBoxHost.CustomButton.TabIndex = 1;
- this.textBoxHost.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light;
- this.textBoxHost.CustomButton.UseSelectable = true;
- this.textBoxHost.CustomButton.Visible = false;
- this.textBoxHost.IconRight = true;
- this.textBoxHost.Lines = new string[0];
- this.textBoxHost.Location = new System.Drawing.Point(3, 38);
- this.textBoxHost.MaxLength = 32767;
- this.textBoxHost.Name = "textBoxHost";
- this.textBoxHost.PasswordChar = '\0';
- this.textBoxHost.PromptText = "IP Address";
- this.textBoxHost.ScrollBars = System.Windows.Forms.ScrollBars.None;
- this.textBoxHost.SelectedText = "";
- this.textBoxHost.SelectionLength = 0;
- this.textBoxHost.SelectionStart = 0;
- this.textBoxHost.ShortcutsEnabled = true;
- this.textBoxHost.Size = new System.Drawing.Size(246, 20);
- this.textBoxHost.Style = MetroFramework.MetroColorStyle.Blue;
- this.textBoxHost.TabIndex = 10;
- this.textBoxHost.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.textBoxHost.UseSelectable = true;
- this.textBoxHost.WaterMark = "IP Address";
- this.textBoxHost.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109)))));
- this.textBoxHost.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel);
- //
- // EurDisc
- //
- this.EurDisc.Appearance = System.Windows.Forms.Appearance.Button;
- this.EurDisc.AutoSize = true;
- this.EurDisc.BackColor = System.Drawing.Color.Transparent;
- this.EurDisc.CheckAlign = System.Drawing.ContentAlignment.BottomRight;
- this.EurDisc.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal;
- this.EurDisc.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
- this.EurDisc.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
- this.EurDisc.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.EurDisc.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.EurDisc.ForeColor = System.Drawing.Color.White;
- this.EurDisc.Location = new System.Drawing.Point(129, 107);
- this.EurDisc.Name = "EurDisc";
- this.EurDisc.Size = new System.Drawing.Size(84, 30);
- this.EurDisc.TabIndex = 0;
- this.EurDisc.Text = "EUR Disc";
- this.EurDisc.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.EurDisc.UseVisualStyleBackColor = false;
- //
- // USDisc
- //
- this.USDisc.Appearance = System.Windows.Forms.Appearance.Button;
- this.USDisc.AutoSize = true;
- this.USDisc.BackColor = System.Drawing.Color.Transparent;
- this.USDisc.CheckAlign = System.Drawing.ContentAlignment.BottomRight;
- this.USDisc.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal;
- this.USDisc.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
- this.USDisc.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
- this.USDisc.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.USDisc.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.USDisc.ForeColor = System.Drawing.Color.White;
- this.USDisc.Location = new System.Drawing.Point(255, 107);
- this.USDisc.Name = "USDisc";
- this.USDisc.Size = new System.Drawing.Size(75, 30);
- this.USDisc.TabIndex = 2;
- this.USDisc.Text = "US Disc";
- this.USDisc.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.USDisc.UseVisualStyleBackColor = false;
- //
- // listViewPCKS
- //
- this.listViewPCKS.Activation = System.Windows.Forms.ItemActivation.TwoClick;
- this.myTablePanel1.SetColumnSpan(this.listViewPCKS, 3);
- this.listViewPCKS.Dock = System.Windows.Forms.DockStyle.Fill;
- this.listViewPCKS.Enabled = false;
- this.listViewPCKS.HideSelection = false;
- this.listViewPCKS.Location = new System.Drawing.Point(3, 143);
- this.listViewPCKS.Name = "listViewPCKS";
- this.listViewPCKS.Size = new System.Drawing.Size(373, 415);
- this.listViewPCKS.TabIndex = 3;
- this.listViewPCKS.UseCompatibleStateImageBehavior = false;
- this.listViewPCKS.View = System.Windows.Forms.View.Details;
- //
- // JPDig
- //
- this.JPDig.Appearance = System.Windows.Forms.Appearance.Button;
- this.JPDig.AutoSize = true;
- this.JPDig.BackColor = System.Drawing.Color.Transparent;
- this.JPDig.CheckAlign = System.Drawing.ContentAlignment.BottomRight;
- this.JPDig.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal;
- this.JPDig.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
- this.JPDig.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
- this.JPDig.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.JPDig.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.JPDig.ForeColor = System.Drawing.Color.White;
- this.JPDig.Location = new System.Drawing.Point(3, 71);
- this.JPDig.Name = "JPDig";
- this.JPDig.Size = new System.Drawing.Size(47, 30);
- this.JPDig.TabIndex = 1;
- this.JPDig.Text = "JAP";
- this.JPDig.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.JPDig.UseVisualStyleBackColor = false;
- //
- // buttonServerToggle
- //
- this.buttonServerToggle.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
- this.buttonServerToggle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(178)))), ((int)(((byte)(13)))));
- this.buttonServerToggle.FlatAppearance.BorderSize = 0;
- this.buttonServerToggle.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.buttonServerToggle.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.buttonServerToggle.ForeColor = System.Drawing.Color.White;
- this.buttonServerToggle.Location = new System.Drawing.Point(255, 38);
- this.buttonServerToggle.Name = "buttonServerToggle";
- this.buttonServerToggle.Size = new System.Drawing.Size(121, 27);
- this.buttonServerToggle.TabIndex = 9;
- this.buttonServerToggle.Text = "Start";
- this.buttonServerToggle.UseVisualStyleBackColor = false;
- //
- // ConsoleInstaller
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(419, 641);
- this.Controls.Add(this.myTablePanel1);
- this.Controls.Add(metroLabel1);
- this.Name = "ConsoleInstaller";
- this.Style = MetroFramework.MetroColorStyle.Silver;
- this.Text = "Console Installer";
- this.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.myTablePanel1.ResumeLayout(false);
- this.myTablePanel1.PerformLayout();
- this.ResumeLayout(false);
- this.PerformLayout();
-
- }
-
- #endregion
-
- private MetroFramework.Controls.MetroComboBox selectedConsoleComboBox;
- private System.Windows.Forms.TableLayoutPanel myTablePanel1;
- private System.Windows.Forms.RadioButton EurDig;
- private System.Windows.Forms.RadioButton USDig;
- private System.Windows.Forms.Button buttonServerToggle;
- private MetroFramework.Controls.MetroTextBox textBoxHost;
- private System.Windows.Forms.RadioButton EurDisc;
- private System.Windows.Forms.RadioButton USDisc;
- private System.Windows.Forms.ListView listViewPCKS;
- private System.Windows.Forms.RadioButton JPDig;
- }
-}
\ No newline at end of file
diff --git a/PCK-Studio/Forms/Utilities/ConsoleInstaller.cs b/PCK-Studio/Forms/Utilities/ConsoleInstaller.cs
deleted file mode 100644
index 95f1d3ec..00000000
--- a/PCK-Studio/Forms/Utilities/ConsoleInstaller.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-
-namespace PckStudio.Forms.Utilities
-{
- public partial class ConsoleInstaller : MetroFramework.Forms.MetroForm
- {
- public ConsoleInstaller()
- {
- InitializeComponent();
- }
- }
-}
diff --git a/PCK-Studio/Forms/Utilities/MaterialResources.cs b/PCK-Studio/Forms/Utilities/MaterialResources.cs
index ccc1493d..861dbe6a 100644
--- a/PCK-Studio/Forms/Utilities/MaterialResources.cs
+++ b/PCK-Studio/Forms/Utilities/MaterialResources.cs
@@ -14,7 +14,6 @@ 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();
diff --git a/PCK-Studio/Forms/Utilities/ModelsResources.cs b/PCK-Studio/Forms/Utilities/ModelsResources.cs
deleted file mode 100644
index 47795210..00000000
--- a/PCK-Studio/Forms/Utilities/ModelsResources.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-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/PCK Manager.cs b/PCK-Studio/Forms/Utilities/PCK Manager.cs
index ff7296d6..dceeaea2 100644
--- a/PCK-Studio/Forms/Utilities/PCK Manager.cs
+++ b/PCK-Studio/Forms/Utilities/PCK Manager.cs
@@ -5,6 +5,7 @@ using PckStudio.ToolboxItems;
namespace PckStudio.Forms
{
+ [Obsolete("For what is this thing used?")]
public partial class PCK_Manager : ThemeForm
{
public PCK_Manager()
diff --git a/PCK-Studio/Forms/Utilities/installPS3.Designer.cs b/PCK-Studio/Forms/Utilities/installPS3.Designer.cs
deleted file mode 100644
index a878e7a4..00000000
--- a/PCK-Studio/Forms/Utilities/installPS3.Designer.cs
+++ /dev/null
@@ -1,356 +0,0 @@
-namespace PckStudio.Forms
-{
- partial class InstallPS3
- {
- ///
- /// 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.components = new System.ComponentModel.Container();
- this.metroTabPageMain = new MetroFramework.Controls.MetroTabPage();
- 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();
- this.textBoxHost = new MetroFramework.Controls.MetroTextBox();
- this.EurDisc = new System.Windows.Forms.RadioButton();
- this.USDisc = new System.Windows.Forms.RadioButton();
- this.listViewPCKS = new System.Windows.Forms.ListView();
- this.JPDig = new System.Windows.Forms.RadioButton();
- this.metroTabControlMain = new MetroFramework.Controls.MetroTabControl();
- this.contextMenuStripCaffiine = new System.Windows.Forms.ContextMenuStrip(this.components);
- this.replaceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.replacePCKToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.metroTabPageMain.SuspendLayout();
- this.myTablePanel1.SuspendLayout();
- this.metroTabControlMain.SuspendLayout();
- this.contextMenuStripCaffiine.SuspendLayout();
- this.SuspendLayout();
- //
- // metroTabPageMain
- //
- this.metroTabPageMain.Controls.Add(this.myTablePanel1);
- this.metroTabPageMain.HorizontalScrollbarBarColor = true;
- this.metroTabPageMain.HorizontalScrollbarHighlightOnWheel = false;
- this.metroTabPageMain.HorizontalScrollbarSize = 10;
- this.metroTabPageMain.Location = new System.Drawing.Point(4, 38);
- this.metroTabPageMain.Name = "metroTabPageMain";
- this.metroTabPageMain.Size = new System.Drawing.Size(467, 617);
- this.metroTabPageMain.Style = MetroFramework.MetroColorStyle.Blue;
- this.metroTabPageMain.TabIndex = 0;
- this.metroTabPageMain.Text = "Installer";
- this.metroTabPageMain.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.metroTabPageMain.VerticalScrollbarBarColor = true;
- this.metroTabPageMain.VerticalScrollbarHighlightOnWheel = false;
- this.metroTabPageMain.VerticalScrollbarSize = 10;
- //
- // myTablePanel1
- //
- this.myTablePanel1.BackColor = System.Drawing.Color.Transparent;
- this.myTablePanel1.ColumnCount = 3;
- this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
- this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F));
- this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F));
- this.myTablePanel1.Controls.Add(this.EurDig, 1, 1);
- this.myTablePanel1.Controls.Add(this.USDig, 2, 1);
- this.myTablePanel1.Controls.Add(this.buttonServerToggle, 2, 0);
- this.myTablePanel1.Controls.Add(this.textBoxHost, 0, 0);
- this.myTablePanel1.Controls.Add(this.EurDisc, 1, 2);
- this.myTablePanel1.Controls.Add(this.USDisc, 2, 2);
- this.myTablePanel1.Controls.Add(this.listViewPCKS, 0, 3);
- this.myTablePanel1.Controls.Add(this.JPDig, 0, 1);
- this.myTablePanel1.Dock = System.Windows.Forms.DockStyle.Fill;
- this.myTablePanel1.Location = new System.Drawing.Point(0, 0);
- this.myTablePanel1.Margin = new System.Windows.Forms.Padding(0);
- this.myTablePanel1.Name = "myTablePanel1";
- this.myTablePanel1.RowCount = 7;
- this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
- this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F));
- this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F));
- this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
- this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
- this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
- this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
- this.myTablePanel1.Size = new System.Drawing.Size(467, 617);
- this.myTablePanel1.TabIndex = 2;
- //
- // EurDig
- //
- this.EurDig.Appearance = System.Windows.Forms.Appearance.Button;
- this.EurDig.AutoSize = true;
- this.EurDig.BackColor = System.Drawing.Color.Transparent;
- this.EurDig.CheckAlign = System.Drawing.ContentAlignment.BottomRight;
- this.EurDig.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal;
- this.EurDig.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
- this.EurDig.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
- this.EurDig.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.EurDig.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.EurDig.ForeColor = System.Drawing.Color.White;
- this.EurDig.Location = new System.Drawing.Point(158, 36);
- this.EurDig.Name = "EurDig";
- this.EurDig.Size = new System.Drawing.Size(100, 30);
- this.EurDig.TabIndex = 11;
- this.EurDig.Text = "EUR Digital";
- this.EurDig.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.EurDig.UseVisualStyleBackColor = false;
- this.EurDig.CheckedChanged += new System.EventHandler(this.EurDig_CheckedChanged);
- //
- // USDig
- //
- this.USDig.Appearance = System.Windows.Forms.Appearance.Button;
- this.USDig.AutoSize = true;
- this.USDig.BackColor = System.Drawing.Color.Transparent;
- this.USDig.CheckAlign = System.Drawing.ContentAlignment.BottomRight;
- this.USDig.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal;
- this.USDig.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
- this.USDig.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
- this.USDig.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.USDig.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.USDig.ForeColor = System.Drawing.Color.White;
- this.USDig.Location = new System.Drawing.Point(313, 36);
- this.USDig.Name = "USDig";
- this.USDig.Size = new System.Drawing.Size(91, 30);
- this.USDig.TabIndex = 12;
- this.USDig.Text = "US Digital";
- this.USDig.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.USDig.UseVisualStyleBackColor = false;
- this.USDig.CheckedChanged += new System.EventHandler(this.USDig_CheckedChanged);
- //
- // buttonServerToggle
- //
- this.buttonServerToggle.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
- this.buttonServerToggle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(178)))), ((int)(((byte)(13)))));
- this.buttonServerToggle.FlatAppearance.BorderSize = 0;
- this.buttonServerToggle.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.buttonServerToggle.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.buttonServerToggle.ForeColor = System.Drawing.Color.White;
- this.buttonServerToggle.Location = new System.Drawing.Point(313, 3);
- this.buttonServerToggle.Name = "buttonServerToggle";
- this.buttonServerToggle.Size = new System.Drawing.Size(137, 27);
- this.buttonServerToggle.TabIndex = 9;
- this.buttonServerToggle.Text = "Start";
- this.buttonServerToggle.UseVisualStyleBackColor = false;
- this.buttonServerToggle.Click += new System.EventHandler(this.buttonServerToggle_Click);
- //
- // textBoxHost
- //
- this.textBoxHost.Anchor = System.Windows.Forms.AnchorStyles.Left;
- this.textBoxHost.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
- this.myTablePanel1.SetColumnSpan(this.textBoxHost, 2);
- //
- //
- //
- this.textBoxHost.CustomButton.Image = null;
- this.textBoxHost.CustomButton.Location = new System.Drawing.Point(260, 2);
- this.textBoxHost.CustomButton.Name = "";
- this.textBoxHost.CustomButton.Size = new System.Drawing.Size(15, 15);
- this.textBoxHost.CustomButton.Style = MetroFramework.MetroColorStyle.Blue;
- this.textBoxHost.CustomButton.TabIndex = 1;
- this.textBoxHost.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light;
- this.textBoxHost.CustomButton.UseSelectable = true;
- this.textBoxHost.CustomButton.Visible = false;
- this.textBoxHost.IconRight = true;
- this.textBoxHost.Lines = new string[0];
- this.textBoxHost.Location = new System.Drawing.Point(3, 6);
- this.textBoxHost.MaxLength = 32767;
- this.textBoxHost.Name = "textBoxHost";
- this.textBoxHost.PasswordChar = '\0';
- this.textBoxHost.PromptText = "PS3 IP";
- this.textBoxHost.ScrollBars = System.Windows.Forms.ScrollBars.None;
- this.textBoxHost.SelectedText = "";
- this.textBoxHost.SelectionLength = 0;
- this.textBoxHost.SelectionStart = 0;
- this.textBoxHost.ShortcutsEnabled = true;
- this.textBoxHost.Size = new System.Drawing.Size(278, 20);
- this.textBoxHost.Style = MetroFramework.MetroColorStyle.Blue;
- this.textBoxHost.TabIndex = 10;
- this.textBoxHost.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.textBoxHost.UseSelectable = true;
- this.textBoxHost.WaterMark = "PS3 IP";
- this.textBoxHost.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109)))));
- this.textBoxHost.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel);
- //
- // EurDisc
- //
- this.EurDisc.Appearance = System.Windows.Forms.Appearance.Button;
- this.EurDisc.AutoSize = true;
- this.EurDisc.BackColor = System.Drawing.Color.Transparent;
- this.EurDisc.CheckAlign = System.Drawing.ContentAlignment.BottomRight;
- this.EurDisc.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal;
- this.EurDisc.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
- this.EurDisc.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
- this.EurDisc.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.EurDisc.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.EurDisc.ForeColor = System.Drawing.Color.White;
- this.EurDisc.Location = new System.Drawing.Point(158, 72);
- this.EurDisc.Name = "EurDisc";
- this.EurDisc.Size = new System.Drawing.Size(84, 30);
- this.EurDisc.TabIndex = 0;
- this.EurDisc.Text = "EUR Disc";
- this.EurDisc.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.EurDisc.UseVisualStyleBackColor = false;
- this.EurDisc.CheckedChanged += new System.EventHandler(this.EurDisc_CheckedChanged);
- //
- // USDisc
- //
- this.USDisc.Appearance = System.Windows.Forms.Appearance.Button;
- this.USDisc.AutoSize = true;
- this.USDisc.BackColor = System.Drawing.Color.Transparent;
- this.USDisc.CheckAlign = System.Drawing.ContentAlignment.BottomRight;
- this.USDisc.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal;
- this.USDisc.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
- this.USDisc.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
- this.USDisc.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.USDisc.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.USDisc.ForeColor = System.Drawing.Color.White;
- this.USDisc.Location = new System.Drawing.Point(313, 72);
- this.USDisc.Name = "USDisc";
- this.USDisc.Size = new System.Drawing.Size(75, 30);
- this.USDisc.TabIndex = 2;
- this.USDisc.Text = "US Disc";
- this.USDisc.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.USDisc.UseVisualStyleBackColor = false;
- this.USDisc.CheckedChanged += new System.EventHandler(this.USDisc_CheckedChanged);
- //
- // listViewPCKS
- //
- this.listViewPCKS.Activation = System.Windows.Forms.ItemActivation.TwoClick;
- this.myTablePanel1.SetColumnSpan(this.listViewPCKS, 3);
- this.listViewPCKS.Dock = System.Windows.Forms.DockStyle.Fill;
- this.listViewPCKS.Enabled = false;
- this.listViewPCKS.HideSelection = false;
- this.listViewPCKS.Location = new System.Drawing.Point(3, 108);
- this.listViewPCKS.Name = "listViewPCKS";
- this.listViewPCKS.Size = new System.Drawing.Size(461, 506);
- this.listViewPCKS.TabIndex = 3;
- this.listViewPCKS.UseCompatibleStateImageBehavior = false;
- this.listViewPCKS.View = System.Windows.Forms.View.Details;
- this.listViewPCKS.SelectedIndexChanged += new System.EventHandler(this.listViewPCKS_SelectedIndexChanged);
- this.listViewPCKS.Click += new System.EventHandler(this.listViewPCKS_Click);
- this.listViewPCKS.DoubleClick += new System.EventHandler(this.listViewPCKS_DoubleClick);
- this.listViewPCKS.MouseDown += new System.Windows.Forms.MouseEventHandler(this.listViewPCKS_MouseDown);
- //
- // JPDig
- //
- this.JPDig.Appearance = System.Windows.Forms.Appearance.Button;
- this.JPDig.AutoSize = true;
- this.JPDig.BackColor = System.Drawing.Color.Transparent;
- this.JPDig.CheckAlign = System.Drawing.ContentAlignment.BottomRight;
- this.JPDig.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal;
- this.JPDig.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
- this.JPDig.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
- this.JPDig.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.JPDig.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.JPDig.ForeColor = System.Drawing.Color.White;
- this.JPDig.Location = new System.Drawing.Point(3, 36);
- this.JPDig.Name = "JPDig";
- this.JPDig.Size = new System.Drawing.Size(47, 30);
- this.JPDig.TabIndex = 1;
- this.JPDig.Text = "JAP";
- this.JPDig.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.JPDig.UseVisualStyleBackColor = false;
- this.JPDig.CheckedChanged += new System.EventHandler(this.JPDig_CheckedChanged);
- //
- // metroTabControlMain
- //
- this.metroTabControlMain.Controls.Add(this.metroTabPageMain);
- this.metroTabControlMain.Dock = System.Windows.Forms.DockStyle.Fill;
- this.metroTabControlMain.Location = new System.Drawing.Point(0, 0);
- this.metroTabControlMain.Name = "metroTabControlMain";
- this.metroTabControlMain.SelectedIndex = 0;
- this.metroTabControlMain.Size = new System.Drawing.Size(475, 659);
- this.metroTabControlMain.Style = MetroFramework.MetroColorStyle.White;
- this.metroTabControlMain.TabIndex = 0;
- this.metroTabControlMain.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.metroTabControlMain.UseSelectable = true;
- //
- // contextMenuStripCaffiine
- //
- this.contextMenuStripCaffiine.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.replaceToolStripMenuItem,
- this.replacePCKToolStripMenuItem});
- this.contextMenuStripCaffiine.Name = "contextMenuStripCaffiine";
- this.contextMenuStripCaffiine.Size = new System.Drawing.Size(212, 48);
- this.contextMenuStripCaffiine.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStripCaffiine_Opening);
- //
- // replaceToolStripMenuItem
- //
- this.replaceToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Replace;
- this.replaceToolStripMenuItem.Name = "replaceToolStripMenuItem";
- this.replaceToolStripMenuItem.Size = new System.Drawing.Size(211, 22);
- this.replaceToolStripMenuItem.Text = "Replace";
- this.replaceToolStripMenuItem.TextImageRelation = System.Windows.Forms.TextImageRelation.TextAboveImage;
- this.replaceToolStripMenuItem.Click += new System.EventHandler(this.replaceToolStripMenuItem_Click);
- //
- // replacePCKToolStripMenuItem
- //
- this.replacePCKToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Replace;
- this.replacePCKToolStripMenuItem.Name = "replacePCKToolStripMenuItem";
- this.replacePCKToolStripMenuItem.Size = new System.Drawing.Size(211, 22);
- this.replacePCKToolStripMenuItem.Text = "Replace with external PCK";
- this.replacePCKToolStripMenuItem.Click += new System.EventHandler(this.replacePCKToolStripMenuItem_Click);
- //
- // InstallPS3
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
- this.ClientSize = new System.Drawing.Size(475, 659);
- this.Controls.Add(this.metroTabControlMain);
- this.Font = new System.Drawing.Font("Segoe UI", 8.25F);
- this.ForeColor = System.Drawing.Color.White;
- this.Location = new System.Drawing.Point(0, 0);
- this.MaximizeBox = false;
- this.Name = "InstallPS3";
- this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
- this.Text = "Install to Playstation®3";
- this.Load += new System.EventHandler(this.installPS3_Load);
- this.metroTabPageMain.ResumeLayout(false);
- this.myTablePanel1.ResumeLayout(false);
- this.myTablePanel1.PerformLayout();
- this.metroTabControlMain.ResumeLayout(false);
- this.contextMenuStripCaffiine.ResumeLayout(false);
- this.ResumeLayout(false);
-
- }
-
- #endregion
-
- private MetroFramework.Controls.MetroTabPage metroTabPageMain;
- private System.Windows.Forms.TableLayoutPanel myTablePanel1;
- private System.Windows.Forms.RadioButton USDisc;
- private System.Windows.Forms.RadioButton JPDig;
- private System.Windows.Forms.RadioButton EurDisc;
- private System.Windows.Forms.ListView listViewPCKS;
- private MetroFramework.Controls.MetroTabControl metroTabControlMain;
- private System.Windows.Forms.ContextMenuStrip contextMenuStripCaffiine;
- private System.Windows.Forms.ToolStripMenuItem replacePCKToolStripMenuItem;
- private System.Windows.Forms.Button buttonServerToggle;
- private MetroFramework.Controls.MetroTextBox textBoxHost;
- private System.Windows.Forms.ToolStripMenuItem replaceToolStripMenuItem;
- private System.Windows.Forms.RadioButton USDig;
- private System.Windows.Forms.RadioButton EurDig;
- }
-}
\ No newline at end of file
diff --git a/PCK-Studio/Forms/Utilities/installPS3.cs b/PCK-Studio/Forms/Utilities/installPS3.cs
deleted file mode 100644
index db5409ec..00000000
--- a/PCK-Studio/Forms/Utilities/installPS3.cs
+++ /dev/null
@@ -1,472 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.IO;
-using System.Net;
-using System.Windows.Forms;
-using PckStudio.Classes.Misc;
-using PckStudio.ToolboxItems;
-
-namespace PckStudio.Forms
-{
- public partial class InstallPS3 : ThemeForm
- {
- string loca = "";
- string dlcPath = "";
- string mod = "";
- bool serverOn = false;
- string currentpath = "";
-
- public InstallPS3(string mod)
- {
- InitializeComponent();
-
- this.mod = mod;
-
- if (mod == null)
- {
- replaceToolStripMenuItem.Visible = false;
- }
- else
- {
- replaceToolStripMenuItem.Text = "Replace with " + Path.GetFileName(mod);
- }
- }
-
-
-
- //items class for use in bedrock skin conversion
- public class pckDir
- {
- public string folder { get; set; }
- public string file { get; set; }
- }
-
- List pcks = new List();
-
- private void updateDatabase()
- {
- pcks.Clear();
- pcks.Add(new pckDir() { folder = "Battle & Beasts", file = "BattleAndBeasts.pck" });
- pcks.Add(new pckDir() { folder = "Battle & Beasts 2", file = "BattleAndBeasts2.pck" });
- pcks.Add(new pckDir() { folder = "Biome Settlers Pack 1", file = "SkinsBiomeSettlers1.pck" });
- pcks.Add(new pckDir() { folder = "Biome Settlers Pack 2", file = "SkinsBiomeSettlers2.pck" });
- //pcks.Add(new pckDir() { folder = "Campfire Tales Skin Pack", file = "" });
- pcks.Add(new pckDir() { folder = "Doctor Who Skins Volume I", file = "SkinPackDrWho.pck" });
- pcks.Add(new pckDir() { folder = "Doctor Who Skins Volume II", file = "SkinPackDrWho.pck" });
- pcks.Add(new pckDir() { folder = "Festive Skin Pack", file = "SkinsFestive.pck" });
- pcks.Add(new pckDir() { folder = "FINAL FANTASY XV Skin Pack", file = "FinalFantasyXV.pck" });
- pcks.Add(new pckDir() { folder = "Magic The Gathering Skin Pack", file = "magicthegathering.pck" });
- pcks.Add(new pckDir() { folder = "Mini Game Heroes Skin Pack", file = "Minigame2.pck" });
- pcks.Add(new pckDir() { folder = "Mini Game Masters Skin Pack", file = "Minigame.pck" });
- pcks.Add(new pckDir() { folder = "Moana Character Pack", file = "Moana.pck" });
- pcks.Add(new pckDir() { folder = "Power Rangers Skin Pack", file = "PowerRangers.pck" });
- pcks.Add(new pckDir() { folder = "Redstone Specialists Skin Pack", file = "SkinsRedstoneSpecialists.pck" });
- pcks.Add(new pckDir() { folder = "Skin Pack 1", file = "Skins1.pck" });
- pcks.Add(new pckDir() { folder = "Star Wars Classic Skin Pack", file = "StarWarsClassicPack.pck" });
- pcks.Add(new pckDir() { folder = "Star Wars Prequel Skin Pack", file = "StarWarsPrequel.pck" });
- pcks.Add(new pckDir() { folder = "Star Wars Rebels Skin Pack", file = "StarWarsRebelsPack.pck" });
- pcks.Add(new pckDir() { folder = "Star Wars Sequel Skin Pack", file = "StarWarsSequel.pck" });
- pcks.Add(new pckDir() { folder = "Story Mode Skin Pack", file = "PackStoryMode.pck" });
- pcks.Add(new pckDir() { folder = "Stranger Things Skin Pack", file = "StrangerThings.pck" });
- pcks.Add(new pckDir() { folder = "Strangers Biome Settlers 3 Skin Pack", file = "BiomeSettlers3_Strangers.pck" });
- pcks.Add(new pckDir() { folder = "The Incredibles Skin Pack", file = "Incredibles.pck" });
- pcks.Add(new pckDir() { folder = "The Simpsons Skin Pack", file = "SkinPackSimpsons.pck" });
- pcks.Add(new pckDir() { folder = "Villains Skin Pack", file = "Villains.pck" });
- }
-
- public void buttonMode(string mode)
- {
- if (mode == "start")
- {
- buttonServerToggle.BackColor = Color.FromArgb(68, 178, 13);
- serverOn = false;
- buttonServerToggle.Text = "Start";
- listViewPCKS.Enabled = false;
- }
- else if (mode == "stop")
- {
- serverOn = true;
- buttonServerToggle.BackColor = Color.Red;
- buttonServerToggle.Text = "Stop";
- listViewPCKS.Enabled = true;
- }
- else if (mode == "loading")
- {
- buttonServerToggle.BackColor = Color.MediumAquamarine;
- buttonServerToggle.Text = "Wait..";
- }
- }
-
- private void loadPcks()
- {
-
- string region = "";
- if (JPDig.Checked)
- {
- region = "NPJB00549/";
- }
- else if (EurDisc.Checked)
- {
- region = "BLES01976/";
- }
- else if (EurDig.Checked)
- {
- region = "NPEB01899/";
- }
- else if (USDisc.Checked)
- {
- region = "BLUS31426/";
- }
- else if (USDig.Checked)
- {
- region = "NPUB31419/";
- }
-
- string device = "/dev_hdd0/";
-
- if (region != "" && device != "")
- {
- dlcPath = device + "game/" + region;
- buttonServerToggle.Enabled = true;
- if (listViewPCKS.Columns.Count == 0)
- {
- listViewPCKS.Columns.Add(dlcPath, 395);
- }
- }
- }
-
- private void buttonServerToggle_Click(object sender, EventArgs e)
- {
- string mode = "";
- if (serverOn == false)
- {
- //Makes sure user typed in their ip
- if (textBoxHost.Text == "")
- {
- MessageBox.Show("Please enter a valid Playstation®3 IP!");
- return;
- }
-
- //Turns Server On
- try
- {
- buttonMode(mode = "loading");
-
- ServicePointManager.Expect100Continue = true;
-
- //ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(OnValidateCertificate);
- FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + textBoxHost.Text + "/" + dlcPath);
- currentpath = textBoxHost.Text + "/" + dlcPath;
- request.Method = WebRequestMethods.Ftp.ListDirectory;
- request.Credentials = new NetworkCredential("", "");
- request.EnableSsl = false;
- request.Timeout = 1200000;
-
- ServicePoint sp = request.ServicePoint;
- Console.WriteLine("ServicePoint connections = {0}.", sp.ConnectionLimit);
- sp.ConnectionLimit = 1;
-
- using (var response = (FtpWebResponse)request.GetResponse())
- {
- using (var stream = response.GetResponseStream())
- {
- using (var reader = new StreamReader(stream, true))
- {
- string line = reader.ReadLine();
- while (line != null)
- {
- listViewPCKS.Items.Add(line);
- Console.WriteLine(line);
- line = reader.ReadLine();
- }
- }
- }
- }
-
- foreach (ListViewItem pck in listViewPCKS.Items)
- {
- int i = 0;
- FtpWebRequest request2 = (FtpWebRequest)WebRequest.Create("ftp://" + textBoxHost.Text + "/" + dlcPath + "/");
- request2.Method = WebRequestMethods.Ftp.ListDirectory;
- request2.Credentials = new NetworkCredential("", "");
- request2.EnableSsl = false;
- request2.Timeout = 1200000;
-
- ServicePoint sp2 = request2.ServicePoint;
- Console.WriteLine("NOBLEDEZ WAS HERE", sp2.ConnectionLimit);
- sp2.ConnectionLimit = 1;
-
- using (var response = (FtpWebResponse)request2.GetResponse())
- {
- using (var stream = response.GetResponseStream())
- {
- using (var reader = new StreamReader(stream, true))
- {
- string line = reader.ReadLine();
- while (line != null)
- {
- i += 1;
- pck.Tag = line;
- line = reader.ReadLine();
- }
- }
- }
- }
- if (i != 1)
- {
- pck.Remove();
- }
- else
- {
- }
- if(pck.Text != ".")
- listViewPCKS.Items.Add(pck);
- }
-
- buttonMode(mode = "stop");
- }
- catch (Exception disc)
- {
- buttonMode(mode = "start");
- MessageBox.Show(disc.ToString());
- }
- }
- else if (serverOn == true)
- {
- //Turns Server Off
- listViewPCKS.Items.Clear();
- try
- {
- buttonMode(mode = "start");
- }
- catch (Exception disc)
- {
- MessageBox.Show(disc.ToString());
- }
- }
- }
-
- private void radioButtonEur_Click(object sender, EventArgs e)
- {
- loadPcks();
- }
-
- private void radioButtonUs_Click(object sender, EventArgs e)
- {
- loadPcks();
- }
-
- private void radioButtonJap_Click(object sender, EventArgs e)
- {
- loadPcks();
- }
-
- private void listViewPCKS_Click(object sender, EventArgs e)
- {
-
- }
-
- private void listViewPCKS_MouseDown(object sender, MouseEventArgs e)
- {
- ListViewHitTestInfo HI = listViewPCKS.HitTest(e.Location);
- if (e.Button == MouseButtons.Right)
- {
- if (HI.Location == ListViewHitTestLocations.None)
- {
- }
- else
- {
- contextMenuStripCaffiine.Show(Cursor.Position);
- }
- }
- }
-
- private void replacePCKToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (listViewPCKS.SelectedItems.Count != 0)
- {
- buttonMode("loading");
- OpenFileDialog openPCK = new OpenFileDialog();
-
- if (openPCK.ShowDialog() == DialogResult.OK)
- {
- using (FTPClient client = new FTPClient("ftp://" + textBoxHost.Text, "", ""))
- client.UploadFile(openPCK.FileName, dlcPath + "/" + listViewPCKS.SelectedItems[0].Text + "/" + listViewPCKS.SelectedItems[0].Tag.ToString());
- MessageBox.Show("PCK Replaced!");
- }
- }
- buttonMode("stop");
- loadPcks();
- }
-
- private void listViewPCKS_SelectedIndexChanged(object sender, EventArgs e)
- {
-
- }
-
- private void buttonInstall_Click(object sender, EventArgs e)
- {
- if (MessageBox.Show("Replace with " + Path.GetFileNameWithoutExtension(mod) + "?", "Install Mod", MessageBoxButtons.YesNo) == DialogResult.Yes)
- {
- if (!Directory.Exists(dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/"))
- {
- Directory.CreateDirectory(dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/");
- }
- File.Copy(mod, dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/" + pcks[listViewPCKS.SelectedItems[0].Index].file);
- }
- loadPcks();
- }
-
- private void deletePCKModToolStripMenuItem_Click(object sender, EventArgs e)
- {
- Directory.Delete(dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/", true);
- loadPcks();
- }
-
- private void buttonServerToggle_Clic(object sender, EventArgs e)
- {
-
- }
-
- private void contextMenuStripCaffiine_Opening(object sender, CancelEventArgs e)
- {
-
- }
-
-
- private void replaceToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (listViewPCKS.SelectedItems.Count != 0)
- {
- buttonMode("loading");
- using (FTPClient client = new FTPClient("ftp://" + textBoxHost.Text, "", ""))
- client.UploadFile(mod, dlcPath + "/" + listViewPCKS.SelectedItems[0].Text + "/" + listViewPCKS.SelectedItems[0].Tag.ToString());
- MessageBox.Show("PCK Replaced!");
- }
- buttonMode("stop");
- loadPcks();
- }
-
- private void EurDisc_CheckedChanged(object sender, EventArgs e)
- {
- loadPcks();
- }
-
- private void EurDig_CheckedChanged(object sender, EventArgs e)
- {
- loadPcks();
- }
-
- private void USDig_CheckedChanged(object sender, EventArgs e)
- {
- loadPcks();
- }
-
- private void USDisc_CheckedChanged(object sender, EventArgs e)
- {
- loadPcks();
- }
-
- private void JPDig_CheckedChanged(object sender, EventArgs e)
- {
- loadPcks();
- }
-
- private void installPS3_Load(object sender, EventArgs e)
- {
- loadPcks();
- }
-
- private void listViewPCKS_DoubleClick(object sender, EventArgs e)
- {
- try
- {
- string folname = listViewPCKS.SelectedItems[0].Text;
- if (folname.Contains(".") && folname != "..")
- return;
- Console.WriteLine("ftp://" + currentpath + listViewPCKS.SelectedItems[0].Text);
- listViewPCKS.Items.Clear();
- FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + currentpath.Replace("//", "/") + folname);
- if (folname == "..")
- {
- string[] tmp = currentpath.Split(new[] { "/" }, StringSplitOptions.None);
- Console.WriteLine(tmp[(tmp).Length - 2]);
- string foldr = tmp[(tmp).Length - 2];
- request = (FtpWebRequest)WebRequest.Create("ftp://" + currentpath.Replace(foldr, "").Replace("//", "/"));
- }
- request.Method = WebRequestMethods.Ftp.ListDirectory;
- request.Credentials = new NetworkCredential("", "");
- request.EnableSsl = false;
- request.Timeout = 1200000;
-
- currentpath = currentpath + "/" + folname + "/";
-
- ServicePoint sp = request.ServicePoint;
- Console.WriteLine("ServicePoint connections = {0}.", sp.ConnectionLimit);
- sp.ConnectionLimit = 1;
-
- using (var response = (FtpWebResponse)request.GetResponse())
- {
- using (var stream = response.GetResponseStream())
- {
- using (var reader = new StreamReader(stream, true))
- {
- string line = reader.ReadLine();
- while (line != null)
- {
- listViewPCKS.Items.Add(line);
- Console.WriteLine(line);
- line = reader.ReadLine();
- }
- }
- }
- }
-
- foreach (ListViewItem pck in listViewPCKS.Items)
- {
- int i = 0;
- FtpWebRequest request2 = (FtpWebRequest)WebRequest.Create("ftp://" + currentpath);
- request2.Method = WebRequestMethods.Ftp.ListDirectory;
- request2.Credentials = new NetworkCredential("", "");
- request2.EnableSsl = false;
- request2.Timeout = 1200000;
-
- ServicePoint sp2 = request2.ServicePoint;
- Console.WriteLine("NOBLEDEZ WAS HERE", sp2.ConnectionLimit);
- sp2.ConnectionLimit = 1;
-
- using (var response = (FtpWebResponse)request2.GetResponse())
- {
- using (var stream = response.GetResponseStream())
- {
- using (var reader = new StreamReader(stream, true))
- {
- string line = reader.ReadLine();
- while (line != null)
- {
- i += 1;
- pck.Tag = line;
- line = reader.ReadLine();
- }
- }
- }
- }
- if (i != 1)
- {
- pck.Remove();
- }
- else
- {
- }
- listViewPCKS.Items.Add(pck);
- }
- }
- catch
- {
-
- }
- }
- }
-}
diff --git a/PCK-Studio/Forms/Utilities/installVita.Designer.cs b/PCK-Studio/Forms/Utilities/installVita.Designer.cs
deleted file mode 100644
index 440d301e..00000000
--- a/PCK-Studio/Forms/Utilities/installVita.Designer.cs
+++ /dev/null
@@ -1,358 +0,0 @@
-
-namespace PckStudio.Forms
-{
- partial class InstallVita
- {
-
- ///
- /// 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.components = new System.ComponentModel.Container();
- this.metroTabPageMain = new MetroFramework.Controls.MetroTabPage();
- 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();
- this.textBoxHost = new MetroFramework.Controls.MetroTextBox();
- this.EurDisc = new System.Windows.Forms.RadioButton();
- this.USDisc = new System.Windows.Forms.RadioButton();
- this.listViewPCKS = new System.Windows.Forms.ListView();
- this.JPDig = new System.Windows.Forms.RadioButton();
- this.metroTabControlMain = new MetroFramework.Controls.MetroTabControl();
- this.contextMenuStripCaffiine = new System.Windows.Forms.ContextMenuStrip(this.components);
- this.replaceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.replacePCKToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.metroTabPageMain.SuspendLayout();
- this.myTablePanel1.SuspendLayout();
- this.metroTabControlMain.SuspendLayout();
- this.contextMenuStripCaffiine.SuspendLayout();
- this.SuspendLayout();
- //
- // metroTabPageMain
- //
- this.metroTabPageMain.Controls.Add(this.myTablePanel1);
- this.metroTabPageMain.HorizontalScrollbarBarColor = true;
- this.metroTabPageMain.HorizontalScrollbarHighlightOnWheel = false;
- this.metroTabPageMain.HorizontalScrollbarSize = 10;
- this.metroTabPageMain.Location = new System.Drawing.Point(4, 38);
- this.metroTabPageMain.Name = "metroTabPageMain";
- this.metroTabPageMain.Size = new System.Drawing.Size(467, 617);
- this.metroTabPageMain.Style = MetroFramework.MetroColorStyle.Blue;
- this.metroTabPageMain.TabIndex = 0;
- this.metroTabPageMain.Text = "Installer";
- this.metroTabPageMain.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.metroTabPageMain.VerticalScrollbarBarColor = true;
- this.metroTabPageMain.VerticalScrollbarHighlightOnWheel = false;
- this.metroTabPageMain.VerticalScrollbarSize = 10;
- //
- // myTablePanel1
- //
- this.myTablePanel1.BackColor = System.Drawing.Color.Transparent;
- this.myTablePanel1.ColumnCount = 3;
- this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
- this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F));
- this.myTablePanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F));
- this.myTablePanel1.Controls.Add(this.EurDig, 1, 1);
- this.myTablePanel1.Controls.Add(this.USDig, 2, 1);
- this.myTablePanel1.Controls.Add(this.buttonServerToggle, 2, 0);
- this.myTablePanel1.Controls.Add(this.textBoxHost, 0, 0);
- this.myTablePanel1.Controls.Add(this.EurDisc, 1, 2);
- this.myTablePanel1.Controls.Add(this.USDisc, 2, 2);
- this.myTablePanel1.Controls.Add(this.listViewPCKS, 0, 3);
- this.myTablePanel1.Controls.Add(this.JPDig, 0, 1);
- this.myTablePanel1.Dock = System.Windows.Forms.DockStyle.Fill;
- this.myTablePanel1.Location = new System.Drawing.Point(0, 0);
- this.myTablePanel1.Margin = new System.Windows.Forms.Padding(0);
- this.myTablePanel1.Name = "myTablePanel1";
- this.myTablePanel1.RowCount = 7;
- this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
- this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F));
- this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F));
- this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
- this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
- this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
- this.myTablePanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
- this.myTablePanel1.Size = new System.Drawing.Size(467, 617);
- this.myTablePanel1.TabIndex = 2;
- //
- // EurDig
- //
- this.EurDig.Appearance = System.Windows.Forms.Appearance.Button;
- this.EurDig.AutoSize = true;
- this.EurDig.BackColor = System.Drawing.Color.Transparent;
- this.EurDig.CheckAlign = System.Drawing.ContentAlignment.BottomRight;
- this.EurDig.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal;
- this.EurDig.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
- this.EurDig.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
- this.EurDig.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.EurDig.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.EurDig.ForeColor = System.Drawing.Color.White;
- this.EurDig.Location = new System.Drawing.Point(158, 36);
- this.EurDig.Name = "EurDig";
- this.EurDig.Size = new System.Drawing.Size(100, 30);
- this.EurDig.TabIndex = 11;
- this.EurDig.Text = "EUR Digital";
- this.EurDig.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.EurDig.UseVisualStyleBackColor = false;
- this.EurDig.CheckedChanged += new System.EventHandler(this.EurDig_CheckedChanged);
- //
- // USDig
- //
- this.USDig.Appearance = System.Windows.Forms.Appearance.Button;
- this.USDig.AutoSize = true;
- this.USDig.BackColor = System.Drawing.Color.Transparent;
- this.USDig.CheckAlign = System.Drawing.ContentAlignment.BottomRight;
- this.USDig.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal;
- this.USDig.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
- this.USDig.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
- this.USDig.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.USDig.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.USDig.ForeColor = System.Drawing.Color.White;
- this.USDig.Location = new System.Drawing.Point(313, 36);
- this.USDig.Name = "USDig";
- this.USDig.Size = new System.Drawing.Size(91, 30);
- this.USDig.TabIndex = 12;
- this.USDig.Text = "US Digital";
- this.USDig.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.USDig.UseVisualStyleBackColor = false;
- this.USDig.CheckedChanged += new System.EventHandler(this.USDig_CheckedChanged);
- //
- // buttonServerToggle
- //
- this.buttonServerToggle.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
- this.buttonServerToggle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(178)))), ((int)(((byte)(13)))));
- this.buttonServerToggle.FlatAppearance.BorderSize = 0;
- this.buttonServerToggle.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.buttonServerToggle.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.buttonServerToggle.ForeColor = System.Drawing.Color.White;
- this.buttonServerToggle.Location = new System.Drawing.Point(313, 3);
- this.buttonServerToggle.Name = "buttonServerToggle";
- this.buttonServerToggle.Size = new System.Drawing.Size(137, 27);
- this.buttonServerToggle.TabIndex = 9;
- this.buttonServerToggle.Text = "Start";
- this.buttonServerToggle.UseVisualStyleBackColor = false;
- this.buttonServerToggle.Click += new System.EventHandler(this.buttonServerToggle_Click);
- //
- // textBoxHost
- //
- this.textBoxHost.Anchor = System.Windows.Forms.AnchorStyles.Left;
- this.textBoxHost.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
- this.myTablePanel1.SetColumnSpan(this.textBoxHost, 2);
- //
- //
- //
- this.textBoxHost.CustomButton.Image = null;
- this.textBoxHost.CustomButton.Location = new System.Drawing.Point(260, 2);
- this.textBoxHost.CustomButton.Name = "";
- this.textBoxHost.CustomButton.Size = new System.Drawing.Size(15, 15);
- this.textBoxHost.CustomButton.Style = MetroFramework.MetroColorStyle.Blue;
- this.textBoxHost.CustomButton.TabIndex = 1;
- this.textBoxHost.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light;
- this.textBoxHost.CustomButton.UseSelectable = true;
- this.textBoxHost.CustomButton.Visible = false;
- this.textBoxHost.IconRight = true;
- this.textBoxHost.Lines = new string[0];
- this.textBoxHost.Location = new System.Drawing.Point(3, 6);
- this.textBoxHost.MaxLength = 32767;
- this.textBoxHost.Name = "textBoxHost";
- this.textBoxHost.PasswordChar = '\0';
- this.textBoxHost.PromptText = "PS Vita IP";
- this.textBoxHost.ScrollBars = System.Windows.Forms.ScrollBars.None;
- this.textBoxHost.SelectedText = "";
- this.textBoxHost.SelectionLength = 0;
- this.textBoxHost.SelectionStart = 0;
- this.textBoxHost.ShortcutsEnabled = true;
- this.textBoxHost.Size = new System.Drawing.Size(278, 20);
- this.textBoxHost.Style = MetroFramework.MetroColorStyle.Blue;
- this.textBoxHost.TabIndex = 10;
- this.textBoxHost.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.textBoxHost.UseSelectable = true;
- this.textBoxHost.WaterMark = "PS Vita IP";
- this.textBoxHost.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109)))));
- this.textBoxHost.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel);
- //
- // EurDisc
- //
- this.EurDisc.Appearance = System.Windows.Forms.Appearance.Button;
- this.EurDisc.AutoSize = true;
- this.EurDisc.BackColor = System.Drawing.Color.Transparent;
- this.EurDisc.CheckAlign = System.Drawing.ContentAlignment.BottomRight;
- this.EurDisc.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal;
- this.EurDisc.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
- this.EurDisc.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
- this.EurDisc.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.EurDisc.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.EurDisc.ForeColor = System.Drawing.Color.White;
- this.EurDisc.Location = new System.Drawing.Point(158, 72);
- this.EurDisc.Name = "EurDisc";
- this.EurDisc.Size = new System.Drawing.Size(84, 30);
- this.EurDisc.TabIndex = 0;
- this.EurDisc.Text = "EUR Disc";
- this.EurDisc.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.EurDisc.UseVisualStyleBackColor = false;
- this.EurDisc.CheckedChanged += new System.EventHandler(this.EurDisc_CheckedChanged);
- //
- // USDisc
- //
- this.USDisc.Appearance = System.Windows.Forms.Appearance.Button;
- this.USDisc.AutoSize = true;
- this.USDisc.BackColor = System.Drawing.Color.Transparent;
- this.USDisc.CheckAlign = System.Drawing.ContentAlignment.BottomRight;
- this.USDisc.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal;
- this.USDisc.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
- this.USDisc.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
- this.USDisc.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.USDisc.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.USDisc.ForeColor = System.Drawing.Color.White;
- this.USDisc.Location = new System.Drawing.Point(313, 72);
- this.USDisc.Name = "USDisc";
- this.USDisc.Size = new System.Drawing.Size(75, 30);
- this.USDisc.TabIndex = 2;
- this.USDisc.Text = "US Disc";
- this.USDisc.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.USDisc.UseVisualStyleBackColor = false;
- this.USDisc.CheckedChanged += new System.EventHandler(this.USDisc_CheckedChanged);
- //
- // listViewPCKS
- //
- this.listViewPCKS.Activation = System.Windows.Forms.ItemActivation.TwoClick;
- this.myTablePanel1.SetColumnSpan(this.listViewPCKS, 3);
- this.listViewPCKS.Dock = System.Windows.Forms.DockStyle.Fill;
- this.listViewPCKS.Enabled = false;
- this.listViewPCKS.HideSelection = false;
- this.listViewPCKS.Location = new System.Drawing.Point(3, 108);
- this.listViewPCKS.Name = "listViewPCKS";
- this.listViewPCKS.Size = new System.Drawing.Size(461, 506);
- this.listViewPCKS.TabIndex = 3;
- this.listViewPCKS.UseCompatibleStateImageBehavior = false;
- this.listViewPCKS.View = System.Windows.Forms.View.Details;
- this.listViewPCKS.SelectedIndexChanged += new System.EventHandler(this.listViewPCKS_SelectedIndexChanged);
- this.listViewPCKS.Click += new System.EventHandler(this.listViewPCKS_Click);
- this.listViewPCKS.DoubleClick += new System.EventHandler(this.listViewPCKS_DoubleClick);
- this.listViewPCKS.MouseDown += new System.Windows.Forms.MouseEventHandler(this.listViewPCKS_MouseDown);
- //
- // JPDig
- //
- this.JPDig.Appearance = System.Windows.Forms.Appearance.Button;
- this.JPDig.AutoSize = true;
- this.JPDig.BackColor = System.Drawing.Color.Transparent;
- this.JPDig.CheckAlign = System.Drawing.ContentAlignment.BottomRight;
- this.JPDig.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal;
- this.JPDig.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
- this.JPDig.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
- this.JPDig.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.JPDig.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.JPDig.ForeColor = System.Drawing.Color.White;
- this.JPDig.Location = new System.Drawing.Point(3, 36);
- this.JPDig.Name = "JPDig";
- this.JPDig.Size = new System.Drawing.Size(47, 30);
- this.JPDig.TabIndex = 1;
- this.JPDig.Text = "JAP";
- this.JPDig.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.JPDig.UseVisualStyleBackColor = false;
- this.JPDig.CheckedChanged += new System.EventHandler(this.JPDig_CheckedChanged);
- //
- // metroTabControlMain
- //
- this.metroTabControlMain.Controls.Add(this.metroTabPageMain);
- this.metroTabControlMain.Dock = System.Windows.Forms.DockStyle.Fill;
- this.metroTabControlMain.Location = new System.Drawing.Point(0, 0);
- this.metroTabControlMain.Name = "metroTabControlMain";
- this.metroTabControlMain.SelectedIndex = 0;
- this.metroTabControlMain.Size = new System.Drawing.Size(475, 659);
- this.metroTabControlMain.Style = MetroFramework.MetroColorStyle.White;
- this.metroTabControlMain.TabIndex = 0;
- this.metroTabControlMain.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.metroTabControlMain.UseSelectable = true;
- //
- // contextMenuStripCaffiine
- //
- this.contextMenuStripCaffiine.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.replaceToolStripMenuItem,
- this.replacePCKToolStripMenuItem});
- this.contextMenuStripCaffiine.Name = "contextMenuStripCaffiine";
- this.contextMenuStripCaffiine.Size = new System.Drawing.Size(212, 48);
- this.contextMenuStripCaffiine.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStripCaffiine_Opening);
- //
- // replaceToolStripMenuItem
- //
- this.replaceToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Replace;
- this.replaceToolStripMenuItem.Name = "replaceToolStripMenuItem";
- this.replaceToolStripMenuItem.Size = new System.Drawing.Size(211, 22);
- this.replaceToolStripMenuItem.Text = "Replace";
- this.replaceToolStripMenuItem.TextImageRelation = System.Windows.Forms.TextImageRelation.TextAboveImage;
- this.replaceToolStripMenuItem.Click += new System.EventHandler(this.replaceToolStripMenuItem_Click);
- //
- // replacePCKToolStripMenuItem
- //
- this.replacePCKToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Replace;
- this.replacePCKToolStripMenuItem.Name = "replacePCKToolStripMenuItem";
- this.replacePCKToolStripMenuItem.Size = new System.Drawing.Size(211, 22);
- this.replacePCKToolStripMenuItem.Text = "Replace with external PCK";
- this.replacePCKToolStripMenuItem.Click += new System.EventHandler(this.replacePCKToolStripMenuItem_Click);
- //
- // InstallVita
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
- this.ClientSize = new System.Drawing.Size(475, 659);
- this.Controls.Add(this.metroTabControlMain);
- this.Font = new System.Drawing.Font("Segoe UI", 8.25F);
- this.ForeColor = System.Drawing.Color.White;
- this.Location = new System.Drawing.Point(0, 0);
- this.MaximizeBox = false;
- this.Name = "InstallVita";
- this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
- this.Text = "Install to Playstation®Vita";
- this.Load += new System.EventHandler(this.installVita_Load);
- this.metroTabPageMain.ResumeLayout(false);
- this.myTablePanel1.ResumeLayout(false);
- this.myTablePanel1.PerformLayout();
- this.metroTabControlMain.ResumeLayout(false);
- this.contextMenuStripCaffiine.ResumeLayout(false);
- this.ResumeLayout(false);
-
- }
-
- #endregion
-
- private MetroFramework.Controls.MetroTabPage metroTabPageMain;
- private System.Windows.Forms.TableLayoutPanel myTablePanel1;
- private System.Windows.Forms.RadioButton USDisc;
- private System.Windows.Forms.RadioButton JPDig;
- private System.Windows.Forms.RadioButton EurDisc;
- private System.Windows.Forms.ListView listViewPCKS;
- private MetroFramework.Controls.MetroTabControl metroTabControlMain;
- private System.Windows.Forms.ContextMenuStrip contextMenuStripCaffiine;
- private System.Windows.Forms.ToolStripMenuItem replacePCKToolStripMenuItem;
- private System.Windows.Forms.Button buttonServerToggle;
- private MetroFramework.Controls.MetroTextBox textBoxHost;
- private System.Windows.Forms.ToolStripMenuItem replaceToolStripMenuItem;
- private System.Windows.Forms.RadioButton USDig;
- private System.Windows.Forms.RadioButton EurDig;
- }
-}
\ No newline at end of file
diff --git a/PCK-Studio/Forms/Utilities/installVita.cs b/PCK-Studio/Forms/Utilities/installVita.cs
deleted file mode 100644
index 713115cb..00000000
--- a/PCK-Studio/Forms/Utilities/installVita.cs
+++ /dev/null
@@ -1,472 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.IO;
-using System.Net;
-using System.Windows.Forms;
-using PckStudio.Classes.Misc;
-using PckStudio.ToolboxItems;
-
-namespace PckStudio.Forms
-{
- public partial class InstallVita : ThemeForm
- {
- public InstallVita(string mod)
- {
- InitializeComponent();
-
- this.mod = mod;
-
- if (mod == null)
- {
- replaceToolStripMenuItem.Visible = false;
- }
- else
- {
- replaceToolStripMenuItem.Text = "Replace with " + Path.GetFileName(mod);
- }
- }
-
- string loca = "";
- string dlcPath = "";
- string mod = "";
- bool serverOn = false;
- string currentpath = "";
-
-
-
-
- //items class for use in bedrock skin conversion
- public class pckDir
- {
- public string folder { get; set; }
- public string file { get; set; }
- }
-
- List pcks = new List();
-
- private void updateDatabase()
- {
- pcks.Clear();
- pcks.Add(new pckDir() { folder = "Battle & Beasts", file = "BattleAndBeasts.pck" });
- pcks.Add(new pckDir() { folder = "Battle & Beasts 2", file = "BattleAndBeasts2.pck" });
- pcks.Add(new pckDir() { folder = "Biome Settlers Pack 1", file = "SkinsBiomeSettlers1.pck" });
- pcks.Add(new pckDir() { folder = "Biome Settlers Pack 2", file = "SkinsBiomeSettlers2.pck" });
- //pcks.Add(new pckDir() { folder = "Campfire Tales Skin Pack", file = "" });
- pcks.Add(new pckDir() { folder = "Doctor Who Skins Volume I", file = "SkinPackDrWho.pck" });
- pcks.Add(new pckDir() { folder = "Doctor Who Skins Volume II", file = "SkinPackDrWho.pck" });
- pcks.Add(new pckDir() { folder = "Festive Skin Pack", file = "SkinsFestive.pck" });
- pcks.Add(new pckDir() { folder = "FINAL FANTASY XV Skin Pack", file = "FinalFantasyXV.pck" });
- pcks.Add(new pckDir() { folder = "Magic The Gathering Skin Pack", file = "magicthegathering.pck" });
- pcks.Add(new pckDir() { folder = "Mini Game Heroes Skin Pack", file = "Minigame2.pck" });
- pcks.Add(new pckDir() { folder = "Mini Game Masters Skin Pack", file = "Minigame.pck" });
- pcks.Add(new pckDir() { folder = "Moana Character Pack", file = "Moana.pck" });
- pcks.Add(new pckDir() { folder = "Power Rangers Skin Pack", file = "PowerRangers.pck" });
- pcks.Add(new pckDir() { folder = "Redstone Specialists Skin Pack", file = "SkinsRedstoneSpecialists.pck" });
- pcks.Add(new pckDir() { folder = "Skin Pack 1", file = "Skins1.pck" });
- pcks.Add(new pckDir() { folder = "Star Wars Classic Skin Pack", file = "StarWarsClassicPack.pck" });
- pcks.Add(new pckDir() { folder = "Star Wars Prequel Skin Pack", file = "StarWarsPrequel.pck" });
- pcks.Add(new pckDir() { folder = "Star Wars Rebels Skin Pack", file = "StarWarsRebelsPack.pck" });
- pcks.Add(new pckDir() { folder = "Star Wars Sequel Skin Pack", file = "StarWarsSequel.pck" });
- pcks.Add(new pckDir() { folder = "Story Mode Skin Pack", file = "PackStoryMode.pck" });
- pcks.Add(new pckDir() { folder = "Stranger Things Skin Pack", file = "StrangerThings.pck" });
- pcks.Add(new pckDir() { folder = "Strangers Biome Settlers 3 Skin Pack", file = "BiomeSettlers3_Strangers.pck" });
- pcks.Add(new pckDir() { folder = "The Incredibles Skin Pack", file = "Incredibles.pck" });
- pcks.Add(new pckDir() { folder = "The Simpsons Skin Pack", file = "SkinPackSimpsons.pck" });
- pcks.Add(new pckDir() { folder = "Villains Skin Pack", file = "Villains.pck" });
- }
-
- public void buttonMode(string mode)
- {
- if (mode == "start")
- {
- buttonServerToggle.BackColor = Color.FromArgb(68, 178, 13);
- serverOn = false;
- buttonServerToggle.Text = "Start";
- listViewPCKS.Enabled = false;
- }
- else if (mode == "stop")
- {
- serverOn = true;
- buttonServerToggle.BackColor = Color.Red;
- buttonServerToggle.Text = "Stop";
- listViewPCKS.Enabled = true;
- }
- else if (mode == "loading")
- {
- buttonServerToggle.BackColor = Color.MediumAquamarine;
- buttonServerToggle.Text = "Wait..";
- }
- }
-
- private void loadPcks()
- {
-
- string region = "";
- if (JPDig.Checked)
- {
- region = "NPJB00549/";
- }
- else if (EurDisc.Checked)
- {
- region = "BLES01976/";
- }
- else if (EurDig.Checked)
- {
- region = "NPEB01899/";
- }
- else if (USDisc.Checked)
- {
- region = "BLUS31426/";
- }
- else if (USDig.Checked)
- {
- region = "NPUB31419/";
- }
-
- string device = "/dev_hdd0/";
-
- if (region != "" && device != "")
- {
- dlcPath = device + "game/" + region;
- buttonServerToggle.Enabled = true;
- if (listViewPCKS.Columns.Count == 0)
- {
- listViewPCKS.Columns.Add(dlcPath, 395);
- }
- }
- }
-
- private void buttonServerToggle_Click(object sender, EventArgs e)
- {
- if (serverOn == false)
- {
- //Makes sure user typed in their ip
- if (textBoxHost.Text == "")
- {
- MessageBox.Show("Please enter a valid Playstation®3 IP!");
- return;
- }
-
- //Turns Server On
- try
- {
- buttonMode("loading");
-
- ServicePointManager.Expect100Continue = true;
-
- //ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(OnValidateCertificate);
- FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + textBoxHost.Text + "/" + dlcPath);
- currentpath = textBoxHost.Text + "/" + dlcPath;
- request.Method = WebRequestMethods.Ftp.ListDirectory;
- request.Credentials = new NetworkCredential("", "");
- request.EnableSsl = false;
- request.Timeout = 1200000;
-
- ServicePoint sp = request.ServicePoint;
- Console.WriteLine("ServicePoint connections = {0}.", sp.ConnectionLimit);
- sp.ConnectionLimit = 1;
-
- using (var response = (FtpWebResponse)request.GetResponse())
- {
- using (var stream = response.GetResponseStream())
- {
- using (var reader = new StreamReader(stream, true))
- {
- string line = reader.ReadLine();
- while (line != null)
- {
- listViewPCKS.Items.Add(line);
- Console.WriteLine(line);
- line = reader.ReadLine();
- }
- }
- }
- }
-
- foreach (ListViewItem pck in listViewPCKS.Items)
- {
- int i = 0;
- FtpWebRequest request2 = (FtpWebRequest)WebRequest.Create("ftp://" + textBoxHost.Text + "/" + dlcPath + "/");
- request2.Method = WebRequestMethods.Ftp.ListDirectory;
- request2.Credentials = new NetworkCredential("", "");
- request2.EnableSsl = false;
- request2.Timeout = 1200000;
-
- ServicePoint sp2 = request2.ServicePoint;
- Console.WriteLine("NOBLEDEZ WAS HERE", sp2.ConnectionLimit);
- sp2.ConnectionLimit = 1;
-
- using (var response = (FtpWebResponse)request2.GetResponse())
- {
- using (var stream = response.GetResponseStream())
- {
- using (var reader = new StreamReader(stream, true))
- {
- string line = reader.ReadLine();
- while (line != null)
- {
- i += 1;
- pck.Tag = line;
- line = reader.ReadLine();
- }
- }
- }
- }
- if (i != 1)
- {
- pck.Remove();
- }
- else
- {
- }
- if (pck.Text != ".")
- listViewPCKS.Items.Add(pck);
- }
-
- buttonMode("stop");
- }
- catch (Exception disc)
- {
- buttonMode("start");
- MessageBox.Show(disc.ToString());
- }
- }
- else if (serverOn == true)
- {
- //Turns Server Off
- listViewPCKS.Items.Clear();
- try
- {
- buttonMode("start");
- }
- catch (Exception disc)
- {
- MessageBox.Show(disc.ToString());
- }
- }
- }
-
- private void radioButtonEur_Click(object sender, EventArgs e)
- {
- loadPcks();
- }
-
- private void radioButtonUs_Click(object sender, EventArgs e)
- {
- loadPcks();
- }
-
- private void radioButtonJap_Click(object sender, EventArgs e)
- {
- loadPcks();
- }
-
- private void listViewPCKS_Click(object sender, EventArgs e)
- {
-
- }
-
- private void listViewPCKS_MouseDown(object sender, MouseEventArgs e)
- {
- ListViewHitTestInfo HI = listViewPCKS.HitTest(e.Location);
- if (e.Button == MouseButtons.Right)
- {
- if (HI.Location == ListViewHitTestLocations.None)
- {
- }
- else
- {
- contextMenuStripCaffiine.Show(Cursor.Position);
- }
- }
- }
-
- private void replacePCKToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (listViewPCKS.SelectedItems.Count != 0)
- {
- buttonMode("loading");
- OpenFileDialog openPCK = new OpenFileDialog();
-
- if (openPCK.ShowDialog() == DialogResult.OK)
- {
- using (FTPClient client = new FTPClient("ftp://" + textBoxHost.Text, "", ""))
- client.UploadFile(openPCK.FileName, dlcPath + "/" + listViewPCKS.SelectedItems[0].Text + "/" + listViewPCKS.SelectedItems[0].Tag.ToString());
- MessageBox.Show("PCK Replaced!");
- }
- }
- buttonMode("stop");
- loadPcks();
- }
-
- private void listViewPCKS_SelectedIndexChanged(object sender, EventArgs e)
- {
-
- }
-
- private void buttonInstall_Click(object sender, EventArgs e)
- {
- if (MessageBox.Show("Replace with " + Path.GetFileNameWithoutExtension(mod) + "?", "Install Mod", MessageBoxButtons.YesNo) == DialogResult.Yes)
- {
- if (!Directory.Exists(dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/"))
- {
- Directory.CreateDirectory(dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/");
- }
- File.Copy(mod, dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/" + pcks[listViewPCKS.SelectedItems[0].Index].file);
- }
- loadPcks();
- }
-
- private void deletePCKModToolStripMenuItem_Click(object sender, EventArgs e)
- {
- Directory.Delete(dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/", true);
- loadPcks();
- }
-
- private void buttonServerToggle_Clic(object sender, EventArgs e)
- {
-
- }
-
- private void contextMenuStripCaffiine_Opening(object sender, CancelEventArgs e)
- {
-
- }
-
-
- private void replaceToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (listViewPCKS.SelectedItems.Count != 0)
- {
- buttonMode("loading");
- using (FTPClient client = new FTPClient("ftp://" + textBoxHost.Text, "", ""))
- client.UploadFile(mod, dlcPath + "/" + listViewPCKS.SelectedItems[0].Text + "/" + listViewPCKS.SelectedItems[0].Tag.ToString());
- MessageBox.Show("PCK Replaced!");
- }
- buttonMode("stop");
- loadPcks();
- }
-
- private void EurDisc_CheckedChanged(object sender, EventArgs e)
- {
- loadPcks();
- }
-
- private void EurDig_CheckedChanged(object sender, EventArgs e)
- {
- loadPcks();
- }
-
- private void USDig_CheckedChanged(object sender, EventArgs e)
- {
- loadPcks();
- }
-
- private void USDisc_CheckedChanged(object sender, EventArgs e)
- {
- loadPcks();
- }
-
- private void JPDig_CheckedChanged(object sender, EventArgs e)
- {
- loadPcks();
- }
-
- private void installVita_Load(object sender, EventArgs e)
- {
- loadPcks();
- }
-
- private void listViewPCKS_DoubleClick(object sender, EventArgs e)
- {
- try
- {
- string folname = listViewPCKS.SelectedItems[0].Text;
- if (folname.Contains(".") && folname != "..")
- return;
- Console.WriteLine("ftp://" + currentpath + listViewPCKS.SelectedItems[0].Text);
- listViewPCKS.Items.Clear();
- FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + currentpath.Replace("//", "/") + folname);
- if (folname == "..")
- {
- string[] tmp = currentpath.Split(new[] { "/" }, StringSplitOptions.None);
- Console.WriteLine(tmp[(tmp).Length - 2]);
- string foldr = tmp[(tmp).Length - 2];
- request = (FtpWebRequest)WebRequest.Create("ftp://" + currentpath.Replace(foldr, "").Replace("//", "/"));
- }
- request.Method = WebRequestMethods.Ftp.ListDirectory;
- request.Credentials = new NetworkCredential("", "");
- request.EnableSsl = false;
- request.Timeout = 1200000;
-
- currentpath = currentpath + "/" + folname + "/";
-
- ServicePoint sp = request.ServicePoint;
- Console.WriteLine("ServicePoint connections = {0}.", sp.ConnectionLimit);
- sp.ConnectionLimit = 1;
-
- using (var response = (FtpWebResponse)request.GetResponse())
- {
- using (var stream = response.GetResponseStream())
- {
- using (var reader = new StreamReader(stream, true))
- {
- string line = reader.ReadLine();
- while (line != null)
- {
- listViewPCKS.Items.Add(line);
- Console.WriteLine(line);
- line = reader.ReadLine();
- }
- }
- }
- }
-
- foreach (ListViewItem pck in listViewPCKS.Items)
- {
- int i = 0;
- FtpWebRequest request2 = (FtpWebRequest)WebRequest.Create("ftp://" + currentpath);
- request2.Method = WebRequestMethods.Ftp.ListDirectory;
- request2.Credentials = new NetworkCredential("", "");
- request2.EnableSsl = false;
- request2.Timeout = 1200000;
-
- ServicePoint sp2 = request2.ServicePoint;
- Console.WriteLine("NOBLEDEZ WAS HERE", sp2.ConnectionLimit);
- sp2.ConnectionLimit = 1;
-
- using (var response = (FtpWebResponse)request2.GetResponse())
- {
- using (var stream = response.GetResponseStream())
- {
- using (var reader = new StreamReader(stream, true))
- {
- string line = reader.ReadLine();
- while (line != null)
- {
- i += 1;
- pck.Tag = line;
- line = reader.ReadLine();
- }
- }
- }
- }
- if (i != 1)
- {
- pck.Remove();
- }
- else
- {
- }
- listViewPCKS.Items.Add(pck);
- }
- }
- catch
- {
-
- }
- }
- }
-}
diff --git a/PCK-Studio/Forms/Utilities/installVita.resx b/PCK-Studio/Forms/Utilities/installVita.resx
deleted file mode 100644
index 8a3a7dc8..00000000
--- a/PCK-Studio/Forms/Utilities/installVita.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/installWiiU.Designer.cs b/PCK-Studio/Forms/Utilities/installWiiU.Designer.cs
deleted file mode 100644
index c57f3c9b..00000000
--- a/PCK-Studio/Forms/Utilities/installWiiU.Designer.cs
+++ /dev/null
@@ -1,348 +0,0 @@
-namespace PckStudio.Forms
-{
- partial class InstallWiiU
- {
- ///
- /// 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.components = new System.ComponentModel.Container();
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(InstallWiiU));
- this.metroTabPageMain = new MetroFramework.Controls.MetroTabPage();
- 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();
- this.buttonSelect = new System.Windows.Forms.Button();
- this.radioButtonUSB = new System.Windows.Forms.RadioButton();
- this.textBoxHost = new MetroFramework.Controls.MetroTextBox();
- this.radioButtonEur = new System.Windows.Forms.RadioButton();
- this.radioButtonUs = new System.Windows.Forms.RadioButton();
- this.radioButtonJap = new System.Windows.Forms.RadioButton();
- this.listViewPCKS = new System.Windows.Forms.ListView();
- this.TextBoxPackImage = new MetroFramework.Controls.MetroTextBox();
- this.PackImageSelection = new System.Windows.Forms.Button();
- this.metroTabControlMain = new MetroFramework.Controls.MetroTabControl();
- this.contextMenuStripCaffiine = new System.Windows.Forms.ContextMenuStrip(this.components);
- this.replaceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.replacePCKToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.metroTabPageMain.SuspendLayout();
- this.myTablePanel1.SuspendLayout();
- this.panel1.SuspendLayout();
- this.metroTabControlMain.SuspendLayout();
- this.contextMenuStripCaffiine.SuspendLayout();
- this.SuspendLayout();
- //
- // metroTabPageMain
- //
- this.metroTabPageMain.Controls.Add(this.myTablePanel1);
- this.metroTabPageMain.HorizontalScrollbarBarColor = true;
- this.metroTabPageMain.HorizontalScrollbarHighlightOnWheel = false;
- this.metroTabPageMain.HorizontalScrollbarSize = 10;
- resources.ApplyResources(this.metroTabPageMain, "metroTabPageMain");
- this.metroTabPageMain.Name = "metroTabPageMain";
- this.metroTabPageMain.Style = MetroFramework.MetroColorStyle.Blue;
- this.metroTabPageMain.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.metroTabPageMain.VerticalScrollbarBarColor = true;
- this.metroTabPageMain.VerticalScrollbarHighlightOnWheel = false;
- this.metroTabPageMain.VerticalScrollbarSize = 10;
- //
- // myTablePanel1
- //
- this.myTablePanel1.BackColor = System.Drawing.Color.Transparent;
- resources.ApplyResources(this.myTablePanel1, "myTablePanel1");
- this.myTablePanel1.Controls.Add(this.buttonServerToggle, 2, 0);
- this.myTablePanel1.Controls.Add(this.panel1, 0, 2);
- this.myTablePanel1.Controls.Add(this.textBoxHost, 0, 0);
- this.myTablePanel1.Controls.Add(this.radioButtonEur, 0, 3);
- this.myTablePanel1.Controls.Add(this.radioButtonUs, 1, 3);
- this.myTablePanel1.Controls.Add(this.radioButtonJap, 2, 3);
- this.myTablePanel1.Controls.Add(this.listViewPCKS, 0, 4);
- this.myTablePanel1.Controls.Add(this.TextBoxPackImage, 0, 1);
- this.myTablePanel1.Controls.Add(this.PackImageSelection, 2, 1);
- this.myTablePanel1.Name = "myTablePanel1";
- //
- // buttonServerToggle
- //
- resources.ApplyResources(this.buttonServerToggle, "buttonServerToggle");
- this.buttonServerToggle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(178)))), ((int)(((byte)(13)))));
- this.buttonServerToggle.FlatAppearance.BorderSize = 0;
- this.buttonServerToggle.ForeColor = System.Drawing.Color.White;
- this.buttonServerToggle.Name = "buttonServerToggle";
- this.buttonServerToggle.UseVisualStyleBackColor = false;
- this.buttonServerToggle.Click += new System.EventHandler(this.buttonServerToggle_Click);
- //
- // panel1
- //
- this.myTablePanel1.SetColumnSpan(this.panel1, 3);
- this.panel1.Controls.Add(this.radioButtonSystem);
- this.panel1.Controls.Add(this.buttonSelect);
- this.panel1.Controls.Add(this.radioButtonUSB);
- resources.ApplyResources(this.panel1, "panel1");
- this.panel1.Name = "panel1";
- //
- // radioButtonSystem
- //
- resources.ApplyResources(this.radioButtonSystem, "radioButtonSystem");
- this.radioButtonSystem.BackColor = System.Drawing.Color.Transparent;
- this.radioButtonSystem.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal;
- this.radioButtonSystem.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
- this.radioButtonSystem.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
- this.radioButtonSystem.ForeColor = System.Drawing.Color.White;
- this.radioButtonSystem.Name = "radioButtonSystem";
- this.radioButtonSystem.TabStop = true;
- this.radioButtonSystem.UseVisualStyleBackColor = false;
- this.radioButtonSystem.CheckedChanged += new System.EventHandler(this.radioButtonSystem_CheckedChanged);
- //
- // buttonSelect
- //
- this.buttonSelect.BackgroundImage = global::PckStudio.Properties.Resources.sdDownload;
- resources.ApplyResources(this.buttonSelect, "buttonSelect");
- this.buttonSelect.ForeColor = System.Drawing.Color.White;
- this.buttonSelect.Name = "buttonSelect";
- this.buttonSelect.UseVisualStyleBackColor = true;
- this.buttonSelect.Click += new System.EventHandler(this.buttonSelect_Click);
- //
- // radioButtonUSB
- //
- resources.ApplyResources(this.radioButtonUSB, "radioButtonUSB");
- this.radioButtonUSB.BackColor = System.Drawing.Color.Transparent;
- this.radioButtonUSB.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal;
- this.radioButtonUSB.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
- this.radioButtonUSB.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
- this.radioButtonUSB.ForeColor = System.Drawing.Color.White;
- this.radioButtonUSB.Name = "radioButtonUSB";
- this.radioButtonUSB.TabStop = true;
- this.radioButtonUSB.UseVisualStyleBackColor = false;
- this.radioButtonUSB.CheckedChanged += new System.EventHandler(this.radioButtonUSB_CheckedChanged);
- //
- // textBoxHost
- //
- resources.ApplyResources(this.textBoxHost, "textBoxHost");
- this.textBoxHost.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
- this.myTablePanel1.SetColumnSpan(this.textBoxHost, 2);
- //
- //
- //
- this.textBoxHost.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image")));
- this.textBoxHost.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode")));
- this.textBoxHost.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location")));
- this.textBoxHost.CustomButton.Name = "";
- this.textBoxHost.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size")));
- this.textBoxHost.CustomButton.Style = MetroFramework.MetroColorStyle.Blue;
- this.textBoxHost.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex")));
- this.textBoxHost.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light;
- this.textBoxHost.CustomButton.UseSelectable = true;
- this.textBoxHost.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible")));
- this.textBoxHost.IconRight = true;
- this.textBoxHost.Lines = new string[0];
- this.textBoxHost.MaxLength = 32767;
- this.textBoxHost.Name = "textBoxHost";
- this.textBoxHost.PasswordChar = '\0';
- this.textBoxHost.PromptText = "Wii U IP";
- this.textBoxHost.ScrollBars = System.Windows.Forms.ScrollBars.None;
- this.textBoxHost.SelectedText = "";
- this.textBoxHost.SelectionLength = 0;
- this.textBoxHost.SelectionStart = 0;
- this.textBoxHost.ShortcutsEnabled = true;
- this.textBoxHost.Style = MetroFramework.MetroColorStyle.Blue;
- this.textBoxHost.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.textBoxHost.UseSelectable = true;
- this.textBoxHost.WaterMark = "Wii U IP";
- this.textBoxHost.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109)))));
- this.textBoxHost.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel);
- //
- // radioButtonEur
- //
- resources.ApplyResources(this.radioButtonEur, "radioButtonEur");
- this.radioButtonEur.BackColor = System.Drawing.Color.Transparent;
- this.radioButtonEur.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal;
- this.radioButtonEur.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
- this.radioButtonEur.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
- this.radioButtonEur.ForeColor = System.Drawing.Color.White;
- this.radioButtonEur.Name = "radioButtonEur";
- this.radioButtonEur.TabStop = true;
- this.radioButtonEur.UseVisualStyleBackColor = false;
- this.radioButtonEur.Click += new System.EventHandler(this.radioButtonEur_Click);
- //
- // radioButtonUs
- //
- resources.ApplyResources(this.radioButtonUs, "radioButtonUs");
- this.radioButtonUs.BackColor = System.Drawing.Color.Transparent;
- this.radioButtonUs.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal;
- this.radioButtonUs.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
- this.radioButtonUs.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
- this.radioButtonUs.ForeColor = System.Drawing.Color.White;
- this.radioButtonUs.Name = "radioButtonUs";
- this.radioButtonUs.TabStop = true;
- this.radioButtonUs.UseVisualStyleBackColor = false;
- this.radioButtonUs.Click += new System.EventHandler(this.radioButtonUs_Click);
- //
- // radioButtonJap
- //
- resources.ApplyResources(this.radioButtonJap, "radioButtonJap");
- this.radioButtonJap.BackColor = System.Drawing.Color.Transparent;
- this.radioButtonJap.FlatAppearance.CheckedBackColor = System.Drawing.Color.Teal;
- this.radioButtonJap.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Aqua;
- this.radioButtonJap.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
- this.radioButtonJap.ForeColor = System.Drawing.Color.White;
- this.radioButtonJap.Name = "radioButtonJap";
- this.radioButtonJap.TabStop = true;
- this.radioButtonJap.UseVisualStyleBackColor = false;
- this.radioButtonJap.Click += new System.EventHandler(this.radioButtonJap_Click);
- //
- // listViewPCKS
- //
- this.listViewPCKS.Activation = System.Windows.Forms.ItemActivation.TwoClick;
- this.myTablePanel1.SetColumnSpan(this.listViewPCKS, 3);
- resources.ApplyResources(this.listViewPCKS, "listViewPCKS");
- this.listViewPCKS.HideSelection = false;
- this.listViewPCKS.Name = "listViewPCKS";
- this.listViewPCKS.UseCompatibleStateImageBehavior = false;
- this.listViewPCKS.View = System.Windows.Forms.View.Details;
- this.listViewPCKS.SelectedIndexChanged += new System.EventHandler(this.listViewPCKS_SelectedIndexChanged);
- this.listViewPCKS.Click += new System.EventHandler(this.listViewPCKS_Click);
- this.listViewPCKS.MouseDown += new System.Windows.Forms.MouseEventHandler(this.listViewPCKS_MouseDown);
- //
- // TextBoxPackImage
- //
- resources.ApplyResources(this.TextBoxPackImage, "TextBoxPackImage");
- this.TextBoxPackImage.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
- this.myTablePanel1.SetColumnSpan(this.TextBoxPackImage, 2);
- //
- //
- //
- this.TextBoxPackImage.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image1")));
- this.TextBoxPackImage.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode1")));
- this.TextBoxPackImage.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location1")));
- this.TextBoxPackImage.CustomButton.Name = "";
- this.TextBoxPackImage.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size1")));
- this.TextBoxPackImage.CustomButton.Style = MetroFramework.MetroColorStyle.Blue;
- this.TextBoxPackImage.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex1")));
- this.TextBoxPackImage.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light;
- this.TextBoxPackImage.CustomButton.UseSelectable = true;
- this.TextBoxPackImage.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible1")));
- this.TextBoxPackImage.IconRight = true;
- this.TextBoxPackImage.Lines = new string[0];
- this.TextBoxPackImage.MaxLength = 32767;
- this.TextBoxPackImage.Name = "TextBoxPackImage";
- this.TextBoxPackImage.PasswordChar = '\0';
- this.TextBoxPackImage.PromptText = "Pack Image";
- this.TextBoxPackImage.ScrollBars = System.Windows.Forms.ScrollBars.None;
- this.TextBoxPackImage.SelectedText = "";
- this.TextBoxPackImage.SelectionLength = 0;
- this.TextBoxPackImage.SelectionStart = 0;
- this.TextBoxPackImage.ShortcutsEnabled = true;
- this.TextBoxPackImage.Style = MetroFramework.MetroColorStyle.Blue;
- this.TextBoxPackImage.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.TextBoxPackImage.UseSelectable = true;
- this.TextBoxPackImage.WaterMark = "Pack Image";
- this.TextBoxPackImage.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109)))));
- this.TextBoxPackImage.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel);
- //
- // PackImageSelection
- //
- resources.ApplyResources(this.PackImageSelection, "PackImageSelection");
- this.PackImageSelection.BackColor = System.Drawing.Color.Sienna;
- this.PackImageSelection.FlatAppearance.BorderSize = 0;
- this.PackImageSelection.ForeColor = System.Drawing.Color.White;
- this.PackImageSelection.Name = "PackImageSelection";
- this.PackImageSelection.UseVisualStyleBackColor = false;
- this.PackImageSelection.Click += new System.EventHandler(this.PackImageSelection_Click);
- //
- // metroTabControlMain
- //
- this.metroTabControlMain.Controls.Add(this.metroTabPageMain);
- resources.ApplyResources(this.metroTabControlMain, "metroTabControlMain");
- this.metroTabControlMain.Name = "metroTabControlMain";
- this.metroTabControlMain.SelectedIndex = 0;
- this.metroTabControlMain.Style = MetroFramework.MetroColorStyle.White;
- this.metroTabControlMain.Theme = MetroFramework.MetroThemeStyle.Dark;
- this.metroTabControlMain.UseSelectable = true;
- //
- // contextMenuStripCaffiine
- //
- this.contextMenuStripCaffiine.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.replaceToolStripMenuItem,
- this.replacePCKToolStripMenuItem});
- this.contextMenuStripCaffiine.Name = "contextMenuStripCaffiine";
- resources.ApplyResources(this.contextMenuStripCaffiine, "contextMenuStripCaffiine");
- this.contextMenuStripCaffiine.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStripCaffiine_Opening);
- //
- // replaceToolStripMenuItem
- //
- this.replaceToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Replace;
- this.replaceToolStripMenuItem.Name = "replaceToolStripMenuItem";
- resources.ApplyResources(this.replaceToolStripMenuItem, "replaceToolStripMenuItem");
- this.replaceToolStripMenuItem.Click += new System.EventHandler(this.replaceToolStripMenuItem_Click);
- //
- // replacePCKToolStripMenuItem
- //
- this.replacePCKToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Replace;
- this.replacePCKToolStripMenuItem.Name = "replacePCKToolStripMenuItem";
- resources.ApplyResources(this.replacePCKToolStripMenuItem, "replacePCKToolStripMenuItem");
- this.replacePCKToolStripMenuItem.Click += new System.EventHandler(this.replacePCKToolStripMenuItem_Click);
- //
- // InstallWiiU
- //
- resources.ApplyResources(this, "$this");
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
- this.Controls.Add(this.metroTabControlMain);
- this.ForeColor = System.Drawing.Color.White;
- this.MaximizeBox = false;
- this.Name = "InstallWiiU";
- this.metroTabPageMain.ResumeLayout(false);
- this.myTablePanel1.ResumeLayout(false);
- this.myTablePanel1.PerformLayout();
- this.panel1.ResumeLayout(false);
- this.metroTabControlMain.ResumeLayout(false);
- this.contextMenuStripCaffiine.ResumeLayout(false);
- this.ResumeLayout(false);
-
- }
-
- #endregion
-
- private MetroFramework.Controls.MetroTabPage metroTabPageMain;
- private System.Windows.Forms.TableLayoutPanel myTablePanel1;
- private System.Windows.Forms.RadioButton radioButtonJap;
- private System.Windows.Forms.RadioButton radioButtonEur;
- private System.Windows.Forms.RadioButton radioButtonUs;
- private System.Windows.Forms.ListView listViewPCKS;
- private MetroFramework.Controls.MetroTabControl metroTabControlMain;
- private System.Windows.Forms.ContextMenuStrip contextMenuStripCaffiine;
- private System.Windows.Forms.ToolStripMenuItem replacePCKToolStripMenuItem;
- private System.Windows.Forms.Panel panel1;
- private System.Windows.Forms.RadioButton radioButtonSystem;
- private System.Windows.Forms.Button buttonSelect;
- private System.Windows.Forms.RadioButton radioButtonUSB;
- private System.Windows.Forms.Button buttonServerToggle;
- private MetroFramework.Controls.MetroTextBox textBoxHost;
- private System.Windows.Forms.ToolStripMenuItem replaceToolStripMenuItem;
- private MetroFramework.Controls.MetroTextBox TextBoxPackImage;
- private System.Windows.Forms.Button PackImageSelection;
- }
-}
\ No newline at end of file
diff --git a/PCK-Studio/Forms/Utilities/installWiiU.cs b/PCK-Studio/Forms/Utilities/installWiiU.cs
deleted file mode 100644
index ca0d09aa..00000000
--- a/PCK-Studio/Forms/Utilities/installWiiU.cs
+++ /dev/null
@@ -1,485 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.IO;
-using System.IO.Compression;
-using System.Net;
-using System.Windows.Forms;
-using System.Diagnostics;
-
-using PckStudio.Classes.Misc;
-using OMI.Formats.Archive;
-using OMI.Workers.Archive;
-using OMI.Workers.Pck;
-using OMI.Formats.Pck;
-using PckStudio.ToolboxItems;
-
-namespace PckStudio.Forms
-{
- public partial class InstallWiiU : ThemeForm
- {
- string loca = "";
- string dlcPath = "";
- string mod = "";
- bool serverOn = false;
- ConsoleArchive archive = new ConsoleArchive();
-
- public InstallWiiU(string mod)
- {
- InitializeComponent();
-
- this.mod = mod;
-
- if (mod == null)
- {
- replaceToolStripMenuItem.Visible = false;
- }
- else
- {
- replaceToolStripMenuItem.Text = "Replace with " + Path.GetFileName(mod);
- }
- }
-
- //items class for use in bedrock skin conversion
- public class pckDir
- {
- public string folder { get; set; }
- public string file { get; set; }
- }
-
- private void buttonSelect_Click(object sender, EventArgs e)
- {
- FolderBrowserDialog sdFind = new FolderBrowserDialog();
- if (sdFind.ShowDialog() == DialogResult.OK)
- {
- try
- {
- string sdRoot = Directory.GetDirectoryRoot(sdFind.SelectedPath);
-
- if (!Directory.Exists(sdRoot + "/wiiu/apps/"))
- {
- Directory.CreateDirectory(sdRoot + "/wiiu/apps/");
- }
-
- using (WebClient client = new WebClient())
- {
- try
- {
- File.WriteAllBytes(sdRoot + "/wiiu/apps/apps.zip", PckStudio.Properties.Resources.apps);
- }
- catch
- {
- MessageBox.Show("Could not extract resources to:\n" + sdRoot + "/wiiu/apps/apps.zip");
- return;
- }
- }
-
- string zipPath = sdRoot + "/wiiu/apps/apps.zip";
- string extractPath = sdRoot + "/wiiu/apps/temp";
- ZipFile.ExtractToDirectory(zipPath, extractPath);
-
- if (!Directory.Exists(sdRoot + "/wiiu/apps/ftpiiu_everywhere"))
- {
- Directory.Move(sdRoot + "/wiiu/apps/temp/ftpiiu_everywhere", sdRoot + "/wiiu/apps/ftpiiu_everywhere");
- }
- if (!Directory.Exists(sdRoot + "/wiiu/apps/homebrew_launcher"))
- {
- Directory.Move(sdRoot + "/wiiu/apps/temp/homebrew_launcher", sdRoot + "/wiiu/apps/homebrew_launcher");
- }
- if (!Directory.Exists(sdRoot + "/wiiu/apps/mocha_fshax"))
- {
- Directory.Move(sdRoot + "/wiiu/apps/temp/mocha_fshax", sdRoot + "/wiiu/apps/mocha_fshax");
- }
- if (!File.Exists(sdRoot + "/wiiu/apps/sign_c2w_patcher.elf"))
- {
- File.Move(sdRoot + "/wiiu/apps/temp/sign_c2w_patcher.elf", sdRoot + "/wiiu/apps/sign_c2w_patcher.elf");
- }
-
- File.Delete(sdRoot + "/wiiu/apps/apps.zip");
- Directory.Delete(sdRoot + "/wiiu/apps/temp/", true);
- }
- catch (Exception er)
- {
- MessageBox.Show(er.ToString());
- }
- MessageBox.Show("Done");
- }
- }
- List pcks = new List();
- PckFile currentPCK = null;
-
- private void updateDatabase()
- {
- pcks.Clear();
- pcks.Add(new pckDir() { folder = "Battle & Beasts", file = "BattleAndBeasts.pck" });
- pcks.Add(new pckDir() { folder = "Battle & Beasts 2", file = "BattleAndBeasts2.pck" });
- pcks.Add(new pckDir() { folder = "Biome Settlers Pack 1", file = "SkinsBiomeSettlers1.pck" });
- pcks.Add(new pckDir() { folder = "Biome Settlers Pack 2", file = "SkinsBiomeSettlers2.pck" });
- //pcks.Add(new pckDir() { folder = "Campfire Tales Skin Pack", file = "" });
- pcks.Add(new pckDir() { folder = "Doctor Who Skins Volume I", file = "SkinPackDrWho.pck" });
- pcks.Add(new pckDir() { folder = "Doctor Who Skins Volume II", file = "SkinPackDrWho.pck" });
- pcks.Add(new pckDir() { folder = "Festive Skin Pack", file = "SkinsFestive.pck" });
- pcks.Add(new pckDir() { folder = "FINAL FANTASY XV Skin Pack", file = "FinalFantasyXV.pck" });
- pcks.Add(new pckDir() { folder = "Magic The Gathering Skin Pack", file = "magicthegathering.pck" });
- pcks.Add(new pckDir() { folder = "Mini Game Heroes Skin Pack", file = "Minigame2.pck" });
- pcks.Add(new pckDir() { folder = "Mini Game Masters Skin Pack", file = "Minigame.pck" });
- pcks.Add(new pckDir() { folder = "Moana Character Pack", file = "Moana.pck" });
- pcks.Add(new pckDir() { folder = "Power Rangers Skin Pack", file = "PowerRangers.pck" });
- pcks.Add(new pckDir() { folder = "Redstone Specialists Skin Pack", file = "SkinsRedstoneSpecialists.pck" });
- pcks.Add(new pckDir() { folder = "Skin Pack 1", file = "Skins1.pck" });
- pcks.Add(new pckDir() { folder = "Star Wars Classic Skin Pack", file = "StarWarsClassicPack.pck" });
- pcks.Add(new pckDir() { folder = "Star Wars Prequel Skin Pack", file = "StarWarsPrequel.pck" });
- pcks.Add(new pckDir() { folder = "Star Wars Rebels Skin Pack", file = "StarWarsRebelsPack.pck" });
- pcks.Add(new pckDir() { folder = "Star Wars Sequel Skin Pack", file = "StarWarsSequel.pck" });
- pcks.Add(new pckDir() { folder = "Story Mode Skin Pack", file = "PackStoryMode.pck" });
- pcks.Add(new pckDir() { folder = "Stranger Things Skin Pack", file = "StrangerThings.pck" });
- pcks.Add(new pckDir() { folder = "Strangers Biome Settlers 3 Skin Pack", file = "BiomeSettlers3_Strangers.pck" });
- pcks.Add(new pckDir() { folder = "The Incredibles Skin Pack", file = "Incredibles.pck" });
- pcks.Add(new pckDir() { folder = "The Simpsons Skin Pack", file = "SkinPackSimpsons.pck" });
- pcks.Add(new pckDir() { folder = "Villains Skin Pack", file = "Villains.pck" });
- }
-
- public void buttonMode(string mode)
- {
- if (mode == "start")
- {
- buttonServerToggle.BackColor = Color.FromArgb(68, 178, 13);
- serverOn = false;
- buttonServerToggle.Text = "Start";
- listViewPCKS.Enabled = false;
- }
- else if (mode == "stop")
- {
- serverOn = true;
- buttonServerToggle.BackColor = Color.Red;
- buttonServerToggle.Text = "Stop";
- listViewPCKS.Enabled = true;
- }
- else if (mode == "loading")
- {
- buttonServerToggle.BackColor = Color.MediumAquamarine;
- buttonServerToggle.Text = "Wait..";
- }
- }
-
- private void loadPcks()
- {
- string region = "";
- if (radioButtonEur.Checked)
- {
- region = "101d7500";
- }
- else if (radioButtonUs.Checked)
- {
- region = "101d9d00";
- }
- else if (radioButtonJap.Checked)
- {
- region = "101dbe00";
- }
-
- string device = "";
- if (radioButtonSystem.Checked)
- {
- device = "storage_mlc";
- }
- else if (radioButtonUSB.Checked)
- {
- device = "storage_usb";
- }
-
- if (region != "" && device != "")
- {
- dlcPath = device + "/usr/title/0005000e/" + region + "/content/WiiU/DLC/";
- buttonServerToggle.Enabled = true;
- if (listViewPCKS.Columns.Count == 0)
- {
- listViewPCKS.Columns.Add(dlcPath, 395);
- }
- }
- }
-
- private void buttonServerToggle_Click(object sender, EventArgs e)
- {
- if (serverOn == false)
- {
- //Makes sure user typed in their ip
- if (textBoxHost.Text == "")
- {
- MessageBox.Show("Please enter a valid Wii U IP!");
- return;
- }
-
- //Turns Server On
- try
- {
- buttonMode("loading");
-
- ServicePointManager.Expect100Continue = true;
-
- //ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(OnValidateCertificate);
- FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + textBoxHost.Text + "/" + dlcPath);
- request.Method = WebRequestMethods.Ftp.ListDirectory;
- request.Credentials = new NetworkCredential("", "a3262443");
- request.EnableSsl = false;
- request.Timeout = 1200000;
-
- ServicePoint sp = request.ServicePoint;
- Debug.WriteLine("ServicePoint connections = {0}.", sp.ConnectionLimit);
- sp.ConnectionLimit = 1;
-
- using (var response = (FtpWebResponse)request.GetResponse())
- {
- using (var stream = response.GetResponseStream())
- {
- using (var reader = new StreamReader(stream, true))
- {
- string line = reader.ReadLine();
- while (line != null)
- {
- listViewPCKS.Items.Add(line);
- line = reader.ReadLine();
- }
- }
- }
- }
-
- foreach (ListViewItem pck in listViewPCKS.Items)
- {
- int i = 0;
- FtpWebRequest request2 = (FtpWebRequest)WebRequest.Create("ftp://" + textBoxHost.Text + "/" + dlcPath + "/" + pck.Text + "/");
- request2.Method = WebRequestMethods.Ftp.ListDirectory;
- request2.Credentials = new NetworkCredential("", "a3262443");
- request2.EnableSsl = false;
- request2.Timeout = 1200000;
-
- ServicePoint sp2 = request2.ServicePoint;
- Console.WriteLine("NOBLEDEZ//PHOENIXARC WAS HERE", sp2.ConnectionLimit);
- sp2.ConnectionLimit = 1;
-
- using (var response = (FtpWebResponse)request2.GetResponse())
- {
- using (var stream = response.GetResponseStream())
- {
- using (var reader = new StreamReader(stream, true))
- {
- string line = reader.ReadLine();
- while (line != null)
- {
- i += 1;
- pck.Tag = line;
- line = reader.ReadLine();
- }
- }
- }
- }
- if (i != 1)
- {
- pck.Remove();
- }
- }
-
- buttonMode("stop");
- }
- catch (Exception disc)
- {
- buttonMode("start");
- MessageBox.Show(disc.ToString());
- }
- }
- else if (serverOn == true)
- {
- //Turns Server Off
- listViewPCKS.Items.Clear();
- try
- {
- buttonMode("start");
- }
- catch (Exception disc)
- {
- MessageBox.Show(disc.ToString());
- }
- }
- }
-
- private void radioButtonEur_Click(object sender, EventArgs e)
- {
- loadPcks();
- }
-
- private void radioButtonUs_Click(object sender, EventArgs e)
- {
- loadPcks();
- }
-
- private void radioButtonJap_Click(object sender, EventArgs e)
- {
- loadPcks();
- }
-
- private void listViewPCKS_Click(object sender, EventArgs e)
- {
-
- }
-
- private void listViewPCKS_MouseDown(object sender, MouseEventArgs e)
- {
- ListViewHitTestInfo hitTestInfo = listViewPCKS.HitTest(e.Location);
- if (e.Button == MouseButtons.Right)
- {
- if (hitTestInfo.Location == ListViewHitTestLocations.None)
- {
- }
- else
- {
- contextMenuStripCaffiine.Show(Cursor.Position);
- }
- }
- }
-
- private void replacePCKToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (listViewPCKS.SelectedItems.Count != 0)
- {
- buttonMode("loading");
- OpenFileDialog openPCK = new OpenFileDialog();
-
- openPCK.Filter = "PCK File|*.pck";
-
- if (openPCK.ShowDialog() == DialogResult.OK)
- {
- using (FTPClient client = new FTPClient("ftp://" + textBoxHost.Text, "", "a3262443"))
- client.UploadFile(openPCK.FileName, dlcPath + "/" + listViewPCKS.SelectedItems[0].Text + "/" + listViewPCKS.SelectedItems[0].Tag.ToString());
- if(TextBoxPackImage.Text != "")
- {
- string PackID = GetPackID(openPCK.FileName);
- GetARCFromConsole();
- ReplacePackImage(PackID);
- SendARCToConsole();
- }
- MessageBox.Show("PCK Replaced!");
- }
- }
- buttonMode("stop");
- loadPcks();
- }
-
- private void listViewPCKS_SelectedIndexChanged(object sender, EventArgs e)
- {
-
- }
-
- private void buttonInstall_Click(object sender, EventArgs e)
- {
- if (MessageBox.Show("Replace with " + Path.GetFileNameWithoutExtension(mod) + "?", "Install Mod", MessageBoxButtons.YesNo) == DialogResult.Yes)
- {
- if (!Directory.Exists(dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/"))
- {
- Directory.CreateDirectory(dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/");
- }
- File.Copy(mod, dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/" + pcks[listViewPCKS.SelectedItems[0].Index].file);
- }
- loadPcks();
- }
-
- private void deletePCKModToolStripMenuItem_Click(object sender, EventArgs e)
- {
- Directory.Delete(dlcPath + pcks[listViewPCKS.SelectedItems[0].Index].folder + "/", true);
- loadPcks();
- }
-
- private void buttonServerToggle_Clic(object sender, EventArgs e)
- {
-
- }
-
- private void contextMenuStripCaffiine_Opening(object sender, CancelEventArgs e)
- {
-
- }
-
- private void radioButtonSystem_CheckedChanged(object sender, EventArgs e)
- {
- loadPcks();
- }
-
- private void radioButtonUSB_CheckedChanged(object sender, EventArgs e)
- {
- loadPcks();
- }
-
- private void replaceToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (listViewPCKS.SelectedItems.Count != 0)
- {
- buttonMode("loading");
- using (FTPClient client = new FTPClient("ftp://" + textBoxHost.Text, "", "a3262443"))
- client.UploadFile(mod, dlcPath + "/" + listViewPCKS.SelectedItems[0].Text + "/" + listViewPCKS.SelectedItems[0].Tag.ToString());
- if (TextBoxPackImage.Text != "")
- {
- string PackID = GetPackID(mod);
- GetARCFromConsole();
- ReplacePackImage(PackID);
- SendARCToConsole();
- }
- MessageBox.Show("PCK Replaced!");
- }
- buttonMode("stop");
- loadPcks();
- }
-
- private string GetPackID(string filename)
- {
- var reader = new PckFileReader();
- currentPCK = reader.FromFile(filename);
- if (currentPCK.TryGetFile("0", PckFile.FileData.FileType.InfoFile, out var file) &&
- file.Properties.HasProperty("PACKID"))
- {
- file.Properties.GetProperty("PACKID");
- }
- throw new KeyNotFoundException();
- }
-
- private void GetARCFromConsole()
- {
- using (FTPClient client = new FTPClient("ftp://" + textBoxHost.Text, "", "a3262443"))
- client.DownloadFile(dlcPath + "../../Common/Media/MediaWiiU.arc", Program.AppData + "MediaWiiU.arc");
- var reader = new ARCFileReader();
- archive = reader.FromStream(new MemoryStream(File.ReadAllBytes(Program.AppData + "MediaWiiU.arc")));
- }
-
- private void ReplacePackImage(string PackID)
- {
- if (archive.ContainsKey("Graphics\\PackGraphics\\" + PackID + ".png"))
- archive["Graphics\\PackGraphics\\" + PackID + ".png"] = File.ReadAllBytes(TextBoxPackImage.Text);
- else
- archive.Add("Graphics\\PackGraphics\\" + PackID + ".png", File.ReadAllBytes(TextBoxPackImage.Text));
- }
-
- private void SendARCToConsole()
- {
- using (FTPClient client = new FTPClient("ftp://" + textBoxHost.Text, "", "a3262443"))
- {
- MemoryStream ms = new MemoryStream();
- var writer = new ARCFileWriter(archive);
- writer.WriteToStream(ms);
- File.WriteAllBytes(Program.AppData + "MediaWiiU.arc", ms.ToArray());
- client.UploadFile(Program.AppData + "MediaWiiU.arc", dlcPath + "../../Common/Media/MediaWiiU.arc");
- archive.Clear();
- currentPCK.Files.Clear();
- currentPCK = null;
- ms.Dispose();
- }
- GC.Collect();
- }
-
- private void PackImageSelection_Click(object sender, EventArgs e)
- {
- OpenFileDialog ofd = new OpenFileDialog();
- ofd.Filter = "PNG Image|*.png";
- if(ofd.ShowDialog() == DialogResult.OK)
- TextBoxPackImage.Text = ofd.FileName;
- }
- }
-}
diff --git a/PCK-Studio/Forms/Utilities/pckCenter.Designer.cs b/PCK-Studio/Forms/Utilities/pckCenter.Designer.cs
index e970f0d1..9cf0cbb0 100644
--- a/PCK-Studio/Forms/Utilities/pckCenter.Designer.cs
+++ b/PCK-Studio/Forms/Utilities/pckCenter.Designer.cs
@@ -138,6 +138,7 @@
// pictureBox1
//
resources.ApplyResources(this.pictureBox1, "pictureBox1");
+ this.pictureBox1.Image = global::PckStudio.Properties.Resources.pckCenterHeader;
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.TabStop = false;
//
@@ -196,13 +197,13 @@
//
// deleteToolStripMenuItem
//
- this.deleteToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Del;
+ this.deleteToolStripMenuItem.Image = global::PckStudio.Properties.Resources.file_delete;
this.deleteToolStripMenuItem.Name = "deleteToolStripMenuItem";
resources.ApplyResources(this.deleteToolStripMenuItem, "deleteToolStripMenuItem");
//
// exportToolStripMenuItem
//
- this.exportToolStripMenuItem.Image = global::PckStudio.Properties.Resources.ExportFile;
+ this.exportToolStripMenuItem.Image = global::PckStudio.Properties.Resources.file_export;
this.exportToolStripMenuItem.Name = "exportToolStripMenuItem";
resources.ApplyResources(this.exportToolStripMenuItem, "exportToolStripMenuItem");
//
diff --git a/PCK-Studio/Forms/Utilities/pckCenter.resx b/PCK-Studio/Forms/Utilities/pckCenter.resx
index 136fca95..0b2cf2da 100644
--- a/PCK-Studio/Forms/Utilities/pckCenter.resx
+++ b/PCK-Studio/Forms/Utilities/pckCenter.resx
@@ -306,1841 +306,6 @@
Fill
-
-
- iVBORw0KGgoAAAANSUhEUgAAA+gAAAPoCAYAAABNo9TkAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- wAAADsABataJCQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4yMfEgaZUAAP+NSURBVHhe7P0H
- mGRV2T1ufwxZgmSQoIBKEFFUUBReJCgKoiAqGAGzJEUJghjAgIjpFQMvggIiGREFDKioKGZFBXPCCCbC
- MDl0ffuuf+3+HYqaUF3dM909a13XukSYqTpnn33qnPWsJ/z/giAIgiAIgiAIgiAIgiAIgiAIgiAIgiAI
- giAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAI
- giAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAI
- giAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAI
- giAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAI
- giAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAI
- giAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAI
- giAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAI
- giAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAI
- giAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAI
- giAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAI
- giAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAI
- giAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAI
- giAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAI
- giAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAI
- giAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAI
- giAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAI
- giAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAI
- giAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAI
- giAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAI
- giAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgmCcY7kOp3S4
- fIMrdLhigys1uPIAbH5OZfN7sH5/PZ56jPWYgyAIgiAIgiAIgmDcoym8m4K7imwieZXCVQsf0OFqhasX
- rtHhmoUP7HCtwrU7XKfDdTtcrw/Wv4P1c7B+Nvqu+r2OwbE4LnSMjtVxO36sgr9b1EfMB0EQBEEQBEEQ
- BEsETQHeFN9N4d0U3VVoV3FNMG9QuGHhRoUPKty4cJPCTTvcrPDBhQ8p3LzDLQq37PChDT5sIWz+Oax/
- 32dV+mzfg77TdzsGx+O4HJ/jdLyOe/3CKvqdUxX2VdA3xXy3iI+AD4IgCIIgCIIgCPpCFZBViHeL8CrA
- Oc1VfBOtxCshW0U3oVuFNjFcBfVWhVsXblO4beF2hY8s3L7wUYWPLtyh8DGFj+3wcYU7drhTh49fTNY/
- j/UzfB76bN/j+3wvOgbH47geUegYHatjfnihc6hC37lVUV8FvTWwFk0Rb62aAt5aVvHeFO5BEARBEARB
- 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
- J5889NGPfnToqquuan3ve99r/eUvf2kL6omGGTNmtMX+T3/609bXvva11gUXXNA69dRTh5zjHnvsMW+L
- LbaYu8IKKzSFfBXw1qgKeGtnDat4t7bVeW8K9+q4uzaukWvVFO2upWvq2rrGrrVr7trbA1WwNx32mhJv
- D9lL9lTTXbfn7L1au25P2pv2qL3aFOtx1oMgCIIgCIIgmDCoolzzLU24munr1Smvonynwpq6rm7YPGyz
- sTmeNW3dLO3XF6o/1llderPa5OqQNwW5juIcV+64mmcp1OqgdS7n0jbFuHpqKdnqrLm86rCbQlyad9MF
- b4vwBz7wgXN22mmneS960YuGiNRLLrmk9eMf/7h17733duTssgkuPoefQ98t4B/ykIfMLWtHwDfFu7W1
- xk3h7hq4Fq6Ja+MaNUW7a+hauqY6zbvGrrVr7to3BXt12O0VzeeUO9hD9pI9ZW9Vd92es/fsQXvRnrQ3
- u8V6dxp8s8FcEARBEARBEATBuAAnsY5E031dozeifKNC9b0LEuVPLzQ6S+q6umHzsHXrri55TVt/d6H6
- Y83DjDer9ePdgpxokybNedWwTL24ZmbVGW+KcanpNS29OuJtIS4N/aEPfei8Aw44YP4JJ5wwdO6557Zu
- vPHG1j//+c+OHA36xdSpU1vf+c53WmeffXbr6KOPHtp9993nr7feenPKejeFe9Nxd21co6Zor067a+ra
- usautWveS7DbI/aKPaNjvD1kL9V0+Oqu23P2nj1oL9qT9qZGc91i3V62p+1te9xet+fr6La46kEQBEEQ
- BEEQLBU0U9jXKDS+qnZf36JQEy71vTV9vTrlBJCaYILI6KzXFNZact26315YXXKpy+cU6vRtXJfRXWqT
- 1Y93C3I1zdUdr/Xi6qCrM34/MT5lypTZ2267bdsRf//739/6+te/3rr77rs7sjIYa9x+++1q4lsf+MAH
- Wi996UuHdtxxx/kPeMADCHfp8soHqmh37VxDDepc01rXXl12175bsNsj9oqUeHvHHrKX7Knqrttr9lyt
- XZcKb0++uNAerWLd3q1p8LVm3R6v3eDtffeAeyGuehAEQRAEQRAESwTdbrl031pX/pBCY6x0yH5soSZc
- taZcCnF1ygkgQoggOqFQ6ro0ZPXDunWbka0ZWHXJNXXT6VtDN53VpTmrUa4OeRXk6sab7jgnVip1W4yr
- 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
- 7b///hqg9RQr3TzqqKPGrBmc7t46wxvLVb6LGJcGTbz9p/O//j8nm2CpQr1bpLeP80EPetDAjcA6M8EJ
- JN+tKRrX2LUkimpquxpgteEHF9a6c03hzDcngPwGjxT2oJRkridhJW3e/GsjtnTxrqnuHGvil0OteR2n
- /24u7J///OfO2YwMeiCUz7IG1t2+FQDobmBmnzsGASmiXOBA4ELTPL0XrFMt8RBM6C7xsLbVTZ910EEH
- Dd15552dIxh9XHHFFYs1N19/hYMPPrj1ve99r/M3lzys/yMe8Qh7uztIUru9249+Y1yD8wvr7PRuN73W
- ptdO737L7FH9DjSQG2SfBkEQBMEyiyrCq+gmHqROerhyaaSsERPoxRC5fuglLwzDxSdRzmUijqQZq+Os
- rrluyZypQwq7XXNOFkdLWq+63O8WEnbcV24hsdmeZ667uFTuJQ1N03Rj32GHHXoKk17kOn70ox/tfMLo
- 4xe/+EVrxx13rK45McixltqL0rYJEyKOO0yoE3PdIn3YRT/jjDM6nzwyCELoNl4+SzDA90sf16H8i4Wu
- r7Ritb81tV2NuHnUjyjU4E3d+aKawi0KfvNrPboaYmnK6orNvza27w2FBDDxy6GWas7ht9es37RDDz10
- YBd9jz32cF2sQxXo9jMH1/epMzf2jTgXLHh34dsKBS64/O4N9fmO03/nsEvLVzuvwV29P7jprrVrO33T
- TTedq3naWOGHP/xhO4hTvmuxuPPOO7e7v4/1pIJecL+ecsopNXBlz/sN8VtizaydNfRbU2en+w36YGF1
- 0/1G+a3ym+W3S08DWR4CSc25/GkgFwRBEASLQFOQE+OEuIcowe3lT+RbZ1ZplJq/SIUUEef0ERWoQRF6
- CIdhuGhuVigFlMPkBZbbJL3YS+1TCmutOddc92Tio7rmHCxOFhGnNreXQ9iutzViaUmDQ33OOee0HvKQ
- h/QUIQsicX7uued2PmX0oaHZyiuvrKa8ig8OMCGo7tb/cgytoX9PLEv35WoT8v4OUe/vt110KcpTp07t
- fPrIcN555zl3n+t4amM4aeQcYAKIS0n82AdGXEltVysumEPw+L0eDbHjGSD46je+prrbh+Zfv7qQENaE
- kKPP2eeoSh+3XncaDXfLLbd0zmpk6LjodS00LSMKpbfb5806aOKcq69hmcAFYahxnv/tHjPY614RBFGb
- 3i79KPuu3ZNhrEai6aGwySab3GevL4runY9//ONLZJZ7N371q1+1dt111xrE8lviN8V1tm7Wzzpaz6ab
- 3qxNr53e9yu0X2V7CChtXpgGckEQBEGwAFRRLpLtQUmQVzePECfCCW9CgqPiZVDjl4cXGucjDZLT56G7
- XSFxgZyXykeFYbhAElmPKfTyyhH1Ist14lp6ueVcqu9cmGvOaa01tsNN4NZcc805xOjQ0MCmZl/g+l1w
- wQXtpmnlOPoicU7UjwUIr5e//OUcb84gh7YpOKRRo5RtQQ61twQ7Acc99Getq7+nidmwi37yySd3vmFk
- 4FgWIeaziCDf1WwMJ02bE/yWQvtAsMb+kDpcU9v9bo9myrCMKYFZwVa/708s3LeQc08Ic/IJZO4pgSb9
- XCM2jve9z3jGMwZuT7777rtXF91+dj2sh9Rqbjj33H3gONwX0u+JQTXQL+7QfePfc9WlvnN43Te1iRw3
- vd43rrNATLsMZPvtt5+vL8FY4Le//W1r44037rn3F8Ytt9yyfU8taUfdb4exhur1y3EITsk4cE2smbWz
- htbSmjZr02undwET+0a/BIEee8nvXh3H5l1DRl5S3oMgCIJlGk1RXl1yDjkXhiD3UkaME+JeAIlvQluK
- mpRbQkKXVg9agkIKrjTI3TrU/RcJjaVF9bqVvf57GI4H2p/qNNUSq/XllmvKZbzVywsJMg3BOIG1Q3uz
- 1rzpBDZd81nPfOYzh/72t791XrOXDIxuuvjii9sd18sx9E3inFs4FvjrX/9aG7A1m2BZM2LYGupWTWhK
- 2db8jPggDAU9uLhEib9DxKlX5yrOXXXVVYeM1RoEH/rQh5y/1HmfT/g4HoEXbrF0cunaHGEd1e0Rv7cC
- obIvZDbJeBpNeEYI2MqY4nYKItmvnHtCmCjm6EsfN4JLbbhGYtZJEGPWoPP09Soon1NddFkN1qTZLI8z
- LmjBqdXEjih37+g8b40IQrXzaqJ1ofdnHXN35onadNdbgEFTNN83TYbF//7v/3aOZnQxUpGO7q1LLrlk
- iQfd/vGPf7QOPPDA7iZy3W56rU33G1UzHGRcCOoImMjC8DtXx7EJ8tvDzICkvAdBEATLJDz4RKmrU06U
- ezByYDwka4otJ9wL2Y6FmgRJtSW4q5DQoZWbIm3NixCnz0uRFyIvcOrO0MtSk88Lw/A+9MKq2RchoWaT
- KOc4SWUngghzL7kaYRFDHCppxbXWvOmat2tpzTUejVnc/YBY0Ahru+226ykqFofE+Wh0Qe8FYrGsC3HO
- BSSua1o7UUZcqG8m1IgM/8utJdilmRPw1piTzmX1dwkUgnru0UcfPZBSMmKrHJvjqmPVOPjSudVME5J1
- 5rnGcPYLF1LauQCqngUj7dq+KAjiek54PngucOw59xz82jDOvlQPTpjZj8SaNbp35513Hk0XvWYVuDac
- 2k8UvrdQKrU57QIX7ieNyfYu9KxCYtCzpznxoLrp7iduunWuowitvSCDevp2oOuVr3zl0Fiklys56acm
- vZvbb799u6ngksZnP/tZafqyPWSRdLvptTbdb5R9IZCiHEKPAAEmgRS/dd4bBCftKe8bgkDMgaS8B0EQ
- BMsMPOykLHLLpS1yRbx0SVsnykWxOeQi2gS56LaXGy86GhER4AS3l0MvZ5wKYkJEnKDgqHAp1CeiF0ki
- o9YChmHYmxxyAoMLyCk/qZDwMXOaADE6SsqocVJqkTl+tUN7s9aciJl1yCGHDP3nP//pvEovGVx99dWt
- Rz/60T1FxOKSOJeKPxY488wzdcfm/BEVzc7UREVtPmZNiTQ13+ifiXWOehXp/jwBzTkkpmeUz5076Czt
- t7/97dag6Z67tpqhXVpofBhBaX/4za2N4aSdy3Tye+63fazA0eTQC+By7JsN4+xXwSP70zxy62atCFxB
- jFmf+cxnOmc5Mnz961+3Nlx0jfqsjeyGLxcS1u4Nws/9Y20EiT2zHKPnmEwv/+tZRhB6dnlOWcvqpltf
- JQSyAKy5vWBP+K7hlPenPOUp8+++++7OUY0ejDncaKON7nMv9MvHPvaxrSU9lcHs9COOOGKo3LfVTa+l
- In6Taqd33fZlOwimCOT4TVNu4DfP9RLMF/C3nxkCNeU9Xd6DIAiCSY2axs5hEZnmlnsAilbXZlREuVR1
- DrmHJWfciw43Qpot54EIJ7wJCqlq0gW9nHEjTiyUwsbh4WZ48SEw0MtT5SlhGN6P6jTraCiCgVtKeHCe
- NMLimBPmXnYJoGYHaq6idOLpD37wg+d+6Utf6rw+Lxl84Qtf0AW9p2joh8T5xz72sc6njh5mzpzZOuSQ
- Q+r3cGLVjFf3XCozt5fg48p+o1AdLfev0v+vIt2ac9uJEO4q4TZTQKTzdSOCYIo+AeWzmu55dYmlCXMf
- BW04j4KkXEelRrUxHLdxLFOCfbbnB6e+NozznJD14Xng9159vACSPdp00afqSj9oKvajHvUojfjq+ugR
- QPzp5M4BFyDwLOKgCxwQ48qvCD7OLNZJCDK/qptOJBKLRCPxSEQSk82yEdfbd9ov040e+9Of/tQ5qtGD
- RmyDinTU9f0rX/lK51OXDJQhbLbZZtVN91tUO73XuemCHoIfgiAa9fmN854gQ8gcf0F/7xzNlHfGgb2t
- UeFYBp+CIAiCYImiCnMPOGnsXq64LdxyzosXPC8xHorSJbkyotkaUolsc8S9fHmISksjwj1UCQpiwrxZ
- D1ovj5rBSBf0kkNYqDtDdX7ooTya5HiMFXt9XxiOFeu+I8a5kETCBYXcQXWcRBrHnDD3sqtOlkN1nxTc
- F77whUNj4e4tCD/96U9bT37yk3uKhJFwLEapmcXNWex8B/ecyOP21U7U1pDY0+CKIOOYV2GuzrmSSCeY
- u2fK3809NKptEJxwwgmObUHuuT2iKaDfYVlL0rU5wkSMyRmDzjxfXBBJAryEk34kSp6kkhPFng+eB5q2
- dbvo7Vr0a6+9tnO2I4MMiPI51sh1M85NwMR9ISjg2ePZJGuL+CbQlWZ5znne1V4qMsQ886qbLs1a0MPx
- e655ljkHAbFmynvNUnF97lWKMBYzyn/5y1+2Ntxww+F7og/aP4JPwyz35tCPfvSjziePPe66666WOfLl
- u+v95bfJ9Xe/WENraU39rvmdE4S05ta+O+W9dnl33by3yBDRX2Esg1BBEARBMKbwEKuOOWFujImXKi8o
- Hnoi1NLJPAi97HHKOSFEuQelusIqyGuaLSFOhBPfXhi9xJxbyN0hJrwkeanx8NVd14slJ+LyBomNMAzv
- T6KGQ84RJMi5kFJ4CR3CsKZYEwoaZXGoOHrtDu2f/vSnO6/JYw9u72te85rW8ssv30sojIgf+chHOp8+
- erjxxhtb6623XvN7muntnNhmejvH1zpz0K15t0j3z/5b7fbtGvj7U/fff/+BaqzVnj/wgQ90XN3uOTHj
- 91WJg99iadnNsWrEi87Xo90YbkHwXJFyLAOL6PUcqWPXqotOKHsW1Fp07nO7Fn2vvfYaaJ3uvPPO1iqr
- rCLLQL2zPgDcWdfKvSO45Tklbb0GMQjx2nxMXbPnoDGGJo44doFpf06WmFR9WWF1dKFnXE15d/2di0CO
- wAzhOXXVVVedffnll3eObvTQp0jvFuYCUPZSm1OmTJmrdn7Q5oX94Pzzz2+tscYatdO73yh72iQEgUX7
- WlDF+4DMIO8Tsobs7+6Udxl9Air2mlI87zKpSw+CIAgmHLxAcTmqMBd5JsylJErxqzOV9yrU2I3T0OwS
- TZRLU5duK2WQIOd+E+Mepl68iG+CwosLIWH8j5exLxVyfOrLLMfJy1Ol6HkYhgsmAcjF1RiMIOA6eakl
- DAgdotDLbq19nrnLLrvMH4t0217QIIuLufbaa/cSCiOmzxxtcGuLgOr+rqZAJ/IIRwKd0CO8NYRr1qBX
- kV7p3/szBL1roR565qDpxIIT5XO63XO/owtyzwnP5li1JSlYPF/q2LUFuejcUcEm62VtOc9c9Nk///nP
- O2c9MrzoRS9yDQk/wREp9DJKrinURK+WAcj80qjUJBHlWzVVuo4N3bjQM9GILyKQGPTnjQATaGimvHvu
- ed55vrkvnY9rNJw98e53v7tzdKMHGRkbbLBB9/7tZlOcV2FOGCvh4GKr2cdZa6211hwTApbUDPU//OEP
- rSc+8YmOy/fXXg/umdpAzv4WjPROIXuoO+Vd0EQpgpIEmX7GubpuGcUWBEEQTCh4YNXmbxwOL1Ac8yrM
- Pei8iHiZ4niIVKsn90D0QqI+vIpyL4XccQ6Cl0QvW9wckW8PVi9ehISXVS+2hISXSvV6BAWnz4sMeplF
- D+YwDBfMOntbSijxIY2XY8ctbI72mrbCCivMPvXUU5fYLOSvfvWrA3VmXxCJhtGG8W4rrrhir+9rCnTr
- WAW63yc16IQDEVZFelOoCzj699VJFSi528zyQWqr/d2tttqKuJISXDuUNzu3N2vPl6Z7XrEgF727Fr12
- dPd84J4SaNNe9rKXDVSI3mkWR3xyZt0bdeSa55RgspRpGWDKtDzvPPscp+NV6uXYCXVuuh4sggzSqa2r
- Z6MGcs2Ud89DNe4+X1aL555nnHvTPdnuQeC85syZ0znK0cGtt97aWn/99bv3cGW3OG8Kc/tbLbhAhl4L
- mrf53xnlHp7/ta99rfMNYwu/TW9729uGll9+ecflGPx+1QZy7jf3l+BKr5R32SKuBSNBXxzXUeaDbAjB
- FoGp1KUHQRAE4xbcEy9p6hB1ZRdl9kLixaMpzNV2eYnidOiq/oZC6XxqyaVQqhf3IkKUS003HsULlpdT
- L6acCg9V4puY8CLJ1fOi4iXXy5J6Mw9ggkLzpUovs2EYLppEmhd/gkatLZeW20vAeeme9dCHPnTed7/7
- 3c5r8Njij3/8Y+vZz352L4EwMMditrQO8FOmTOn5fYVETbMGvbp6giJ+1wQa/c4RyIRYU6jLbhCQJM40
- v5LmPJ0A6Xz1iMDpL5/jeFznKjj95voN5izWzu3N2vOl5Z5XCAZ3u+ieL82O7p4lsqysmwCIZ8KdUtQH
- SbcW0HjYwx7WDGi4dq6V55WgsvT02iyOuKud7pu1+sq/rJ3nJXfdej6m0LOyprxzcWuXd3PWpdA369IF
- pGvzONkBM/bcc8/56rBHE7fccsuCRHoV6E1xzq2uwpwglmXjt8PxCWj45/aUh+c85zlDg04dWFzcdNNN
- rS222MJxNhvICdq457pT3mUt2PMaz3pPse9r0z+j2Oy3WpfuerqWgkZBEARBMC7Qnc6uxo4jIMrsZcOL
- CWeDK1CFOYfDy4uXDnVf3IGzCtU5Sl2XckaU14ZIte7VS5AHqpdZAtxLCfepCggPfw9eLwAcBS8G6CWq
- SS8HYRgumhwvL9rcMALOS/i8Qw89dGjq1KmdV9+xw7Rp01onn3yymt9e4mBgvvnNb+580+jhtNNO6/ld
- XSRqahd3jp6gIqEl6EgcE+k13Z1Q9zuInHO/hVWU3bnccsvNHrS84KlPfarjcSx+T2VN+F5lQ/p6cBSV
- HMl0qp3bl6Z7XtHtogsECwJ7ziiVqnPRCVqp4Z4jArmeF9NlfgyC008/3XV0X/g8wZLaLI5rz71vNour
- a6b23JoRdFAzzjw7BTuch3rnmvIuW0GXd268ayDoILNMSrZggGekvcINFoT2DJy+zTbbzBtt4asZ4+qr
- r97cw033XEZIU5z77ajC3DHZ44JJglH2mP/136atuuqqcwSYZsyY0fmmsYPfrJe85CWO22+Z46vBMfdd
- TXlvdnm33tbd+rsO3XXpphfUeelpHhcEQRCMC3gYVddcuhcXQI2Wmjr1iV5KdGTnBHQLczWCGvmoK/cw
- FLmWZqZ+nBNRRTmH3MsPQc7R8zLkgU+AewmYtvzyy89Ya621Zm2++eazH/3oR8/Zdddd5+65555zn/Ws
- Z80rD+N5Rx111PzyIj7/ne9859CS5rve9a4FstefD8NxzNb73ve+dvOoJQGptVLPfe9YcNCZ2L0gBb/X
- dzX54he/uDkHnZghVLh5MoCIY6nrfvu4o8SX30JiXeYQISFIyQkmeu7lmHa+fkSwzuVziCvBTYEC3y2l
- Xs1zbXpmlKXaaCOoauf2pemeVxC4xBEXXRkV95nTyXnmfnKyOdqCvp4rw2UBG2200dzZs2d3VqF/3H77
- 7a6jgJXr190sTsC5mXWgjpnz6vkorV1Au4q55nOUIyvwwaH15zm2zsdncHKVgQlqyzQTPKnN4+wPz0rP
- ScHqadziv/zlL52jHR18/vOfb2aGdLvnRG9TnNtPVZh7dgsgOD57rJbM+G/+7AxlGldccUXnm8YWF110
- UWu11VZzzDVA5risn/vNNZShILBj/8tc8M7SXZcuY0PQRQmfzIg0jwuCIAiWOpqR/+qa13R2TXE8wLgt
- Xuq4CFLZOQqEOXdBrRcXwMvMdYWcAK4N94hTzunwABdt9wAlyNv1a4WzPMxf/epXD5177rntLslS8DgG
- //3vf1uzZs1qzZ8/0DtrEATBmEBNbEeoD6nhL79nBI3AIwFDpHPH/QYS40QfweyfuaSClf6cP0/YzBq0
- c77u2uVzasMz4p+T6DfZ73OvsWGaZfm9l5q9tNzzCuKW2CVsCSUjzfYuVDd8dKFaYmJWZpbgr6AHx9Qz
- ZaZO34PggAMOsHbNzIPaLK7Z9V7zUxNKdGsXRBBMEFTorl32/9Wn15R3QRDPU7XP0uRrXfrxhRr2yQ7w
- PXqzODfXzb4hgNvBG2n4f//73ztHOzp473vf2y3Qm+65fSRLrYpze0rwiQC27p7r9re1qv0t7GdBBffB
- rL322mtISctYQ2Dq4Q9/eDPlXeDG/vcOIpjjHlDzr0yi1qV7j1GXrreAYJV3Hf0PlCe4rrIjvBdFpAdB
- EARLFF6Imi8SHko60YokS/vSmV3E38uEB5mosxQxUf/qmHvx81IhjV0dXU3b9MAWWfdAHxblq6666sxt
- ttlm7r777jt0xhlntMX4IA2RgiAIljYI9be//e1Eeu0wTXQTCX4DCXFioZJwJ3L8NlZxPt1YtEFSg42q
- k2JcPsv3E0rqtNVr+30WRBVQ1SxLem+tpVa+tCTnni8KnkcCxUStbulEE0GsizqBTCgTslxR5QICHRzd
- qTvssMNAkdyu2n0CVACAWBYQEBjQ9FS6vbR7pV7EnLRoGWfc1uqiVxB2BN5ahfq4eLYKiNS6dI1VnReh
- SDB6pn6isHZ4F+SWJUCk2yf3br311vO4/aOJl770pd0Cveme20vWgzi3nx1LM/Bkj3ne66MgAOXfWTtB
- jnbaO3fbVIGxfs7fc889rf3339951HvQMThWx2Utram1bdalC5Ao9zAvXemexn4CQ+4Le9B7UTq8B0EQ
- BEsMXibUznkxU/dXZ7mK8jdnuUpn91IixVCkX/RZyp9Udo55FebS8jwIPbi9fHo4Sl/3kJe2PueII44Y
- +ta3vtVOJxzt7rRBEARLEw2RXju6C0z6HSTEiZtK/046sN/HtjgvnPOa17xmIAXTqZdv1lFL8SVKdLQm
- SNRxK00iDBdHYC4NOAYBY6njUsilhsvgMrpTgNgzSKM7ZVQytQhDotFazvrGN77RWY3+4fptuummBKpr
- 4joRx5r6SannvNYAh2klyr0WpzzA+chM4LLXunRlY4IjTyuUySDVWtmBAIDnqzR+56cGXhBCxoVAT1uk
- P+IRj5g3mjPIlQbstttu9k5ToDfdc98rCOK5bl/V0g1rb48Jyss2IIK9B/j3/ow/7+/6nJm77777/LF2
- 0wUB3AdTpkxpZrNYO8fr2GpdupICHfpdU4Ef94UMwWbzOI0AvRd5P0qH9yAIgmDM0XxpqKNhpOvVOjnd
- c0WUpeB5cVCzZaaoBxr3wsuDpkPquzycCXPOkAeySLuH+r3rrLPOLDWVH/vYx9rp6kEQBJMZXU66dGlC
- 3e8hFxIJSf+fCGwHLwuJiXnf//73O5/SP8yi3mSTTYgrYkhAgJOpEd3nCrmyfr8FWYlBv+9cXGVMNUV7
- PDmEAsfSi4kj2VxcTSVWnE5TQjQiFSCWtuz549njuTNNmnpnSUaEt7zlLRxYARPCTso2UScI7ft8rwyy
- Op5OurrmYsZ0cclrs7hu1GC4LvX1eSs7gMCvzeN0qxeA8Kw1Bk/Gg677vptI51QPi/Ttt99+noyJ0cK/
- //3v1pZbbuncmwLdHrVfra2MDM64ALyAgdRxa+PYBDEES+psf1kb/ps/R9Dbj/b8EnPTr7/++ta6664r
- m8R5uO+U2Mm2qHXp7gsNAAV79Dawr5RRyC4xv14Ay/XxXuR6pcN7EARBMKYQ5eeW1E6zav1qRF+9n5cF
- DgHXXBMbaWBS7zgInBgPNg9hEXOpbdUx9xBvp7QVYT778MMPH5K+viS6uQZBEIwXNEQ64U2AEwnEOkHu
- f/3/dv+NQiJi3nbbbTeQYrn00ktrejZBRcg1R6vpYH1q4WsLBV79zkvj9dtPeDSbnI0HeEZxLD2fONTK
- rTjWxBMHm+tJwNaRa4QgAXlXWfM5d9xxR2dV+ocO+jrpl8/yLPNc84wjPgWl6zoScsq+rKOMszoTXTr7
- wtaRA+u8asaaAIkGrMQgUej8XCN9AqTyO0d100S6YMt9RPpjHvOYeXfeeWfnyAfHL37xi9aaa66pjtv5
- 26M1C6S65wIWAj8ccgLcMRG7ygC4/YL2Sg/8r8wNtd/KBAhjWQ61iVzbTf/DH/7Q+eaxwZ///OfWjjvu
- KCvAvSZAIFAgmOPeEFRwnN5plOpZ79o8TrBEQMj19V5UO7wLrgiyRKQHQRAEo4rumjgphN01cRwWDykv
- CVwXLyXSwaSz14euB1x96A4L84033ngOYf673/2u84gMgiBY9tAR6TqDcySJcKKHgEb/3BbmhQTE0Pvf
- //7O3xwZ9tlnH+4n8e/3WNBUALU5Wu2kQn1ECMGm8ytQOx5Td2V4Sb3nXhrxqR+K55NUZKn6ZxYSV18u
- 1BFfrTExOeODH/xgZ1VGhr333ruupVIE3cC5xDUToddM9GYdf6809yZkKkjhd27W39/dqbB2eBccFwDg
- 6Oo4TjwuUKQXATrv7rvv7hz54PjiF7/YWn755e1NWQTEtDUlbH2ntHXfz4W2JsS59ddITxmAdwSBDEEh
- td41mC/Lwd8j8O/jpn/4wx8eUzddk9lXvOIV3XXpXH2BF+tpXR2vsoLaPE7WoGaAzQ7vTAyBmIxhC4Ig
- CEYVVZxLHZTWqFOpGkQva9yJ2lWWQ+Eh5WElgu8lSFTcw9iIILVcXoZE1T1o7yXM1ZdHmAdBEPx/aIh0
- AoEYb7ItzHHFFVds/fOf/+z8rf7BMe6IKgJEKi8xpC+I5nAEnqaezdFqXFu//8QGsbgoUbk0QMhyKwWS
- Oc3dI9eIV82+iEBikZBuN4t77GMfO1CzuMsvv1w2AkFHnHrW1Vr+OhOdeK5z5KXfE28c8YWluTfR/SyW
- JSCjwShT5Qeuk1ndVaQbD9ZLpDu+aTvvvPM8M8FHC8Yhls8VSFIuIT1cPb70dkF57jnBLXOhinOZDI7P
- +igFOL9D/0yoO26ONTfddbqPm/7kJz95zN30c845p7XyyisLjDkn3+18rGN38zjXV5aE9yABLQ0B3TP6
- 8jAzZJ3I7BDYikgPgiAIBkLzhaCOfKkvBDqXasBj9I4XH3NyNRTysPLQkrrmpcCDmTMjldCLwdTllltu
- VhHm83/72992HoNBEARBRZdI7yYhZLxX50+PDBzj8jnSeP0uN5vDmf3st1zqrrnbHME6Ws187vEwWm1B
- IHw8s+rINS6zpmpS9KWBdzeL44hKwxY0ni1de6TQNG299daT+SDg4Xmnx4oAteehBqm+u5YLOKZaLrA4
- ae4VnslKzWo2m4CJdHmCn0g3K12ZmZp3mWxNkS4gIa2f0G2L9F122WX+vffe2zmDwWHsafncmhou8EHQ
- EtdENlFrza8rrOLcNBfvDIL61si18b9K4wj3qws1aJPZ0dNNP/PMM8fUTf/e977X2mCDDQSyZEdYN+sn
- ZV/AoTaPE1iQndHs8M68YGKYKCCbQzf+5qz0iPQgCIKgb3gRUGNY57F2p9SJ1nsRkAL57kKN4ES+pax5
- aKk145p7QEufvKsI8xk777zz/K9+9audR18QBEHQC1Wkc8rL7+f9+PnPf77zJ0cGjnH5HPXthFR3SnZt
- DqeulvCTrqs79eKmZC9NSL0nYKWCc6mJVz1SupvFEa2eU+qLuaPTTzzxxIGU3tFHH02gqsP2zJPaTZTK
- JCNCudrEmzUV4O43zb2CsBMgIfT8XSVnstqcp8/tFuk13V3Q3PF4LgtKcLmnc6KnT5/eOYPBoOmgBq/l
- c61BFbMcdAJdwF7qOvdc0IIAty6CCMbRcaFl4Gl25xp5p/DfBVOI+uqm1zI56fqc7VlKNUaz+V03dJHf
- dtttZbA4r2bzONmBzsl7jz3lPGSe6MPDvBCMUdIg49A1cq0EVuzPiPQgCIKgLyxInKvnM1tWvVtNpfMC
- IOLNdfEiIkVSbZ+Hl4eYh9m966233uxPfvKT6coeBEGwmFiQSN9oo43aYmik4BSXz5G6y4kk1mQ6ERrE
- EBdzQc3h+nF7lxY8v5rN4nTVbjaLE1Dm0BJVRB/BKh37ns0222zuIG7sDTfcYF2leXvuSXP3LKxZCQSo
- Hi2EWzPNvXZz76emv4p0dc2LEum1Jl3NNJHOjeYAu+6aA8541rOeNTR//kAZ/sPQgO7hD384MSv4I1DB
- 9ZapIDigMZz3BMeiz4HjImoJc+8SxC0XWraBf/bv/Znqpjdr02V9CC7pZTPdqLubbrqpcxSjj7vuuqu1
- xx57NJvH2TOyA13j2uFdRoD+O/ZYHcMm07DOSpftIOtBiUIV6eM52BUEQRCMEzTFuRcHrokxagvqGOvh
- eUmhCLdGcF70ahranSussMKM3Xbbbf4gqYP9wkut2rp//OMfLfXtP/vZz1o/+tGPWmapa2Zz5ZVXti64
- 4ILWxz/+8SXOs88+u+e/D8NwctNvz0hEdS+RfvTRR3f+68hw0kkncXo19OIcc5A5yX7DuYALGgsmWDte
- m8N1g3itzeIIV88vdcFEq7nhRKHnFsGoeana7PZMdCJ7pHB911lnHWnu6qSlude6/prmTnx2Bz5qN3di
- rR80RbpghBTq2h+mivQaSK/d3QVgBAyIXFkTjpHYnHnCCSeMWp74b37zm9Zaa60lLdw6eBeobrMUdwKd
- o2/0qjUx7YU4J8o18nO8MvNQmQWx63rVUa0yH2rTWVkKjIB2+Vx535h9xhlnjFnK+5w5c1qHHHKIe0ev
- AYEB51Y7vKuvlx0gGFPHsDkHe861kImiPNA1Fzgi0pUPCnhFpAdBEAQLxKLEuQ60zZmrXIgalZceqeaO
- ayBqfk95WM4yH3Y0G9EsCLfffnvr6quvbp1++umtI4880kO09dznPre17777Srlr7bbbbq3/+Z//CcMw
- XCp84hOf2A7QjcSp7Bbpg5QJES8PfvCDicg6+5yDzEnmKPtNN46M0yxTivPMgSYoxnNzuG5oFke4EkFm
- UmvWJfvrFYWcTc8vdcM61nOUOaGeW9Ne+tKXDqTuXvKSlywszZ0QleZeu7kbBSdDjcDm+ve7tkS6BnPd
- Ip1bWxvH6e4uoO6cdR0XLBCYEJQhnDnBxOas888/v3MWg+Oaa66p2QQ+m4i2z7wnCAQR2gQ3Icsl55YT
- 566NbveaEx7T+V+lFjI6BI4EGQhgbjWx311K124gt99++w2NZbbeqaee6ho7N99XO7wzJ5pj2KTuu94C
- DgIlroXyQGWCEelBEATBYsHDwUOiprU3xTkXpYpzD1EPVA/6Go33AqL5TB3jMnWLLbaY+5nPfKbzOBtd
- GIFy2223tb7zne+0Pvaxj7XFeK8X4jAMw/HCxz/+8W2RfsUVVwzkpK+//voDpbd//etfr8KpOftc3xCO
- MqeSw8z14zj7/dfgihPt2TBem8N1g3AVbDaDWvq3Z5mRoJxMwk9TU9lfOtZzPjnd7Znoa6yxxtwZM2Z0
- Vqt/eO6Vz+Gwdqe59+rmPhrZCQtLdyfSBVq49gLrnt16DDhv11xjQMEJqeJ361j+7W9/u3Mmg+PII48k
- ZKWEWwsiWqq79a412xx0gQOZBYIIxLljlRpujVCjQtfMf+dKq00XXKkjXIl+n8vJrg3kpgtCffe73+0c
- yejjwgsvbK200kq1w7vggGvNpODuC0LIErDHlBg4doES10KgSLmgskHBGdc+Ij0IgiC4H6o4r93aPTSa
- 4lxTGw9IL26i2DUKb1wK96HZdGbaTjvtNG8sOrRz4q+66qrW4Ycf3tp///1bu+++e88X4TAMw/FGAh13
- 3nnngZz0z372s53/NzK8/OUvbzq8xJl0Z64f0UMscTE5zYQE55kDzekjADnTEwWcZc80ned1oOdc6khP
- 8BGrOtU3Z6ITkJ5hMy+++OLOavWPadOmtVZZZZXm+LpmN3eOsVRuYk2X76cWEtNbFErJ7zfNvaKXSFfv
- LKXadVSaJsDuGS6lnHut+zgXWuM1ZWn2w1QdywXARwMCHY94xCPUo9dZ+0S0tRYcEOCXseF4CHRlFW8o
- JM7tP6YAQYveQfx7bro/6+94DxFUsneJfp8rI8C7SDvlfcUVV5z9/ve/v3M0o49vfOMbrbXXXtu1Vm/f
- HMOmIZ5UfBmGXH8lBvac4INr0UukC4AJKkWkB0EQBAsV5zWtvSnORd9FrqXIebHTbKY2g5u+3377zb/n
- nns6j6/B4bPUj7/vfe9rp6v3evENwzAc76wCfVAnfZD62pkzZ7bWXHPNZo20zCfipnv2OaeZ4+xZQOxx
- ookHQnCioDkTXUaYTvQc5e6Z6NLPZYFJR5eufK+u4J0lGxGkWPuczucRjc0O+VxgJQSEWi0haM6XH+ka
- V5Feu7v7TKnUAhOe5USuaytdXHBCkzaN19TIS8/mABOZ926//fbzRmv8mh4wnVnitR5d7bt3BwJWunpt
- qiazwLuGJnqOVXM1WRyCKgd1/r8Z485BJp/rx4HXmK1Oj/G59vR9Ut7333//Ic3rxgK//vWvW1tuuWUN
- QsgglJXiGFxz5X81ECH4RaQLlHivck2IdPdYRHoQBEEwDA90EXvdRDkkaqJqt/ZmzfmCxLkHLXEuVXL6
- K17xilET515COUXS1/faa6+eL7xhGIYThU2BjoM46SPFZZdd1ky/JmK4pxxkTrI5zoRPr9nnArgc6YkE
- zzfB5zoTnVg1f5zQ81zjxBJ4nmlEKufT8+yu5Zdffs4dd9zRWbX+cc4559R15uTWGfPEGjHJ/eUWE5ue
- s+ZkP7JwNLIUmiJdYKI+0wXcpdQLTggOOHflDI5HgEJaNqefuHTM05/1rGeVrTk6e7Mzc9961KkB1tp3
- CloIFEj9P6XQsRHoghfEuQw+QRX1+v7XvvReoqZbAzYBJfu2NpCzxtxrAYf7pLxvvvnm877//e93jmh0
- 8a9//au144471jFsdbyczEKBH2n4VaQrMXCPNUW6a0OkCyLp/RORHgRBsAyj+0HejLY3U+I8TLrFucYs
- tQPsf6ZMmTLj6KOPnq82fFD8+9//bn3hC19oPf/5z+/5khuGYTgR2S3QcRAnfSToOLvNBmZKlHSeJnCk
- 4ZrfTMQRQxznRxR6PnCiJ1J6e4WgQnMmupTv5xYSgeqCCUMuLhElRZqLTGDNJCpHin/+85+t8lyU+qxB
- GkGqRlo6uZRnjjExSmQ+v3C06/y7A+/c2ScUSqd37tLHNaojbh2L81czzfGt5Wrt8Wuj1dldwP1pT3ua
- EWUmB3CZrbPeB1L/vVdIV7f/atdz4pUYtw9lcjh26yTAotGaIIv6dDXrMgIIX6nkAk32c/e4V9f03hVX
- XHHOueee2zmq0QVzYpdddmnOSreOMgzdY4JgShyc56JEenXSU5MeBEGwjMEDvNn5tTaV8fLi4derqUxT
- nHvotcezEOennHLK0GiIc811CPPUlodhONnYS6DjknLSzXEmUMrvttromt6u67RaZOJG93YpxsTP0ws5
- r7qCc6CJBc+NiQYCp85EJ1SfVGgEmRRqIrU7zd2zrZ3mXq7ZQBekiDWCVG2yBmwC2pzd2ilfSrd6a8/a
- fQsJ6NEsJagiXeaD4IRAi1R6ApczbYSeYIzj0G1cQzPuc82Msz9GtbO7SSvrr7++8gprYo31PzB6jXj1
- /bIZBA246IIIjtO1Is41vNMPYdfOP1sz//3lhYSuYIuO6Wr8a8p7nZku6CAzQPq+hm6zjj/++FGb+96E
- /gN77bVXDUT0Euk1GMH0INLdb90ivaa7u3YR6UEQBMsQdIpdvVDNm9Q/0XvdZEWr61gW4rx7LEvz4T0q
- 4lxk/dZbb2297nWv6/lSG4ZhOBnYS5xXLgknXeOz8rstzbh2b6+urt934kjzMq4u4SOT6tGFDy7kxE60
- 9PaKKlTNGTdvXJaY+ePmkAtC1zR3a8DNleY9nOb+n//8p7N6/cM87vI5OphzjDVhE9xWd617ucB3r2Z8
- o5mtQNgReNxY11EavQAFR1qDOqUMUu0FKQQNpGF7zhPNsitGvbP75z//eWtSR695jyCeOfcavRHWauOV
- 1Lk2dSwZ4Wp9BDEEjdB5uI5S4AU5uO7Ws5ny7prWLu+uq1ID5yRApS59PkE92tDnQS+e8h1EunvNfvLe
- 5P3J+hLpTA8i3blGpAdBEATtB79GNFwRnWOl/Xn4qfHinHjQadYi3aw+tEV+R12cc3ROO+20NH8Lw3DS
- s5cwb3KsnfSDDz64prdL95VirP5cY61m2rXff6nFArYEo2ZjgrkTWSAISCvlqmnuHFj12ItMc7/gggs6
- q9c/TDIpn6E5mhpoNcnqoq03t9ioMOJMZ3IN0Maq3t9148gLUEihd/5c6Obz3hrUTDnNAnt1dp87Wp3d
- jzjiiObotRoo0qhQJodjYAxIdXd9BIu4/o5ZcEXQyFg6/0vIyvpjLAi4yAqoKe/Er/cXay19X6aIlHqu
- vbnv7br0xzzmMfP/9re/dY5s9DBnzpzW8573vJGK9GZ39zonXZBpImawBEEQBIuBxYmoezBKFdPR14ub
- lxbpWR4uHjIDi3Mu0c0339x68Ytf3PNFNgzDcLKxlyjv5lg56QTDmmuuWTtNS/XlJhKjxAIR00ugS4uW
- ZTVR09srPPf6SXMf7ub+nOc8Z6Aa7G233daaS6vWrEyqc7OkgNtLmOmY311SMJod8wXlnb/0eVkEAgE1
- Y66WsxGJAhVG7ensTjATzhoJygCYtv3228+fPn1658xGjoWMXrMXvXNIuVduQWzrh0C0CqoQ6N5ZNL7T
- M8e1VJrHYJDyLtAh5d2aygB0XX2W+fOa0cmQ0Kyv1qULEEzbeOON5/74xz/uHN3owUjEQw89lEgXjCDS
- mRveo2RSdIv07pr0KtKdK5EuiyUiPQiCYBLCD3ttCtdsHCNNzIOtWZMm5c98UTVpXljqKLV2Q7hBnfPz
- zjuvtffee/d8iQ3DMJyM7CXIe3EsnPTrr7+em9uc11wFenXQ1e5yHpU3cS05k8QQUUsYTHQsTpo7wVS7
- uRNTd62++upzB3nWnXTSSdxiLqo1J0Q5qM2Z88a9NZvyaRI2FlkLsgikzrueggB1RjoxKFChHl6JQ+3s
- 7hjVzOtTMNw07lWvetWoNI376U9/2hy9xtEmXBkBNdVdmnpNdRfAMI5OYIV7rlZfpgE6F1kBzZR3DW5r
- l3fvM7IVdIoXGKmj2GpduuDD1Ac84AFzrrrqqs7RjR6U8B1++OE1Y4BrvzgivTkn3V4l0pU+RKQHQRBM
- QtS689oUzgNaWp1UP1HnYwvfWdjd1fU+D2jiXI3VSPD3v/+9dfLJJ/d8eQ3DMJzM7CXGF8TRdtKPPPLI
- XgJdyq9GWmp1OY1+/7mPUp815tKbRFo493Uip7hDrzT3Zjd3tc+ee8q5pHdzjjmss774xS92VrF/GOvl
- Mwo9PwlCa06Y1bF2nF7H4Fgck2Mbq7r/2hiW2GuOX2t2dudcNwP0tbSNiFa7Pevqq6/unN1g+MAHPmBt
- ak8EJQDqxDn3Grw1U911a2ciOFaClXvuOnqXEcyQuq8cQ8q7d5ra5d26CoAIwLi+siRqXTrjQSBGOUN7
- Xvpyyy036z3veU/n6EYXxx133KJEerO7u6BEFenOp56z62YPM1oi0oMgCCYBmnVo6s7Vb5m9KmrvQeCl
- jHvihUEDm+65qF5UpkvXGqk4/+Uvf9l6wQte0PPFNQzDcLKzlxBfGEfTSd9ss82qQJdWzDUkQKUwc4wJ
- IgJBaZO0Ymm2HEsZVpqIrls40ecyLyzNnYjTc0VjMSO6OLlqlQm3aRzQzjL2DQ6qFOryOdUpFvC25kSZ
- oAjxSJBx8znAAudcfms+2m6pz/KZxL8GZNz6Zmd3QlijNftACr7+MxxnaeHWQ9r/1PXWW2/OP/7xj84Z
- jhzWZu+995YCri+CoJGa92bZhUCBMgDuvutEeHtvEcQgyqXsK9fzXkOwu67WT/q+/WuEnVnzzAflG911
- 6d5x9AXwvcPN4172spcNKQkZbbztbW/rJdKbNelVpAva2BPKD5yzTAfnxVgRkBBkiUgPgiCY4PAj7se8
- PpRFmp9YqGar2STGw8sLipc1LxAeXMP1Z894xjPmm/M5Etx0001moPZ8aQ3DMFwW2EuEL4qj4aTr91F+
- w5FQbI5/IhalMROlUoA9AzQIJdRkVnF0pRQTP4TQRBbpnoNq6Yk5QQeuJGHqGSitWPaAviuapHFxpUAT
- 1PdsuummA6UxvOY1ryHMmrPnubeC4Bzd7qAIwczdVvs/FpkLdR26+9B4HxAkaDaNc3zSwuv7ALe5/T5A
- WBPYg4LQJ/jLZzZT3a2PVHdmAeebqyxl3fGp1Rc4IsZr2rfMQI3U/H8p72rslQv4s/opKCFwjQlfgRiB
- kTov3bWWMdFsHjdj9913n//f//63c5Sjh3e84x0LEul1TroAgswB10C5iU72jBT3onp75yfIRKTLiIhI
- D4IgmKDQIKamtkuT8mIiVcyDS915jZh7MHhASHlsdnC9d7fddps3UnFurEq6tIdhuKyzlwBfHA7qpH/j
- G98w/5xA15hLSrERV8SIZll1DrWUZuVNHF1iRt2v5qEEI6d1Moh0goagI0xlkXEmPQc1RyUCZZBZB46m
- VHTZY4TU7EGaiEmRL59h3QVGiFyOtPRxtdYfLDTqjNOrHpxDLIiuTwwRNhrj1rrh+i0oo45r6/pznInj
- mlEnkCMlXGDHmsz84Ac/2DnDwSAA5fMKaxlAzewQLPFeotmb/jjWSOBI2rfyC5kGzsFUGkEH6yWw4ZwE
- luxdpRrNunRrfXphnZfe3TyOaHYc07feeut5f/3rXztHOXp44xvfWEW676nd3eucdFkLzlkggUh3zO5F
- 2R4yA5y3AJPz1FNgtMsggiAIgiWAGi2XLiclrD6IpU3VxjCcAw8rLyZqs9RF1Rmo96yzzjpzfv/733ce
- LYsPL5NXXnlla8899+z5shqGYbgssZf4XlwO4qT7LT711FOJdMJAYy5dxWsdOme0prmr+yUMat0v8Urg
- cCwng0h3zILV0oSdj9FdnoV6sBCAnEvN264r5Gpq6sYxni49ubOcfWP27NmtNdZYQ/aCFGqCTOmYUWbd
- 4+2kmWsMxgH2vOYKy34bCzQ7uxN83FkBC2KW41x70ng34DY369F1pG/PR//Zz37WOcvB8NSnPlWqe7Or
- u8CR9xHfbY00sFOKJ4BgRByHXCBDVmCtyyZWXV9d8DWQM4WgWZdO6ArGuNZS5zXEazaP8+7j/AQhjNmb
- 9pCHPGTuSN5/FoUjjzyyW6RrxEukO2ciXYmBwISMFntDpofz9v5mfwhOuHbOV3+FIAiCYAKhNoURja/1
- ZlwRqWIis1wDo1VEyaV7aQontU8U+c611lpr9je/+c3OI6U/fOITn2jttddePV9UwzAMlzX2Et79cBAn
- 3cinjkjnotfZzM0UWwJMkJYgI8wINEKNYJssIl3A2nETcFKFiTfPQ2nEry/UII0wEqxQn0w0EaNTzcvu
- LOWIYFxb+RwCVODbmvt83+P7fG+vcWvc4bEccVc7uwtY1KZxrnVzqkt3Pboa8eHsuu22227EfWma+PWv
- f91aaaWVBI8EMexL7yFce+690rtafkFgC2Q4TtmA6rIJ1VoOIPDAUbdHiXfnVevSCVzjZAWfNMSrzeN8
- vhpwDjaR7Ls1rROcuXejjTaac8stt3SOdHSgPKAzgq3ei4ICvld6v3tR8EbJhfUXMDMv33ubMghj5dTh
- yxSwl537WGRaBEEQBGMADysPKj/gNUIukqxja334itBqTCKVjIsitaw2hZvxlre8ZciLXb/4whe+EHEe
- hmHYYC/R3S8HcdIbIr3Zzb02izOfW7ovR5Fo4eoSrTKtJpNIF7TmTHNYOZEca4KPS+mcjeQijpR6WRfC
- SUnAnL/85S+dlewfH/3oR6Vxc0yJvkWNW1MTrsZaWdpY1KE30exPw3HWn6YG8Zv16LU/TZ2PPvyecPTR
- R4/K6LVG6jf3WilAnTIgOFBno9fAUbNhnGvpmtametZLYMN5qUsn4qWG13nprreu9bV5nDID2SPdHd7d
- G+6RqTIJf/CDH3SOdHTgfnzuc59bRXrtC0GkM0q+UChg5ryl5CtF1JVe4zvnIINAGr9zr2n+E+1eDIIg
- WCbhRUTqV20M5wddBFmKmGi96LHUMQ8BkWM1WF4c2p1rpZzNmDGj8yhZfGgIt88++/R8QQ3DMFxW2Utw
- j4Sc9I9//OMjdtKNyiwiXc2vxlwcXb/7nFFp14K1moMRLZNRpHMaucayyjwXiTa13+qbOZWcWrXJXEzP
- RGUABOMMInukMMWkfAaHWP02cavPi1p3o90ERAjh2pyP26t5m2f3WNWhV9QyONeS2CN4rUmzHr1OeKnz
- 0QlY2QWc7vboNUH5QTFt2rSWhnzl85RgyFxQE87RVnLgu62T2ei9GsbJAnBd61o5L4LdO5BAB5PCuXkP
- 0hywNo/zLiSTUBBC7bfgDHHMvVeKUMew3bPGGmuMOKNwQdAtvrwv1U72RDrnvjZvdN5S/GW1CE4wVewR
- AQbnLphiD+up4Pq5jhHpQRAE4xh+pEVUpX5JlZMK5uXKD7sUMaliXkRE76WQidjWB+7d22yzzdy//e1v
- nUfI4kO34HRrD8MwvD97ie2RclAnvSHSCcZmwzhpzJNZpBNu9dmoaaqyL2nDmohxVKUUc1NlE3guWhfj
- xe4tz7aBnOKNNtqojlvznOXQylrj2honpsaa8OSQauLK8R3rOvSK5vtCdz26+nxd5glEx2lEmYC+vTI8
- em3DDTec+69//atzpiPHZZddVhvG2Zd1Nrp1Uicu26+7YZzjbDaMsxdrSYD/ZVQQ7s5NSrjAB2FrHzs/
- 3fONNKsd3qWVMy2IY2UIsgUEaZzn3auuuurs0QhGNMEI0TW+fD6RLhgkgGN/+H4BEUEcZoq6ean5zl2A
- wVi+2sRRMKeZRRAEQRCMQ9S0NS9QHkg1Iu4ly0uIh60HkZcDrkkdqSaCO/PDH/5wu0aqH+jyfvDBB/d8
- MQ3DMFzW2UtoD8JBa9I7Ir058okY1Shrsot0z0fHTLARo85HbbKxVoQyIerZSBgSSu3A9UorrTR3+vTp
- nRXsHy94wQtqHTqxZ60FAK4uJDzfXahpq3p4Kebq4wXXlag1RedYobse3fcTgIL6UqtlFxCwtSRO5/M6
- eo2onL7ffvuNSqr7nnvu2d0wTiaD1HPCuVfDOCUB0vOJVI45Ud6Ec1MqQMDX5nH2r/KGAwp9jmvPuBCg
- cf0518SxlH7nqe6+LdLLPTPr8ssv7xzt6GDq1Knuaf0hnLcyiGbpif5AMgg0tZP56B1O4ESAQjDHtZJF
- ICukNsyLSA+CIBhnaEbD1V5p/OJBKzKvpqw2hvODL0qsFk7X9rZLsMsuu/Sd2u7hctRRR/V8KQ3DMAxH
- X6DjKDnpy5pIJ9hq+Zc6XjOmiR1CVKq5VGoCTQq6VHRiSSOvWddff31n9frHOeecU+vQCVqCjwvtGazu
- X4o1Z5jwEkyXil1Tt3XqHut1Jei4rzWwL3Wa8JVdoHkdAVvfHRxvHb0mHXt49NogZQAVv/jFL/RJqA3j
- dDivDeNkNaiFt1bEtOuloZ292GwY16seuzaPM9HG+Vlb70a1w7vAiPcjgYg6ho1z7TwFatTDu2ZKQu5a
- fvnlZ33yk5/sHPHo4M4772w96lGPqiJd7bvgh+CAIEGzP4SSg3ovKs9wDs5fRoj9UmekB0EQBOMIfpi7
- 3XMPIPVW0qNE6nVl9fLlwSOFrN0IZ911152tVq5fnHfeea0nP/nJPV9KwzAMw7ER6BgnvW84Po6q2mRC
- jRAlij0jNWur49Y4qHXcGsE0/aSTThqxS2xcV/mMZh060ScIIBigxluaNdGpkauggeCBdSW4lsQoLevi
- +nGa63x09fBcZqngdSwrF9sx328s66qrrjrnN7/5TeeMR45jjz1WtoHmaYtqGGcv1oZxtWlaTfXuBpHu
- /Px3bnPt8G6tzRk3ykwJoIZsPt95MjKIY+9KgjX2QlukL7fccrM+9KEPjUrWQMU///nP1sMe9jAiXRNH
- GQTS6527jAVN+uxLQRK1+PoDKM1w/s5BNoisCzPSM34tCIJgHMEDtrrnfqirey59T32bH3UR2E8XaoIj
- gl9fPqYdddRRfXdt19k0HdvDMAwXzl7ierQYJ71vaKhFiKq59pzUdItTLHWaOBPEVvesDnh43NoTnvCE
- gcatbbbZZrUJmjXmPhN+zTp0TrXntXUluAhlazrWdegVRCxxR+RxpDmz0qjVPDdHr2moZjSZEjkCkpCU
- mj3tKU95ysCiVVbexhtvvKiGcRz97oZxRHfNOujVXM++rJkCtcO7da5j2HyWIIlAjZpvXf2rSCeSq0h3
- TO0Gee985ztHVaQLcOgaXz7bucts9H2aOApQ1HtRFoGAjv3C/RdgEKQQVMn4tSAIgnGGRbnnUrc8WL14
- SJvygiCF7K511113zm233dZ5RCwe/PkDDjig58toGIZh+P/YS1iPJgfp7u7vLGMivT4rOa69xq1xT3X0
- JkBrltldK6ywwhzicaQ49NBDm3XonGd16MSf2m7PZy61mmijtNQWE5BLqg69wtooAeAyu6YakTVHrxGG
- 9kFtMvutwprqbiTdLM3eBsVFF120sIZx3mMECgQMjEyzD7nIriWBKpV9QTPk/TsBj9rhnZnh73lfsu7K
- AeusdBkDar8/VahfQE+R/sEPfnBURbpu8Z258JoK+h57pTZxFNCxX/QEkOrfnJHeHL9mDSZCsCwIgmBS
- w0PHj3Gde147tzdrz0Wd1VVJTfNjr6aqnbp3+umn9/2AKQ+lni+iYRiG4X3ZS1SPNgdx0pcxkc5ZXNC4
- tTcVOkeZZp6V3Etp1u0mqtddd11nxfrH+eef36xD5zp7DhvrRQByRaVXq0MXWCe2rOeSqkOv8C6xoNFr
- Ut1d9zqmtVeq+1Tu9yCBjIonP/nJ3Q3jrJfv873cbfXYUr1lPxDXOrRbM9d1YaUBzlEgwp+RLaALPPd5
- 10LBCMEaGQNVpCtBqCJd0OZ+6e6f+tSnOkc9OrjwwgvtlVmFgh510oKSC+cveKTRb52RLqDgXa+OX9MI
- z32Yzu5BEARLGR5EHjYeTH6cPdylPXmgGpNSa8/v554/5CEP6XtEys9//vOktodhGC4mewnqsWB10vud
- xAHLkEgnWGo5WB23JsW5Pi+N83KeHGKp1UaKtUvBjjvuuBG7pX/+859rHTrRxRXWBMy66lDOqV1QHTq3
- d0nWFLtmzXI5aeCyDByXIEZ3qvv9urq/4Q1vGNhVvuWWW1orrLBCd8M4ZQeyDlwf/QI0diNQHZtjdKxM
- iu6xa92oIr05hq3OSid0NaAj0u0HAYmmSG866W2RXo5z1jXXXNM58tHBqaeeKuOiZhE4f+UW5tAL6tgz
- SiOUZAgk1PFr7sPa2V0af+3sHgRBECxheNCIeEtp8pAxF9SDyo+1pice+hqLNGvPR+ye33333a0Xv/jF
- PV9CwzAMw/uzl5geK8ZJXyxwFj0zuaeahenXolEYR5ZryqF0rkZd1Tr0ex772McOVIf+0Ic+VBMw9cVc
- UYFyAXMiV/Oz8VCHXiEgQLwSecSe60q4NlPda1d3o8Ck6xPQ9gvBOlsgf1Acc8wxzYZxsg4IY/uQi6zb
- umtlD2qYJshCYC9s7Fo3nKcMhSrSBUWaIp3wXRyR3p6TfuONN3aOfHTwkpe8xPm7F2VwCOoY/aesQBND
- 73QyCRyb8gjljO5Dnd3taSUS0vhdxyUZ4AmCIAgKamOXOsOUGyDdS/MQDy7NTjz8vQSo4fIDP2L3/Mor
- r0zX9jAMwz7YS0iPJeOkLxIECwH34ELO6R6FNaitoSrhc2mh5lxmUrdrrKdMmTLnrrvu6qxU/3jFK15B
- cE0rlLbdrEP/ROF4qUMH3yWIIU1aqjvh2p3qThwTydzcLxeaWU6wOrd7d9111/kj2X9N3HPPPa2NNtqo
- 2TDuF4VcZEEBwYEPFKrFdt0Iak3tiFMuunWTCbCodasi3Z/fvFAPH939n1a4IJFeG8fVEWz6CtzzwAc+
- cM5Pf/rTztEPjtmzZ9dUf3tGkKI5I90x1PFr7sNmZ3eN79TWC0DVdUjTuCAIgiUIEWIP0fqi4YfZi5L0
- LPV0atv8iNexMcPpekcffXR5fi7+A3TatGmt5z73uT1fQMMwDMPe7CWix5px0hcKx0KUcYg5ruqPjRTT
- dEzatPPSwVvWGeE5XId+9dVXd1apfzSan3XXoXtG95qHbg2XdB16he/rlepeu7qrf9asTNMy5XN1dKsx
- cmbHzzSGdVCo7/ZZnc/02dLp1YJrmNYcuyZwoLTPtdRboJYHLMpFByJd5/NFifRm4zgC2TnXTvYCE1M3
- 2mijOcbqjRbMSN96662bM9J9Vx2/Zt3dh7Wzu872avJlE1iHZtM4mZbjLVAWBEEwKSEy7MXHA7SOjPFA
- kYb22kIpc7UjLSfAg02a1H9XWWWV2bfeemvnEbB4OOuss3q+fIZhGIYLZi8BvSQYJ32B8OzsrkPXCZsD
- SeypsXZu6tA5ttxuAmza6173uhHbwv/4xz961aE356G/uVBN9XMKBdsJLOnaS2oeejd8Z011dy1rV3fl
- ANLx6/hWwYzrCtXs2yPtkoD1119/LoE5KLjx5fOaHfCZDb6PUJZqT5zqaK7Bm72nUa6gguu7OC46cJiJ
- dPXrRO2iRLpztj+UKdQafAJ66pZbbjnPtR4t/OEPf2iVtewevyZw5D4UqNAPQO8EpoxsAmUSzaZx9pDJ
- BWkaFwRBsARQu9HWh2dtDuclSeMQLxlS50R6pdJJD/Pjfu/LXvayvtzz22+/vbXffvv1fPkMwzAMF8xe
- 4nlJMU76AkGsOKZmHXoNbnfXoauvVjd+z/bbbz9QHfo222xT69CtZa956FxQXbmla+spw9GVJbc0mn0R
- c3WdHIcsPTO3ZRuoeRbM4GBzsi8vtCfUZnN52w3jXvOa1wyW514gbXz55ZfX1dwebI5dU7qnAa5GuMSz
- vSf7QDo+gd2Piw7eqQj6bpHebBzn3arOSVcHLt3eHpF6LgXdTPh7yz6ZN0g5RDe+853vtBgr5bM1zRMA
- qfehzu7KMVwD62COe7NpHOOmzogX6FnctQiCIAhGCA/sWiNmTIg6Ot1MdYIViRdZrqPVhsfFrLzyyrP6
- rZNSe77bbrv1fPkMwzAMF8xewnlJkpN+zjnnxEm/LxZWh240KZe0WYdOGN653HLLzfn3v//dWZ3+ccQR
- R9Q6dMFy6yh4rvGYVHECy/rpIUMUElecYIJxQbO9xxquFWfZSDI18XWMK8HqXaOW0p1XyAzQaX14UsyU
- KVNm//CHP+yc/cihJK98Xq3fV6pn/ykPIJK5+K6ZBnaCG46vuuj91vD3Eum1cRyHXoYDESwwIUPRO5YS
- Quetx480fMGJabvsssv8GTNmdM5gcHTS/Wugona2l+Ehm8BxOB618gIntWmcfa08wVq4hq5l6tGDIAjG
- CB42HjoePn54m+ntmoX4kW42h/PA9GJ190477TRP85XFxaxZs3QT7fniGYZhGC6cvUTzkiYn/fLLL4+T
- /v/g+2sdumPrrkPXgKxZh84Vbtehy0gYKfzd8hnWkYjTYMwaEnjnF6rpJv6snWw4KcrczyqsllZ6MtdV
- MEOqtJRprrI6Zw3tvG9w/jnKdTa62noiut0wbscddyxbaKDEg5agyGqrrVbLAzTtI4all9t71UXnbls7
- jdKqi764Hd2baIp0mQO1u7v0fgEAIl2/AN+pUZ7zJpK/VehdSzDHXpm+7777zh/JPbcgHH744d2d3WUT
- CA5It5fy32wa5/rUjAImjnNxTuMpkyUIgmBSwQOkdm/3cuGB2UxvX9As1/aM0n4eltdee23Pl84wDMNw
- 0ewlmJcGn/CEJ8RJ/3+oQW51ypxhx1fr0KVLL7AOnUjqLEvfaNShW0Nuq5RwXdA5oLLedCWXSv3sQsJK
- w7NNCpWzLS3ns64VcackQIdwzqxrK51aUKHORrcPmAKyDoYbxn3sYx/rrMDIYQ59+SwuuncZddj2ngDK
- aLvoYK2bjeOIdEEcHfbVeMse0ChP931miG72HP06ck4QoS3SX/SiFw3c0b5CZ/dyH9fO7tLpZUb2ahon
- i9JaMG0cs3fE2jxP5mXq0YMgCMYANaLtx9aDo3ZvF9n1gK+zzz34vQCojfKgnP29732v81O/aHgYHHbY
- YT1fOsMwDMNFs5dYXlpMTfp9oEzMcZiBvdh16OrIO0syImyyySZGh91dKE2ZE0xcaeYqRdm6aXgmhdxM
- a86nNPx+XeDRRtMU4Oq7ltK+rRchSBx77+DiyghgDOh7024Yt/baa8/pd6xrN+64446WeePl87jode24
- 6ISp4EDTRecc147u1UXvt9FeU6TbI0ohBE0Ecpy36yTbQnDCXnENBQycu/n5jtF714zXvva1o6PQC/7y
- l7+01ltvPU3jphZ2N43TC0BGgWMSQBDssZfcf0b3uXayRlKPHgRBMMoQ9ayNWzw0NJLRUEbUWIOZUwul
- Xfmh9uD3EPMidc+22247rx/3/Je//GXraU97Ws+XzjAMw3DR7CWUlyY56enu3sbC6tAXNA9dk66B6tCf
- /exnc4J1Jf97ISEnRZnIJKwEBqQnE4ACBgIHXGtr5bm/NOH7u2ejSyd3fdU9a56m2Z13D3vhPg3jDj30
- 0IFFqi765bP6ddHrXPR+XXSwRwQmZFq4DgImGuVJ8dfN3ncxRWQtun7OnTGi07wAhfvDfTLz7W9/+6iJ
- 9K985Sst9f3lc+1HgSPf5TuthZR774Cux4Lq0Z1P6tGDIAhGETXdzANHap6oqNoojWW8DGleIpqs8Yx0
- Ky9P7dS88oDo/LwvHi699NI0hwvDMByAvUTy0mZq0tvwnbUOvXseuuZnjl8derPRajtl+7rrruusRv84
- 7bTTpLlPLyQylZ9xXKXSWzPOJ1El1V5qsrXynB+pwBxNWK86no7IEzxgDiyoYZyabJkH7YZxyy233Owf
- /OAHnVUYGf7+97+3Vl555UXVojc7ug/qooO/o8RALwBinykia1FZobnjjBEp5e8r1OxP7x/j89TiK42Q
- RUBIzxqNVP+Kd73rXfaRGfHuQWuh/t2a6yxv3xrd5/7rrkcXjJK2X+ejJ9U9CIJgFFBfKqSabVNY689F
- SdWCeUhoOHNdoRemdnObFVZYYWa/3dtf9apX9XzhDMMwDBePvQTyeOA4cNKJYu612mZunpRbjp5n3JJg
- TdveqLA+S4mY+izVtM2zlOC5Ty+Xt771rSN2Q7/61a9WYaVGmeiXnsz5lB6uOZ3UZEECwQIC0zoJItQ6
- 9F7nMlISZ4tLf15ZgJnagiuEr+Zp3GQBBddYg1rurcwDTrJz43Rbt2lPe9rTBusWV9DohM946HbRpdlX
- F31Bc9H7PW+0N6WFe+8SMOFEc6RlEBC/yiJ8r+tn38uI+FqhwI5jlC1x9/LLLz+b+z0acN8+61nPshaC
- PbIUlDLK9NAD4LOFjqPWo0vHl5XBzOmej740RvgFQRBMOnhAe1D4cdWlVLqVlx61RrX+XMMZD0fNQ9rj
- Ybbccsu5/aTl/elPf4p7HoZhOCB7iePxwqXkpD+nUPo2oSBVmitJgHL0iFCiuReJ+NEmB1+QoPZy0ZxN
- 4zO1xcQNgc7dlo0mjZjQmjqI0Lz77rtb3OTyOVxgz+efFFovjcaMd5Nez5XVjMx0FllyWxUKJFgfInNp
- sa5ZFeiCGmqyOcmcWiV2zsE7iKZpNxXWemznO+tb3/pWZyVGBjXYK620UreLTpR2u+gCLa7n7oVcb/uM
- C24NZSP0S+9d/n6tRxeckOUgnb67aZwAhaCB8+dsa5jXnpGufvzPf/5z52wGg7300Ic+1Gx9JRM1YCEo
- YD8169F1na/16LIeTP6pe8q9NZLMgiAIgqABkVxRzzr/XCMZP7oipB7sGs3cr/786U9/+vyZM2d2ftYX
- jXPPPbfny2YYhmG4+OwljMcTl0J395cXemYRN0QxsSDYzOUklnUtJ9i5lWNNQpN73mx6Rhx7lqppliqs
- 6VkVmup971577bXnDtKZe+uttyaq7im0XgRcTdNWnkbkcfAFCp5bWAWV43S8RNVokNgcCV0bYlc3dwaB
- rIOmg652v84Hl3JdBWp7Pvjuu+8+sIv+yle+speL3pyLXlO7HReXm9vNSbeG9pjz4Kj3Q3+HMcJB9+5V
- u7p3j15Th68OvM5H52obqSe4I6gww+g5I2xHAz/72c80z9M0TuNB6fTuv2Y9undCvQ3eUChAVoMWrp+6
- euUTgi8yC4IgCIIRotkgTpqVFC4vFc3Os9KrPBhE/HX5nPbGN76xvE8s3gsFNyXd28MwDAdnL1E83shJ
- v+yyy5aEk85h5W5yHLmusr8IY0J950LPNG42d1Ya7lhTYIBDTQRz9qWW6wSulwuhVZ3QZtOvdj3xb37z
- m84K9I+XvOQltVGc57O1kkKvLI3A5ECbLU5QcYGbGQeEofp9QnNpkoPsejkujfXquLUqUJtjxxgF0q+l
- uQtKzJbmPwj++Mc/tlZYYYWmi24eOBfdu88nCmU/vKXw6EIivZZWcL256daQg9wvdUGve4bIVV6oWVzt
- 6F4d9CrQTQCQIaE8wt7Rw0BgYc7LX/7ykUd4unDBBRcom5hV2F2P3pyPLujkPVG/ImUJ1sK5CFhk9FoQ
- BMEA8OOpqYeaPW6DqHptEOdh7uHo4XS/+eef/vSnOz/li4ZGLPvtt1/Pl80wDMNw8dlLEI9HDuqkv+1t
- b1uUSNc8TOMq3aU1FONwEsQEDhFKNBB83E7OrIZWY0XuJ/oeaeS+n7t4TCEhI5ggqOC4dXFXS91s+DXz
- U5/6VOfs+8eZZ55JUFkrac/6xOh4rma5BjPUMjsOrrQ1Uk9tffYqdNzE1VhR2vqi6BgENdTJE8C1Bpsw
- 1ihNFp/mejcVEosEOrebyzvriU984sAu+mGHHdZ00b3raMqmtM+4M6ndeggQ6a6prA1ON0FNqLvuAh4j
- ofMnzr17yXCo+6aevywIxyBAwShpCnRZBMajEdPz9YAYLbz0pS/trkf3vc2ghf5E7jtTCqxFLZ8QcJEV
- kdFrQRAEIwSBLhVJupVorgi2h/ZhhaL+tamNSLyHVbtBXOHMfuaf+7N77bVXz5fNMAzDcPHZSwyPVw5a
- k74Ika5xFTdPEzHPKm66tGBCXYqw55hsMOnvBLNU3EWRQByEPoP4JeAch4ZaRmY1XdAqsmqaclugH3nk
- kSN2QD1jy2c0HU/dzolZbj1xR+QRe1K1ZRwQVYSwY3Xc0ralli9NcqVlQXCP1V/LOpDe7hq71gIbrr3S
- ACnuzAICXYO8eYN0woff/e53LU3Xymd1u8befzj4sgnrGno/cpz2mNp+x06se38aCf1de5Q54trIHpDB
- KAAlEKWTuwCFDAIp7tLwq0CXRWAN5q688spDg3a2r7j33ntrPboAQE39F1jSUd6esqeZONZC0MfxK5GU
- taJkwXulHgMZvRYEQdAn1Aj5AVU/JkVLJNeD0suFB6Soex0LIyIviurhNfs///lP52d80eC293rRDMMw
- DPtjLyE8njlod/cFiHRCQV8UHdGljXP0iDlCXd2yBqeEAydSB24p8ES7xlZjTd9HBHOsiXMp2p6jRpU2
- RaaGbjVNe5Y64s5p9w31x2WN1A37LGnugumCAFKiCUxrxInW9FXGgfWRJedYHTOBNdr0HtEP/R31+oIs
- xKljdV2559xj56JRrcwDTeJkC1RxOu+xj31sZzVGjhe/+MW1VMB16bWGjkd6N2HKTbfHpL3bX86B+z1S
- +vtEv70jCCAYICggsGPMnIwIe0eKv2PTv4BhMizQC4c222yz1r/+9a/OGQ2G7373uzX1vzkfvbt8QmDM
- fab7vECDbAhlJfoaKZ/M6LUgCII+UcfCSEdSoydVjwOg/qt2cPdwEDH1oBJVvmvjjTfuq6GNeem9XjTD
- MAzD/thLBI93joGTTqQJGnOjBZA5rJ5V0rk56lLKdZsmRgkI6cLc7EHpubgo+i7ur2PgMhLn0oI9R7na
- 6pu5kQSPGmKCcE45v74ar3bjcY973PzyOVKSibbmGmkYR1ARujLirA/x5xgFERyzVOWFUT30kqA1dlze
- PQQUONdK7Ko45WoTp0oD6trJHOD0tq666qrOaowMv/rVr1pTpkypgtR3SCUXFLDPBAk42Rx919UxqhG3
- v4h1xy+4MAh9ximFAk2uk+9SpmCPOwbXk0iWQSD7wv1gDYYFemFrzz33bM2bN69zVoPhlFNOqWP8rLeg
- kv0raCHgxN1n5LhugguyCfSA0CSR6ZNU9yAIghHAKAwjQuqINY11pClxGjxwREdFjT0c/Sh76N/zjGc8
- o69If+afh2EYjg57CeCJwFF20olbKeKeSxquqY2Vzk00SL8liol1DiSh41kmXbiSCzpW9PkEHPFCYDom
- 4lx6cnWABbu5tISgc2qLq+985zudM+4fhx9+OHFGrHJUfTYxRcx1BzIck2OzNtaF0BRMWJIk6nrRf3O9
- XDvvHpxj5QwCG1K7m2unoZuacYK6LdAf+chHtvfKIDj44INroIMg9c5DpDMoXD/HImAg2EE8Kx3Q1dx1
- d/wCH4ui2u2F0RrIurig8IpCwRX7u7rn9r0Mgrp/mmvQFuh4wgkndM5oMBD6avzLZ/qemllgT8kGcXzq
- 87snBdRU9zovXqZmuroHQRAsJgj0BxYataKLqkYlflzVQIms1xFrHg4i116Kpr7pTW/q6wlYBH3PF80w
- DMOwP/YSvxOFg3Z3b4h04kwqNydRyjsBRcBw9ogobidxx330DCP2CNOxJhff//pOwtxxSMWXFuwYHSvh
- 7Nir+zksrj74wQ92zrZ/fPKTnyTMCH3rQ7ipG/ZdRK3vdgyORSDD2nCDrYtjNsZspJTqPJq0fq4bYcoc
- IM7r2lXnmHhWG12dYwKyLUwvueSSzoqMDLfccou58soFXJuajUAUE8d68dhjAi7KK2RGCAhZB0Ehon00
- 6Jr4bPvH+5cglGCUa1n3jzUQjHG9Ha81GBboeOWVV3bOajD84Q9/aK2xxhq1hKJ79JpzV15iUoBUd70N
- lErKyGymuqerexAEwWKizkA3FqM5A11dmrQtkWwPcSlyms54MN5bXiIW2wL597//3fMlMwzDMOyfvYTv
- ROIodXcnzDQI0yRL4Pj3hUQDEcXdIx40+PLsIkq5fSMlwd8v/T3fTVz+sFCAW1p7U1w1BWZbWD3/+c/v
- nGn/uPXWW4kyn0NIcTuJdI4nt5XA9Azn4Fsbjrp1cazE5iDU6Xy0SZi7fgRxFaZVnBPNrj2Xe9g9r9x6
- 660HTu8+8MADraPPJtJdK9/r+x2H49EDwbV1jV1rxyxDYUEkZPuhv+NzXafmGtg/jsW+716D+4hzLKK6
- nbY/GjjvvPN8ZvfoNccn2KN0gvMv1d37YzPVvdnVnSkUBEEQLAIEunmVIpxmeRq5oqurpieiodL0RHH9
- CA/PQD///PMX+83qpptu6vmSGYZhGPbPXqJ3opGTfumllw7qpBMLBBQ3XcMwQp2AkYJLzGjERrATN9Kj
- K7mxS4K+1zFIkdZglRNLMBM4xPn9nM8tttiic5b9w7qsvvrqPsfnEW3EG5FOzBF11oZQF8ggrqwFwb4g
- CnQsLfp+1857h2MmCJviXADC9b+Pe15JTA6Cm2++2ecQvc095tq5hq6la+rausaOVRCGaB9N+kzXyPdY
- gyrOrYHr6rgEeHq655XbbLNNa+rUqZ0zGwzPe97zfId9ZU8Jijl3wZSa6q7vQ0117+7qvn6hqUFJdQ+C
- IFgEViok0Dcv9CNqDqnIpxmkuqiqUVOzJpLtoS5lbvrVV1/d+bleNMx27fWSGYZhGPbPXoJ3IpKTfu65
- 547YSX/rW99KpBMnRAqxQrQQL4SUYDLBTlBxkAm8pUHfLyXYMXFim+Kyp7D65z//2TnL/vHkJz/ZZ1SR
- 7vMFAQQDCEyiyro4HmtC8C0uucdLmr7X+hGlAjDNwIYARE9xjgIdc+bM6azKyPDMZz7TZ9V1JEqldzsG
- x+KYHJtr7FiJ9kFI7Pai/+Y7mnvIcTieBe6hbh544IGdsxoMd955Z2uTTTax7q6DNRAIU1rC9ZeW353q
- Xru663EkU9P7pvfOIAiCYCHwQ6k2aIvCxxU+tdDcWPNbdb8VEVVHpzmKH2IPiOk33nhj5+d60TjzzDN7
- vmSGYRiG/bOX2J2oHLQmvSPSq4giWAgXYp2IIYaJ9qVNx0HQEOaCCTUluaewuuaaazpn2D+OP/74+jlV
- pBNTvo+o9f11XQj2sSQhOxr0WXX9XNvqGNf1u8/aNfl///d/nVUZGcwT73xW9zraX3VvOUaieaxpHVw7
- 390doFioOK98z3ve0zmzwfC1r31Njb57zTEJ9HSnumuW1+zq/rTCxxduXfigQpODMhs9CIJgIegW6HsX
- Euiin0ad6FDqR1etVRXoMzRRWVy8613v6vmSGYZhGPbPXkJ3InOQmnR/54orrmi96EUvGnr+858/pAN3
- 4bzyz/P8b+VBBx00zOc973nDfO5znzvM5zznOcM88MAD78NnP/vZwzzggAOGuf/++w/zWc961jCf+cxn
- zq3cb7/92nzGM54xb999951fOIT77LNPq/LpT3/6MC+++OLO2fWP66+/vu2iV+62225DhfPLvsF5hXN3
- 3XXXJudU7rLLLsN80pOe1OYTn/jEYe68887DLNdsmOUaDnPHHXds83GPe9wwH/vYxw7zMY95zDB32GGH
- YT760Y9u81GPetQwt99++2E+8pGPnFs4r3D+dttthy18xCMe0ea22247TCnd+JSnPKUdxBkEegI85CEP
- qZz/4Ac/eF7hXNxss83mVG666ab34SabbDLMjTfeeJgPetCDhrnRRhvh7MoNN9xwmBtssMEw119//WGu
- t956cwrnFs4vHFp33XVbleuss84w11577WGutdZabfozg0wJaOKYY44RFOhOdVcz3+zqbka82fYHFu5R
- uEPhloXrFa5amIZxQRAEC0AV6H40dywk0F9U+PpCAt0cUiNFCHQ1V22B/qc//anzM71onHTSST1fMsMw
- DMP+WYXtZOIgTnoQBEsW06ZNawlSlPfBZqq75oO6zuvqbnyfRsOyMV9SuF/hkwq3KzTW1/SgpLoHQRAs
- AN0CXSrSiwsJ9HcXdgt0tVd9CfQjjzyy50tmGIZh2D97CdzJwEGc9CAIliyuvfZaqfM11V2dfE11VxZp
- jr2Z728qfE2h6UBKKL1nPrxww0Kz0ZPqHgRB0AME+rqFCxLonygk0M1PHZFAP+SQQ3q+ZIZhGIb9s5e4
- nSzkpI+0u3sQBEsWBx10UE11925oeoIO/Eb3XV5oCpBMzGMLX1a4f+FuhY8qzGz0IAiChWBBAv0NhVWg
- X1NIoJvh2rdAf97zntfzJTMMwzDsn72E7WQiJ32k3d2DIFhyuP3229W3a9qngZ1O88bieV+8rvDCwg8V
- vq3wqEL9jfYpbM5GX6Mws9GDIAi6sDCBrslHBHoYhuE4Yi9RO9kYJz0IJgbOPvtsqe666+s2b+Sc2fBf
- L7yqUJnkGYVvLGzORn9MoffONIwLgiDogQj0MAzDCcRegnYysjrpQRCMX8h02XXXXY17M8bv9s674g8K
- v1x4SeFHC+ts9EMKNYzbpbDZMG7FwiAIgqCDCPQwDMMJxF5idrIyTnoQjH/88pe/bK200kpms5sN/5fC
- Wwq/VaiH0XmFZqOfXHh4YXfDuA0KH1A4pTAIgiAoiEAPwzCcQOwlZCcz46QHwfjHW9/6Vg3jZhR2z0bv
- bhj30sLaMG77wgcXrl3ofTQIgiAoiEAPwzCcQOwlYic746QHwfjGrFmzWltvvfW88o5YZ6P/stC7Y7Nh
- 3FsLa8O4pxc+vnDrwo0KVy/M2LUgCIKCCPQwDMMJxF4CdllgnPQgGN/4xje+UWej/7fwT4XNhnHnFL6n
- 8ITCVxQeWLh74aMLNy/M2LUgCIIOItDDMAwnEHuJ12WFcdKDYHzjBS94gVT3ZsO47xd+qfDiwo8Unlr4
- ukLvmvsWPrEwY9eCIAgaiEAPwzCcQOwlXJclxkkPgvGL2267rbXKKqvUhnF/LtQw7sbCzxV+svB9hScV
- vrrwuYUZuxYEQdCFCPQwDMMJxF6idVkjJ/2SSy6Jkx4E4xAnnXQSF316oYZxvyv8UeFXCi8r/FjhOwtf
- X1jHrj2p8BGFmxSuWRgXPQiCZRoR6GEYhhOIvQTrssg46UEwPjF16tTWhhtuOLe8L95T+NfCXxR+u9D7
- 5PmF3WPXnlL4uMKHFq5fyEXP2LUgCJZZRKCHYRhOIPYSq8sqB6lJHxoaan3nO99pffjDH2596EMfavPM
- M89s07+r/MhHPtLmRz/60WF+7GMfG+ZZZ501hP/3f/83zLPPPnuYH//4x9s855xzhnnuuee2+YlPfKKy
- 9clPfnKY5513Xpt/+ctfOkfbP771rW+1zj///DYvuOCCNj/1qU+1eeGFF+LQpz/96TYvuuiiYV588cVt
- XnLJJW2W9W3zsssuG+bll1/e5hVXXNHmlVde2eZnPvOZYV511VVtfvazn23z6quvbvNzn/tcm5///OeH
- ec0117R57bXXtnnddde1+YUvfGGYX/ziF9v80pe+1OaXv/zlNq+//vo2v/KVrwzzq1/9aptf+9rXWnjD
- DTe0+fWvf71Nc7sHwR133NFuiIbf/OY327zxxhuHae3x29/+dps33XTTMO05/O53v9vm9773vWF+//vf
- b/MHP/hBmz/84Q+H+aMf/ajNH//4x23+5Cc/GebNN9/c5k9/+tM2f/aznw3z5z//eZu33HJLm7feeusw
- f/GLX7RpPfBXv/pVm7fffnvnTEeOsvc1jJtZ+O/CPxT+pPBrhVcUGrv2rsJjCw8rfGbhroXbFW5W+MDC
- FQuDIAiWSUSgh2EYTiB2i9RlnYM46fPnz2+95S1vaa244orExOJS+i7OLzRWak6hztVmQGuOde9i0p/1
- d/xdn+Gz6me3v6uI/c6R9o83vvGNCztu7qY6YQJKKnI/x43+/Himc7K2zs95Ol/n3V7bLbbYoh2gGSl+
- +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
- fYFBp/4dg36aOFQEg84Z2AbdsqxCyAbdGGOMMblSjkH//vvvS5tttlkLm266aTObbLJJU0Tjxhtv3KD/
- nAL6781stNFGLfTs2bOFDTbYoJn111+/hR49erSw3nrrNdO9e/cW1l133Ra0/mbWWWedOPVrr732lLXW
- WqtBNMKaa65ZCqyxxhrNEAXPqmuvvba04oorNrPCCisEmpZffvnGiIY///nP9YE//elPLSy33HIt/PGP
- f2xh2WWXbWGZZZZpZumll27hD3/4QwtLLbVUC0suuWQLSyyxRAuLL754C4sttlgLiy66aAuLLLJIMwsv
- vHALv//971tYaKGFWlhwwQWniAbRuMACCzSJEvzud79rRq8TPZ3y9eqrrwaDztkVg85ZFoPO2RaDzlmX
- My9nX87AnIVt0C3Lqrps0I0xxhiTK+UYdMtqD7399ttxg84ZlrMsZ1rOtpxxkww6Z2IbdMuyqiobdGOM
- Mcbkig26VW199NFHGHTKEVobdOboB4O+k9hErCaCQf+VsCzLqpps0I0xxhiTKzboVrX1+eefB4NOIzrO
- sMyRv18Egz5AxA36ksIG3bKsqssG3RhjjDG5YoNuVVvffvtt3KAz0i1u0M8QNuiWZRVSNujGGGOMyRUb
- dKvaGjVqVBqDvrPAoP9VYNB/K2zQLcuqqmzQjTHGGJMrNuhWtTV+/PipGfSrRdygbyps0C3LKoxs0I0x
- xhiTKzboVrVVX19vg25ZVk3KBt0YY4wxuWKDblVbjY2NaVPcbdAtyyqUbNCNMcYYkys26Fa1NY0U96Qm
- cTbolmUVRjboxhhjjMkVG3Sr2vrhhx+mZdA548YNeujiboNuWVbVZYNujDHGmFyxQbeqrc8++yxu0DnD
- YtA50waDzlnXY9YsyyqcbNCNMcYYkys26Fa19e677waDztmVMyxnWc60nG2DQefMy9kXg85Z2Abdsqyq
- ywbdGGOMMblig25VW6+88goGfWJ0dn1fcJa9V3C2PU3EDTpn4GDQORtblmVVTTboxhhjjMkVG3Sr2nr2
- 2WeDQf9OYND/LTDoVwoM+qGir9hIcAZeXMwtbNAty6qqbNCNMcYYkyvlGPSxY8eWLrroohYuvvjiZi65
- 5JJA06WXXtrCZZdd1szll1/ewhVXXNHClVde2cw///nPFq666qoWrr766mauueaaFq699tpmrrvuuhau
- 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
- NtmgG5MCG/TqKmmdabBBrww26Nm13377JT7TWscG3bIsy7KyyQbdmBTYoFdXSetMgw16ZbBBz66bbrop
- 8ZnWOjbolmVZlpVNNujGpMAGvbpKWmcabNArgw16dn355ZelddddN/G51jI26JZlWZaVTTboxqTABr26
- SlpnGmzQK4MNenZNnjy51KdPn8TnWsvYoFuWZVlWNtmgG5MCG/TqKmmdabBBrww26Nk1ZcqU0kEHHZT4
- XGsZG3TLsizLyiYbdGNSYINeXSWtMw026JXBBj27mpqaSmeffXbic61lbNAty7IsK5ts0I1JgQ16dZW0
- zjTYoFcGG/S26Y477kh8rrWMDbplWZZlZZMNujEpsEGvrpLWmQYb9Mpgg942vfbaa4nPtZaxQbcsy7Ks
- bLJBNyYFNujVVdI602CDXhls0NumMWPGlLp37574bGsVG3TLsizLyiYbdGNSYINeXSWtMw026JXBBr1t
- og59zz33THy2tYoNumVZlmVlkw26MSmwQa+uktaZBhv0ymCD3nZdf/31ic+2VrFBtyzLsqxsskE3JgU2
- 6NVV0jrTYINeGWzQ267PP/888dnWKjbolmVZlpVNNujGpMAGvbpKWmcabNArgw1621VXV1facsstE59v
- LWKDblmWZVnZZINuTAps0KurpHWmwQa9Mtigt1319fWlAw44IPH51iI26JZlWZaVTTboxqTABr26Slpn
- GmzQK4MNetvV2NhYOuOMMxKfby1ig25ZlmVZ2WSDbkwKOpNB32WXXaJ3KI6S1pkGG/TKYIOej2677bbE
- 51uL2KBblmVZVjbZoBuTgs5k0AcNGhS9Q3GUtM402KBXBhv0fPTqq68mPt9axAbdsizLsrLJBt2YFHQW
- g77hhhuWXnvttegdiqOktabBBr0y2KDno59//jnx+dYiNuiWZVmWlU026MakoIgGna7PDz30UC48/PDD
- zabxyy+/LDU1NUXvUBwlfSdpsEGvDDbo+al///6Jz7jWsEG3LMuyrGyyQTcmBUU06J1JSd9JGmzQK4MN
- en666qqrEp9xrWGDblmWZVnZZINuTAps0KurpO8kDTbolcEGPT99+OGHic+41rBBtyzLsqxsskE3JgU2
- 6NVV0neSBhv0ylBUg87osqlRxFIONGnSpFKvXr0Sn3MtYYNuWZZlWdlkg25MCmzQq6uk7yQNNuiVoagG
- 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
- X9ou+L6llfdWKtIgafshALiDywzZuVLGlDVlTtlTBpVFZVLZVEaVVWVW2VWGlWVlWtlWxpV1ZV7ZVwaW
- hWVi2VhG7jPmJuZKqfvVNBEBrr1Nq0FGF9r0ntZunu3VMJ2pa6Xg+eXTlwYqvdv1c5e2+r1zaTDTLbat
- sHfJXCsPndVrFaL3wn7T0iDoW5e2DDYo+val1YqtwRIA3NVllpQtZUxZU+aUPWVQWVQmlU1lVFlVZpVd
- ZVhZVqaVbWVcWVfmlX1lYFlYJpaNZaTL35RST6emiQhw7W1eDTp6JcyHLm3da6Xgo5Y9Wf+UpbN3bfXr
- gpy2/fXe17YANsBpO+AXLZ3Xa3tgN902CGplonN8DYraOpgu3AGA+9q5UsaUNWVO2VMGlUVlUtlURpVV
- ZVbZ1YS8LCvTyrYyrqz7uKXsKwPLwjLRxFwp9XRrmogA19T/1F5V7z2ue7LeKkJb/D5+aRDTtr93LG0B
- bIDTysNnLU3c2x7YhToNglqZaEDUtsF8/oUGSwBwV5dZsvOlrClzyp4yqCwqk8qmMqqsKrPKrjKsLCvT
- yrYybk/Kyz6TcqXUw9U0EQGuqbH2ZL1VhM7efdjSIOYjl49eujCnFYfO6DXY+eSlgU9bBLtUp4FQqxMN
- ira2EALAfV1mS1lT5pQ9ZVBZVCaVTWVUWVVmlV1lWFn24UvZZqVcKXWupokIcE29ZTVwaRv8nrB3Jm9P
- 2hvkNNjpdtsGPq1GtE2wgVCrE2lgBABP286ZMqfsKYPKojJpT8TLqjKr7NoT8jLNpFwpdbamiQhwTd25
- GtRse+Le7bYNfNI2wTQYAoCHtnNn51CZdDkR35RS6v+upokIcE0ppZRSSimlHrSmiQhwTSmllFJKKaUe
- tKaJCHBNKaWUUkoppR60pokIcO0xdfOM9UPqMy4vrNmfuz+7s3T3cfPztum/vYt+xn7u/exT3fx9Hsr+
- jLd6lv08/Z3pdzrl8nnf7JlvW/9ffreH/r2elrs8481nuPlve+nm59zW9LPuop/xJP/ul7/X9By7/9B6
- hsc9/+7d5t//0s3PuGn6vJufleln38XjPutxddvP339+V9PPuot+xm1+n/3nl7/LQ+jn3/Z59n/b35t+
- rxNu87z7z/az5ubz3tX+7Df73KluPsv0s9/Mfv77unz2N3uem3/vIfUM+7mmeqtnvY2bn/kkbj7n03iu
- p2l6xmezpokIAAAAcNbYBAAAAM4amwAAAMBZYxMAAAA4a2wCAAAAZ41NAAAA4KyxCQAAAJw1NgEAAICz
- xiYAAABw1tgEAAAAzhqbAAAAwFljEwAAADhrbAIAAABnjU0AAADgrLEJAAAAnDU2AQAAgLPGJgAAAHDW
- 2AQAAADOGpsAAADAWWMTAAAAOGtsAgAAAGeNTQAAAOCssQkAAACcNTYBAACAs8YmAAAAcNbYBAAAAM4a
- mwAAAMBZYxMAAAA4a2wCAAAAZ41NAAAA4KyxCQAAAJw1NgEAAICzxiYAAABw1tgEAAAAzhqbAAAAwFlj
- EwAAADhrbAIAAABnjU0AAADgrLEJAAAAnDU2AQAAgLPGJgAAAHDW2AQAAADOGpsAAADAWWMTAAAAOGts
- AgAAAGeNTQAAAOCssQkAAACcNTYBAACAs8YmAAAAcNbYBAAAAM4amwAAAMBZYxMAAAA4a2wCAAAAZ41N
- AAAA4KyxCQAAAJw1NgEAAICzxiYAAABw1tgEAAAAzhqbAAAAwFljEwAAADhrbAIAAABnjU0AAADgrLEJ
- AAAAnDU2AQAAgLPGJgAAAHDW2AQAAADOGpsAAADAWWMTAAAAOGtsAgAAAGeNTQAAAOCssQkAAACcNTYB
- AACAs8YmAAAAcNbYBAAAAM4amwAAAMBZYxMAAAA4a2wCAAAAZ41NAAAA4KyxCQAAAJw1NgEAAICzxiYA
- AABw1tgEAAAAzhqbAAAAwFljEwAAADhrbAIAAABnjU0AAADgrLEJAAAAnDU2AQAAgLPGJgAAAHDW2AQA
- AADOGpsAAADAWWMTAAAAOGtsAgAAAGeNTQAAAOCssQkAAACcNTYBAACAs8YmAAAAcNbYBAAAAM4amwAA
- AMBZYxMAAAA4a2wCAAAAZ41NAAAA4KyxCQAAAJw1NgEAAICzxiYAAABw1tgEAAAAzhqbAAAAwFljEwAA
- ADhrbAIAAABnjU0AAADgrLEJAAAAnDU2AQAAgLPGJgAAAHDW2AQAAADOGpsAAADAWWMTAAAAOGtsAgAA
- AGeNTQAAAOCssQkAAACcNTYBAACAs8YmAAAAcNbYBAAAAM4amwAAAMBZYxMAAAA4a2wCAAAAZ41NAAAA
- 4KyxCQAAAJw1NgEAAICzxiYAAABw1tgEAAAAzhqbAAAAwFljEwAAADhrbAIAAABnjU0AAADgrLEJAAAA
- nDU2AQAAgLPGJgAAAHDW2AQAAABOevQh/w2VkWR8zwQAigAAAABJRU5ErkJggg==
-
-
3, 3
diff --git a/PCK-Studio/Forms/Utilities/pckCenterOpen.Designer.cs b/PCK-Studio/Forms/Utilities/pckCenterOpen.Designer.cs
index 52f39c61..04dabee5 100644
--- a/PCK-Studio/Forms/Utilities/pckCenterOpen.Designer.cs
+++ b/PCK-Studio/Forms/Utilities/pckCenterOpen.Designer.cs
@@ -87,7 +87,7 @@
// 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;
+ 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;
@@ -98,7 +98,7 @@
// buttonInstallXbox
//
this.buttonInstallXbox.BackColor = System.Drawing.Color.Lime;
- this.buttonInstallXbox.BackgroundImage = global::PckStudio.Properties.Resources.xbox;
+ 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;
@@ -109,7 +109,7 @@
// buttonInstallWiiU
//
this.buttonInstallWiiU.BackColor = System.Drawing.Color.DeepSkyBlue;
- this.buttonInstallWiiU.BackgroundImage = global::PckStudio.Properties.Resources.wiiu;
+ 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;
diff --git a/PCK-Studio/Forms/Utilities/pckCenterOpen.cs b/PCK-Studio/Forms/Utilities/pckCenterOpen.cs
index 0a2a8b6d..02416e8f 100644
--- a/PCK-Studio/Forms/Utilities/pckCenterOpen.cs
+++ b/PCK-Studio/Forms/Utilities/pckCenterOpen.cs
@@ -1136,8 +1136,6 @@ namespace PckStudio.Forms
private void buttonInstallWiiU_Click(object sender, EventArgs e)
{
- InstallWiiU install = new InstallWiiU(Program.AppData + "/PCK Center/myPcks/" + mod + ".pck");
- install.ShowDialog();
}
}
}
diff --git a/PCK-Studio/Forms/Utilities/pckCenterOpen.resx b/PCK-Studio/Forms/Utilities/pckCenterOpen.resx
index d20128a3..39173838 100644
--- a/PCK-Studio/Forms/Utilities/pckCenterOpen.resx
+++ b/PCK-Studio/Forms/Utilities/pckCenterOpen.resx
@@ -328,7 +328,7 @@
2
- Stretch
+ Zoom
Flat
@@ -420,9 +420,6 @@
760, 418
-
- Segoe UI, 8.25pt
-
CenterParent
diff --git a/PCK-Studio/Internals/ApplicationScope.cs b/PCK-Studio/Internals/ApplicationScope.cs
new file mode 100644
index 00000000..18b154eb
--- /dev/null
+++ b/PCK-Studio/Internals/ApplicationScope.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using PckStudio.Classes.Misc;
+
+namespace PckStudio
+{
+ internal static class ApplicationScope
+ {
+ public static FileCacher AppDataCacher = new FileCacher(Program.AppDataCache);
+
+ }
+}
diff --git a/PCK-Studio/MainForm.Designer.cs b/PCK-Studio/MainForm.Designer.cs
index 001ce0cf..87a6fef8 100644
--- a/PCK-Studio/MainForm.Designer.cs
+++ b/PCK-Studio/MainForm.Designer.cs
@@ -75,6 +75,8 @@
this.mashUpPackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.extractToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
+ this.packSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.fullBoxSupportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.closeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -83,6 +85,7 @@
this.convertToBedrockToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.miscToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.addCustomPackImageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.openPckManagerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.convertMusicFilesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.wavBinkaToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.binkaWavToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -106,9 +109,7 @@
this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.administrativeToolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.storeToolStripMenuItem = 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.openPckCenterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.joinDevelopmentDiscordToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.trelloBoardToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.contextMenuMetaTree = new System.Windows.Forms.ContextMenuStrip(this.components);
@@ -425,6 +426,7 @@
this.newToolStripMenuItem,
this.openToolStripMenuItem,
this.extractToolStripMenuItem1,
+ this.packSettingsToolStripMenuItem,
this.saveToolStripMenuItem1,
this.saveToolStripMenuItem,
this.closeToolStripMenuItem});
@@ -471,6 +473,21 @@
this.extractToolStripMenuItem1.Name = "extractToolStripMenuItem1";
this.extractToolStripMenuItem1.Click += new System.EventHandler(this.extractToolStripMenuItem1_Click);
//
+ // packSettingsToolStripMenuItem
+ //
+ this.packSettingsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.fullBoxSupportToolStripMenuItem});
+ this.packSettingsToolStripMenuItem.Image = global::PckStudio.Properties.Resources.ranch;
+ this.packSettingsToolStripMenuItem.Name = "packSettingsToolStripMenuItem";
+ resources.ApplyResources(this.packSettingsToolStripMenuItem, "packSettingsToolStripMenuItem");
+ //
+ // fullBoxSupportToolStripMenuItem
+ //
+ this.fullBoxSupportToolStripMenuItem.CheckOnClick = true;
+ this.fullBoxSupportToolStripMenuItem.Name = "fullBoxSupportToolStripMenuItem";
+ resources.ApplyResources(this.fullBoxSupportToolStripMenuItem, "fullBoxSupportToolStripMenuItem");
+ this.fullBoxSupportToolStripMenuItem.CheckedChanged += new System.EventHandler(this.fullBoxSupportToolStripMenuItem_CheckedChanged);
+ //
// saveToolStripMenuItem1
//
resources.ApplyResources(this.saveToolStripMenuItem1, "saveToolStripMenuItem1");
@@ -514,6 +531,7 @@
//
this.miscToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.addCustomPackImageToolStripMenuItem,
+ this.openPckManagerToolStripMenuItem,
this.convertMusicFilesToolStripMenuItem});
this.miscToolStripMenuItem.ForeColor = System.Drawing.Color.White;
resources.ApplyResources(this.miscToolStripMenuItem, "miscToolStripMenuItem");
@@ -525,6 +543,12 @@
this.addCustomPackImageToolStripMenuItem.Name = "addCustomPackImageToolStripMenuItem";
this.addCustomPackImageToolStripMenuItem.Click += new System.EventHandler(this.addCustomPackIconToolStripMenuItem_Click);
//
+ // openPckManagerToolStripMenuItem
+ //
+ this.openPckManagerToolStripMenuItem.Name = "openPckManagerToolStripMenuItem";
+ resources.ApplyResources(this.openPckManagerToolStripMenuItem, "openPckManagerToolStripMenuItem");
+ this.openPckManagerToolStripMenuItem.Click += new System.EventHandler(this.openPckManagerToolStripMenuItem_Click);
+ //
// convertMusicFilesToolStripMenuItem
//
this.convertMusicFilesToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@@ -681,32 +705,19 @@
// storeToolStripMenuItem
//
this.storeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.wiiUPCKInstallerToolStripMenuItem,
- this.PS3PCKInstallerToolStripMenuItem,
- this.VitaPCKInstallerToolStripMenuItem,
+ this.openPckCenterToolStripMenuItem,
this.joinDevelopmentDiscordToolStripMenuItem,
this.trelloBoardToolStripMenuItem});
this.storeToolStripMenuItem.ForeColor = System.Drawing.Color.White;
resources.ApplyResources(this.storeToolStripMenuItem, "storeToolStripMenuItem");
this.storeToolStripMenuItem.Name = "storeToolStripMenuItem";
//
- // wiiUPCKInstallerToolStripMenuItem
+ // openPckCenterToolStripMenuItem
//
- 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);
+ this.openPckCenterToolStripMenuItem.Image = global::PckStudio.Properties.Resources.pckCenterHeader;
+ this.openPckCenterToolStripMenuItem.Name = "openPckCenterToolStripMenuItem";
+ resources.ApplyResources(this.openPckCenterToolStripMenuItem, "openPckCenterToolStripMenuItem");
+ this.openPckCenterToolStripMenuItem.Click += new System.EventHandler(this.openPckCenterToolStripMenuItem_Click);
//
// joinDevelopmentDiscordToolStripMenuItem
//
@@ -1195,15 +1206,14 @@
private System.Windows.Forms.ToolStripMenuItem donateToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem convertToBedrockToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem storeToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem openPckCenterToolStripMenuItem;
private MetroFramework.Controls.MetroTabControl tabControl;
private MetroFramework.Controls.MetroTabPage editorTab;
private MetroFramework.Controls.MetroCheckBox LittleEndianCheckBox;
private MetroFramework.Controls.MetroLabel label11;
- private System.Windows.Forms.ToolStripMenuItem wiiUPCKInstallerToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem PS3PCKInstallerToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem OpenInstallerToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem settingsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem administrativeToolsToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem VitaPCKInstallerToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem toNobledezJackToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem toPhoenixARCDeveloperToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem joinDevelopmentDiscordToolStripMenuItem;
@@ -1276,6 +1286,9 @@
private System.Windows.Forms.ToolStripMenuItem convertMusicFilesToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem wavBinkaToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem binkaWavToolStripMenuItem;
- }
+ private System.Windows.Forms.ToolStripMenuItem openPckManagerToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem packSettingsToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem fullBoxSupportToolStripMenuItem;
+ }
}
diff --git a/PCK-Studio/MainForm.cs b/PCK-Studio/MainForm.cs
index 0544bd91..90e2a771 100644
--- a/PCK-Studio/MainForm.cs
+++ b/PCK-Studio/MainForm.cs
@@ -29,6 +29,7 @@ using PckStudio.Classes.IO.PCK;
using PckStudio.Classes.IO._3DST;
using PckStudio.Internal;
using PckStudio.Extensions;
+using PckStudio.Features;
namespace PckStudio
{
@@ -104,7 +105,7 @@ namespace PckStudio
};
}
- public void LoadPck(string filepath)
+ public void LoadPckFromFile(string filepath)
{
checkSaveState();
treeViewMain.Nodes.Clear();
@@ -152,7 +153,7 @@ namespace PckStudio
ofd.Filter = "PCK (Minecraft Console Package)|*.pck";
if (ofd.ShowDialog() == DialogResult.OK)
{
- LoadPck(ofd.FileName);
+ LoadPckFromFile(ofd.FileName);
}
}
}
@@ -200,6 +201,9 @@ namespace PckStudio
pckFileLabel.Text = "Current PCK File: " + Path.GetFileName(saveLocation);
treeViewMain.Enabled = treeMeta.Enabled = true;
closeToolStripMenuItem.Visible = true;
+ fullBoxSupportToolStripMenuItem.Checked = currentPCK.HasVerionString;
+ packSettingsToolStripMenuItem.Visible = true;
+
saveToolStripMenuItem.Enabled = true;
saveToolStripMenuItem1.Enabled = true;
advancedMetaAddingToolStripMenuItem.Enabled = true;
@@ -209,7 +213,7 @@ namespace PckStudio
isSelectingTab = true;
tabControl.SelectTab(1);
isSelectingTab = false;
- UpdateRPC();
+ UpdateRPC();
}
private void CloseEditorTab()
@@ -230,7 +234,8 @@ namespace PckStudio
saveToolStripMenuItem1.Enabled = false;
advancedMetaAddingToolStripMenuItem.Enabled = false;
closeToolStripMenuItem.Visible = false;
- convertToBedrockToolStripMenuItem.Enabled = false;
+ packSettingsToolStripMenuItem.Visible = false;
+ convertToBedrockToolStripMenuItem.Enabled = false;
addCustomPackImageToolStripMenuItem.Enabled = false;
fileEntryCountLabel.Text = string.Empty;
pckFileLabel.Text = string.Empty;
@@ -282,12 +287,14 @@ namespace PckStudio
{
case PckFile.FileData.FileType.SkinDataFile:
case PckFile.FileData.FileType.TexturePackInfoFile:
+ if (file.Data.Length == 0)
+ break;
using (var stream = new MemoryStream(file.Data))
{
try
{
- var writer = new PckFileReader(LittleEndianCheckBox.Checked ? OMI.Endianness.LittleEndian : OMI.Endianness.BigEndian);
- PckFile subPCKfile = writer.FromStream(stream);
+ var reader = new PckFileReader(LittleEndianCheckBox.Checked ? OMI.Endianness.LittleEndian : OMI.Endianness.BigEndian);
+ PckFile subPCKfile = reader.FromStream(stream);
// passes parent path to remove from sub pck filepaths
BuildPckTreeView(node.Nodes, subPCKfile, file.Filename + "/");
}
@@ -395,13 +402,10 @@ namespace PckStudio
private void HandleAudioFile(PckFile.FileData file)
{
- if (!TryGetLocFile(out LOCFile locFile))
- throw new Exception("No .loc File found.");
- using AudioEditor audioEditor = new AudioEditor(file, locFile, LittleEndianCheckBox.Checked);
+ using AudioEditor audioEditor = new AudioEditor(file, LittleEndianCheckBox.Checked);
if (audioEditor.ShowDialog(this) == DialogResult.OK)
{
wasModified = true;
- TrySetLocFile(locFile);
}
}
@@ -639,24 +643,6 @@ namespace PckStudio
private void Save(string filePath)
{
- bool isSkinsPCK = false;
- if (!currentPCK.TryGetFile("0", PckFile.FileData.FileType.InfoFile, out PckFile.FileData _))
- {
- switch(MessageBox.Show(this, "The info file, \"0\", was not detected. Would you like to save as a Skins.pck archive?", "Save as Skins archive?", MessageBoxButtons.YesNoCancel))
- {
- case DialogResult.Yes:
- isSkinsPCK = true;
- break;
- case DialogResult.No:
- isSkinsPCK = false;
- break;
- case DialogResult.Cancel:
- default:
- return; // Cancel operation
- }
- }
- currentPCK.HasVerionString = isSkinsPCK;
-
var writer = new PckFileWriter(currentPCK, LittleEndianCheckBox.Checked ? OMI.Endianness.LittleEndian : OMI.Endianness.BigEndian);
writer.WriteToFile(filePath);
wasModified = false;
@@ -860,7 +846,7 @@ namespace PckStudio
}
else if (currentPCK.Files.FindIndex(file => file.Filename == "audio.pck") != -1)
{
- // the chances of this happening is really really slim but just in case
+ // the chance of this happening is really really slim but just in case
MessageBox.Show("There is already a file in this PCK named \"audio.pck\"!", "Can't create audio.pck");
return;
}
@@ -870,13 +856,9 @@ namespace PckStudio
return;
}
- if (!TryGetLocFile(out LOCFile locFile))
- throw new Exception("No .loc file found.");
var file = CreateNewAudioFile(LittleEndianCheckBox.Checked);
- AudioEditor diag = new AudioEditor(file, locFile, LittleEndianCheckBox.Checked);
- if (diag.ShowDialog(this) == DialogResult.OK)
- TrySetLocFile(locFile);
- else
+ AudioEditor diag = new AudioEditor(file, LittleEndianCheckBox.Checked);
+ if(diag.ShowDialog(this) != DialogResult.OK)
{
currentPCK.Files.Remove(file); //delete file if not saved
}
@@ -922,13 +904,12 @@ namespace PckStudio
bool IsSubPCKNode(string nodePath, string extention = ".pck")
{
- // written by miku, implemented and modified by me - MNL
+ // written by miku, implemented and modified by MattNL
if (nodePath.EndsWith(extention)) return false;
string[] subpaths = nodePath.Split('/');
- var conditions = subpaths.Select(s => Path.GetExtension(s).Equals(extention));
- bool isSubFile = conditions.Contains(true);
+ bool isSubFile = subpaths.Any(s => Path.GetExtension(s).Equals(extention));
if(isSubFile) Console.WriteLine($"{nodePath} is a Sub-PCK File");
@@ -975,10 +956,7 @@ 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)
- {
- HasVerionString = parent_file.Filetype is PckFile.FileData.FileType.SkinDataFile
- };
+ PckFile newPCKFile = new PckFile(3, parent_file.Filetype is PckFile.FileData.FileType.SkinDataFile);
foreach (TreeNode node in GetAllChildNodes(parent.Nodes))
{
@@ -1251,10 +1229,7 @@ namespace PckStudio
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
- },
+ var writer = new PckFileWriter(new PckFile(3, true),
LittleEndianCheckBox.Checked
? OMI.Endianness.LittleEndian
: OMI.Endianness.BigEndian);
@@ -1734,12 +1709,6 @@ namespace PckStudio
#endif
}
- private void wiiUPCKInstallerToolStripMenuItem_Click(object sender, EventArgs e)
- {
- InstallWiiU install = new InstallWiiU(null);
- install.ShowDialog();
- }
-
private void howToMakeABasicSkinPackToolStripMenuItem_Click(object sender, EventArgs e)
{
Process.Start("https://www.youtube.com/watch?v=A43aHRHkKxk");
@@ -1775,12 +1744,6 @@ namespace PckStudio
Process.Start("https://www.youtube.com/watch?v=hTlImrRrCKQ");
}
- private void PS3PCKInstallerToolStripMenuItem_Click(object sender, EventArgs e)
- {
- InstallPS3 install = new InstallPS3(null);
- install.ShowDialog();
- }
-
private void settingsToolStripMenuItem_Click(object sender, EventArgs e)
{
Preferences setting = new Preferences();
@@ -1793,13 +1756,6 @@ namespace PckStudio
pckm.Show();
}
- private void VitaPCKInstallerToolStripMenuItem_Click(object sender, EventArgs e)
- {
-
- InstallVita install = new InstallVita(null);
- install.ShowDialog();
- }
-
private void toPhoenixARCDeveloperToolStripMenuItem_Click(object sender, EventArgs e)
{
Process.Start("https://cash.app/$PhoenixARC");
@@ -1866,7 +1822,7 @@ namespace PckStudio
string[] Filepaths = (string[])e.Data.GetData(DataFormats.FileDrop, false);
if (Filepaths.Length > 1)
MessageBox.Show("Only one pck file at a time is currently supported");
- LoadPck(Filepaths[0]);
+ LoadPckFromFile(Filepaths[0]);
}
private void OpenPck_DragLeave(object sender, EventArgs e)
@@ -2023,18 +1979,18 @@ namespace PckStudio
{
for (int i = 2; i < 2 + diag.Levels; i++)
{
- string mippedPath = textureDirectory + "/" + textureName + "MipMapLevel" + i + textureExtension;
+ string mippedPath = $"{textureDirectory}/{textureName}MipMapLevel{i}{textureExtension}";
Debug.WriteLine(mippedPath);
if (currentPCK.HasFile(mippedPath, PckFile.FileData.FileType.TextureFile))
currentPCK.Files.Remove(currentPCK.GetFile(mippedPath, PckFile.FileData.FileType.TextureFile));
PckFile.FileData MipMappedFile = new PckFile.FileData(mippedPath, PckFile.FileData.FileType.TextureFile);
+
Image originalTexture = Image.FromStream(new MemoryStream(file.Data));
- int NewWidth = originalTexture.Width / (int)Math.Pow(2,i - 1);
- int NewHeight = originalTexture.Height / (int)Math.Pow(2, i - 1);
- Rectangle tileArea = new Rectangle(0, 0,
- NewWidth < 1 ? 1 : NewWidth,
- NewHeight < 1 ? 1 : NewHeight);
+ int NewWidth = Math.Max(originalTexture.Width / (int)Math.Pow(2,i - 1), 1);
+ int NewHeight = Math.Max(originalTexture.Height / (int)Math.Pow(2, i - 1), 1);
+
+ Rectangle tileArea = new Rectangle(0, 0, NewWidth, NewHeight);
Image mippedTexture = new Bitmap(NewWidth, NewHeight);
using (Graphics gfx = Graphics.FromImage(mippedTexture))
{
@@ -2046,6 +2002,7 @@ namespace PckStudio
MemoryStream texStream = new MemoryStream();
mippedTexture.Save(texStream, ImageFormat.Png);
MipMappedFile.SetData(texStream.ToArray());
+ texStream.Dispose();
currentPCK.Files.Insert(currentPCK.Files.IndexOf(file) + i - 1, MipMappedFile);
}
@@ -2068,7 +2025,7 @@ namespace PckStudio
private void tabControl_Selecting(object sender, TabControlCancelEventArgs e)
{
- if (!isSelectingTab) e.Cancel = true;
+ e.Cancel = !isSelectingTab;
}
private void as3DSTextureFileToolStripMenuItem_Click(object sender, EventArgs e)
@@ -2078,7 +2035,7 @@ namespace PckStudio
file.Filetype == PckFile.FileData.FileType.SkinFile)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
- saveFileDialog.Filter = "3DS Texture | *.3dst";
+ saveFileDialog.Filter = "3DS Texture|*.3dst";
saveFileDialog.DefaultExt = ".3dst";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
@@ -2171,7 +2128,7 @@ namespace PckStudio
currentPCK.CreateNewFile("Skins.pck", PckFile.FileData.FileType.SkinDataFile, () =>
{
using var stream = new MemoryStream();
- var writer = new PckFileWriter(new PckFile(3) { HasVerionString = true },
+ var writer = new PckFileWriter(new PckFile(3, true),
LittleEndianCheckBox.Checked ? OMI.Endianness.LittleEndian : OMI.Endianness.BigEndian);
writer.WriteToStream(stream);
return stream.ToArray();
@@ -2288,6 +2245,12 @@ namespace PckStudio
Process.Start("https://trello.com/b/0XLNOEbe/pck-studio");
}
+ private void openPckManagerToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ PckManager installer = new PckManager();
+ installer.Show(this);
+ }
+
private async void wavBinkaToolStripMenuItem_Click(object sender, EventArgs e)
{
using OpenFileDialog fileDialog = new OpenFileDialog
@@ -2303,18 +2266,18 @@ namespace PckStudio
waitDiag.Show(this);
int convertedCounter = 0;
- foreach (string file in fileDialog.FileNames)
+ foreach (string waveFilepath in fileDialog.FileNames)
{
- string[] a = Path.GetFileNameWithoutExtension(file).Split(Path.GetInvalidFileNameChars());
+ string[] a = Path.GetFileNameWithoutExtension(waveFilepath).Split(Path.GetInvalidFileNameChars());
string songName = string.Join("_", a);
songName = System.Text.RegularExpressions.Regex.Replace(songName, @"[^\u0000-\u007F]+", "_"); // Replace UTF characters
- string cacheSongLoc = Path.Combine(Program.AppDataCache, songName + Path.GetExtension(file));
+ string cacheSongLoc = Path.Combine(ApplicationScope.AppDataCacher.CacheDirectory, songName + Path.GetExtension(waveFilepath));
if (File.Exists(cacheSongLoc))
File.Delete(cacheSongLoc);
- using (var reader = new NAudio.Wave.WaveFileReader(file)) //read from original location
+ using (var reader = new NAudio.Wave.WaveFileReader(waveFilepath)) //read from original location
{
var newFormat = new NAudio.Wave.WaveFormat(reader.WaveFormat.SampleRate, 16, reader.WaveFormat.Channels);
using (var conversionStream = new NAudio.Wave.WaveFormatConversionStream(newFormat, reader))
@@ -2328,7 +2291,7 @@ namespace PckStudio
int exitCode = 0;
await System.Threading.Tasks.Task.Run(() =>
{
- exitCode = Classes.Binka.FromWav(cacheSongLoc, Path.Combine(Path.GetDirectoryName(file), Path.GetFileNameWithoutExtension(file) + ".binka"), 4);
+ exitCode = Classes.Binka.FromWav(cacheSongLoc, Path.Combine(Path.GetDirectoryName(waveFilepath), Path.GetFileNameWithoutExtension(waveFilepath) + ".binka"), 4);
});
if (exitCode != 0)
@@ -2370,5 +2333,10 @@ namespace PckStudio
waitDiag.Dispose();
MessageBox.Show(this, $"Successfully converted {success}/{fileDialog.FileNames.Length} file{(fileDialog.FileNames.Length != 1 ? "s" : "")}", "Done!");
}
- }
+
+ private void fullBoxSupportToolStripMenuItem_CheckedChanged(object sender, EventArgs e)
+ {
+ currentPCK.SetVersion(fullBoxSupportToolStripMenuItem.Checked);
+ }
+ }
}
\ No newline at end of file
diff --git a/PCK-Studio/MainForm.resx b/PCK-Studio/MainForm.resx
index 6c437782..998b2b4e 100644
--- a/PCK-Studio/MainForm.resx
+++ b/PCK-Studio/MainForm.resx
@@ -22280,6 +22280,29 @@
116, 17
+
+ 158, 224
+
+
+ contextMenuPCKEntries
+
+
+ System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xOdTWsmQAAAA3SURBVDhPY/j/
+ /z9FGKsgGIsCKWSMTQ0QYxUE45FmALpiYvFwMgAbxqIYG8YqCMajBhCJ/zMAAPGwpV/Xje8RAAAAAElF
+ TkSuQmCC
+
+
+
+ 157, 22
+
+
+ Create
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
@@ -22356,19 +22379,20 @@
Skins.pck
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xOdTWsmQAAAA3SURBVDhPY/j/
- /z9FGKsgGIsCKWSMTQ0QYxUE45FmALpiYvFwMgAbxqIYG8YqCMajBhCJ/zMAAPGwpV/Xje8RAAAAAElF
+ vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xOdTWsmQAAABzSURBVDhPpYzB
+ DQAhCARp4hr3Txu254WTjYRb9cEmk/BgRjBVHTv85Twmgt77PcJEYIFrhIkAgWOEiSAGthEmgtbaD9fW
+ mBgpB4xywCgFxiMf5YDdrq3l5wjEjKtzTARMNlydY2IGot2ureVnRjkQmZbICyCi7XU5cfqKAAAAAElF
TkSuQmCC
-
+
157, 22
-
- Create
+
+ Import
@@ -22416,20 +22440,11 @@
Add Texture
-
-
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xOdTWsmQAAABzSURBVDhPpYzB
- DQAhCARp4hr3Txu254WTjYRb9cEmk/BgRjBVHTv85Twmgt77PcJEYIFrhIkAgWOEiSAGthEmgtbaD9fW
- mBgpB4xywCgFxiMf5YDdrq3l5wjEjKtzTARMNlydY2IGot2ureVnRjkQmZbICyCi7XU5cfqKAAAAAElF
- TkSuQmCC
-
-
-
+
157, 22
-
- Import
+
+ Export
186, 22
@@ -22437,11 +22452,11 @@
Export as 3DS Texture
-
+
157, 22
-
- Export
+
+ Set File Type
222, 22
@@ -22515,11 +22530,11 @@
Entity Materials File (.BIN)
-
+
157, 22
-
- Set File Type
+
+ Misc. Functions
210, 22
@@ -22539,12 +22554,6 @@
Correct Skin Decimals
-
- 157, 22
-
-
- Misc. Functions
-
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
@@ -22610,15 +22619,6 @@
Delete
-
- 158, 224
-
-
- contextMenuPCKEntries
-
-
- System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
17, 17
@@ -22628,6 +22628,267 @@
Segoe UI, 9.5pt
+
+
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAN9JREFUWEft
+ lz0KwkAQhRe01Nt4hFzBU9gLYuFxQjyHlfexUIv1TfYtiGSzP5NGmA8ehGTm8ZUZZ6Tw3q+QHbIvTMdV
+ PSjbInekliMrdKDoHPqa0EugpA9dI11BbsgbiegkUDCEHu/5ahaMXZEH8pQdcuHnerDcIiAsI4HFVgFB
+ L4EljYCgk8CCVkAQiVd4HDlwPA+GlxAQRCIycDyPDIedMoE5WCOYgAmYgAmYgAn8l8D3T+nUDVCTSM/6
+ PBjW/JanOLE+D4ZbD5MU0rVhfRlYiKfZ1B1QE+lYs9b4wbkPJT1laD5Q34oAAAAASUVORK5CYII=
+
+
+
+ 55, 20
+
+
+ File
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABGdBTUEAALGPC/xhBQAAAjRJREFUSEut
+ lc1LVFEYxgdDdBFG1ErSTGhhH1iQTWizai+iBKXF5FQGfWhGELZQhBAh/4TBjSBCgSv/gaCdf0JlLaIP
+ xExXWXn7PWfeE4dBhnPHeeDHzH3u+77P3HvPPZOplZIkOQnz8AoumV1bMfgsrIPXL+iz07URAxugHT5B
+ qB3ot7L9iUEF+Awd0ALvINQfyFt5dWJAE3zVNPQR2uAElF/Zb+ixtnSi8QooSM/mO0hrcBwUpuBQS9Ya
+ L5oGQPf/DdSBwr6B9AH2Citae5xouAq6Fbr3N8zTYjgDYVgr+DD5bW5AjCi+BuUhU/AWDsJp8GHvQYtD
+ YZ1uQIwoHgQFlId4rZinML9AtAIPyY8SxTfBhwyZNwle25AzX7fxFHyBp/KiRHEeKoVswWXzn8EqHIYm
+ eVGieBj+QqUQ937wqRCvW/KiRPEo7IKW8YB5L8FL+9p582edU6q/Jy9KFI9Z0/+9is+YkBF5UaJ4wrVV
+ DjlnfhhyV16UKH5gTXomg+aFz2QTsub7HyQ9kRctGrSlSDN2HIb8gIvmhyHj8qJFw1HQlWgl6V24D14K
+ 6bI6H6Irf+ya04imIdeeJMtmyctBGPIcJIWMuqK0onHRjUiSO2bJa4QL9j0MeeQK0orGA6BfriHHzHbi
+ uB6KIOn8QzuVXjR3uzGlQb3QDLfhNfwESTtEwVqqEwNeuFElaaACvbRA9DdQ/ZV4MUQbYagNWIDrcMTK
+ 9i+GzYHeoWnIQp2dqqEymX85CxFGItzW/gAAAABJRU5ErkJggg==
+
+
+
+ 58, 20
+
+
+ Edit
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ vAAADrwBlbxySQAAAOlJREFUWEftzjEOwjAQRNG0wP1PRwEVoqCAEwTv+MvCJCGs7aTyk5Dw2DvZoevm
+ jOP4Cr8qVPmF2WesqEelD7NNUOnDbBNU+jDbBJU+zBahInVwlO/zIk0WYFyIVrNZvHNhVIiESIjaL8CY
+ ECXEQuRfgOwQTzkNgCjDlRCVLWDC31NMImIhmuBaiPwLBFeu7O5oAUex8xKeCFHRAubCdYa7RTwTouIF
+ zJknQvYTT4WoagFz/+NNokIQVS/gQqUQ9QXWFzC8rUZd1ke0L74tRPvhuwnx9vjeBNc+zLZwo9KPghoP
+ qrruwzC8AUrvOnUqDj3VAAAAAElFTkSuQmCC
+
+
+
+ 66, 20
+
+
+ Misc.
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC/xhBQAAAa9JREFUSEvt
+ lt0qRFEYhucGJBoxohzMfThGagxJ7mA0Ra7CPThw4i8XIM5dAyIyHDqaIT+F8Xxrf1ti/eyfMTmYp57s
+ vdb7fYtttfYu9Ph3tNvtEq7gMZ7ivSrXR1jDEY3nh2ZlPMB3DCEZyZa1PBs0mMdHTMsDVrRNOihcxw/p
+ khH569e0XTIoWMI8i8ZIj0Vt64fgGLakykEDq1hU5/ASXTSxpO3dENoycTuy6IBGv2BsEO8k4GBTo3YI
+ TKBv91Y1N4PXeIXTOraALt5wXHJWmFw1MTd9mruNbg03OtYf3TqpS84Kk3IQpKWhtfL/9nFoFrHB5EWU
+ ScwTTmrtshlxc2YWscGkbzf/5BWntG4UfZtLaJpFbDCZ5pQyhwM/h1HO6xAts4gNJtM86iGtOYlug5yb
+ RWwwmWVzJcW7uepR5k+o6TK/YTJ0gMTIGbyH+3odwn+ACAR8R2bMjsYlL79ACP+RKRAKvSSEbY1Lfjca
+ cpLsJSEQrKDvkSd91NJjVtsmg4LufwjEUNj9T58YGsjhv4HPGEIyki1qeX5o9v3zVt7DL6pcd/7ztkdn
+ KBQ+AXKzDriBiJioAAAAAElFTkSuQmCC
+
+
+
+ 63, 20
+
+
+ Help
+
+
+ 229, 22
+
+
+ Open PCK Center
+
+
+
+ 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
+
+
+
+ 229, 22
+
+
+ Join Development Discord
+
+
+ 229, 22
+
+
+ Trello Board
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAADxJREFUWEft
+ 0yEOAEAQwkD+/+k7U4skWdHRJFVE0jlvjEzHboaMpI63zJDp2M2QkdTxlhkyHbsZMpKuSD77Lj3fujth
+ aQAAAABJRU5ErkJggg==
+
+
+
+ 68, 20
+
+
+ More
+
+
+ 0, 10
+
+
+ 1064, 24
+
+
+ 2
+
+
+ menuStrip1
+
+
+ menuStrip
+
+
+ System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 3
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4yMfEgaZUAAADuSURBVFhH7ZbB
+ CsMgEERDbv5A/v83e2jNTmCKGdegJk0heHgUn7vrKBQyxRj/iivJPM9WMTWjc45wJeAwhAghVJEG1nkl
+ XNkziLCvtteXphFCfQ08nOi+4kvTeFL1NfBQ/BLuefjS9NkAADOwPnpNX14UADBEaV4mNnkygN34Y/1v
+ AgeWZXll9So2eTLAEVm9ik2a7g1Qgn9t9bvFV/4gAOZdHgB1RPeUEeAZAeBr0d4R4JIACuqI7ikjwDMD
+ tDACNAfo/Sou0fQ9wGKvoQfO8i61W6SkTXi+XtLLgOwcFSna3It3c+LKO3HlfcRpBa3JBjU5E8DiAAAA
+ AElFTkSuQmCC
+
+
+
+ 180, 22
+
+
+ New
+
160, 22
@@ -22646,23 +22907,6 @@
Mash-Up Pack
-
-
- iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4yMfEgaZUAAADuSURBVFhH7ZbB
- CsMgEERDbv5A/v83e2jNTmCKGdegJk0heHgUn7vrKBQyxRj/iivJPM9WMTWjc45wJeAwhAghVJEG1nkl
- XNkziLCvtteXphFCfQ08nOi+4kvTeFL1NfBQ/BLuefjS9NkAADOwPnpNX14UADBEaV4mNnkygN34Y/1v
- AgeWZXll9So2eTLAEVm9ik2a7g1Qgn9t9bvFV/4gAOZdHgB1RPeUEeAZAeBr0d4R4JIACuqI7ikjwDMD
- tDACNAfo/Sou0fQ9wGKvoQfO8i61W6SkTXi+XtLLgOwcFSna3It3c+LKO3HlfcRpBa3JBjU5E8DiAAAA
- AElFTkSuQmCC
-
-
-
- 130, 22
-
-
- New
-
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
@@ -22672,7 +22916,7 @@
- 130, 22
+ 180, 22
Open
@@ -22686,11 +22930,26 @@
- 130, 22
+ 180, 22
Extract
+
+ 180, 22
+
+
+ Pack Settings
+
+
+ False
+
+
+ 180, 22
+
+
+ Full box support
+
False
@@ -22705,7 +22964,7 @@
- 130, 22
+ 180, 22
Save
@@ -22724,13 +22983,13 @@
- 130, 22
+ 180, 22
Save As...
- 130, 22
+ 180, 22
Close
@@ -22738,21 +22997,6 @@
False
-
-
- iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAN9JREFUWEft
- lz0KwkAQhRe01Nt4hFzBU9gLYuFxQjyHlfexUIv1TfYtiGSzP5NGmA8ehGTm8ZUZZ6Tw3q+QHbIvTMdV
- PSjbInekliMrdKDoHPqa0EugpA9dI11BbsgbiegkUDCEHu/5ahaMXZEH8pQdcuHnerDcIiAsI4HFVgFB
- L4EljYCgk8CCVkAQiVd4HDlwPA+GlxAQRCIycDyPDIedMoE5WCOYgAmYgAmYgAn8l8D3T+nUDVCTSM/6
- PBjW/JanOLE+D4ZbD5MU0rVhfRlYiKfZ1B1QE+lYs9b4wbkPJT1laD5Q34oAAAAASUVORK5CYII=
-
-
-
- 55, 20
-
-
- File
-
False
@@ -22797,27 +23041,6 @@
Convert to Bedrock
-
-
- iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABGdBTUEAALGPC/xhBQAAAjRJREFUSEut
- lc1LVFEYxgdDdBFG1ErSTGhhH1iQTWizai+iBKXF5FQGfWhGELZQhBAh/4TBjSBCgSv/gaCdf0JlLaIP
- xExXWXn7PWfeE4dBhnPHeeDHzH3u+77P3HvPPZOplZIkOQnz8AoumV1bMfgsrIPXL+iz07URAxugHT5B
- qB3ot7L9iUEF+Awd0ALvINQfyFt5dWJAE3zVNPQR2uAElF/Zb+ixtnSi8QooSM/mO0hrcBwUpuBQS9Ya
- L5oGQPf/DdSBwr6B9AH2Citae5xouAq6Fbr3N8zTYjgDYVgr+DD5bW5AjCi+BuUhU/AWDsJp8GHvQYtD
- YZ1uQIwoHgQFlId4rZinML9AtAIPyY8SxTfBhwyZNwle25AzX7fxFHyBp/KiRHEeKoVswWXzn8EqHIYm
- eVGieBj+QqUQ937wqRCvW/KiRPEo7IKW8YB5L8FL+9p582edU6q/Jy9KFI9Z0/+9is+YkBF5UaJ4wrVV
- DjlnfhhyV16UKH5gTXomg+aFz2QTsub7HyQ9kRctGrSlSDN2HIb8gIvmhyHj8qJFw1HQlWgl6V24D14K
- 6bI6H6Irf+ya04imIdeeJMtmyctBGPIcJIWMuqK0onHRjUiSO2bJa4QL9j0MeeQK0orGA6BfriHHzHbi
- uB6KIOn8QzuVXjR3uzGlQb3QDLfhNfwESTtEwVqqEwNeuFElaaACvbRA9DdQ/ZV4MUQbYagNWIDrcMTK
- 9i+GzYHeoWnIQp2dqqEymX85CxFGItzW/gAAAABJRU5ErkJggg==
-
-
-
- 58, 20
-
-
- Edit
-
False
@@ -22827,6 +23050,18 @@
Add Custom Pack Icon
+
+ 206, 22
+
+
+ Open Pck Manager
+
+
+ 206, 22
+
+
+ Convert Music Files
+
155, 22
@@ -22839,28 +23074,6 @@
BinkA -> WAV
-
- 206, 22
-
-
- Convert Music Files
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- vAAADrwBlbxySQAAAOlJREFUWEftzjEOwjAQRNG0wP1PRwEVoqCAEwTv+MvCJCGs7aTyk5Dw2DvZoevm
- jOP4Cr8qVPmF2WesqEelD7NNUOnDbBNU+jDbBJU+zBahInVwlO/zIk0WYFyIVrNZvHNhVIiESIjaL8CY
- ECXEQuRfgOwQTzkNgCjDlRCVLWDC31NMImIhmuBaiPwLBFeu7O5oAUex8xKeCFHRAubCdYa7RTwTouIF
- zJknQvYTT4WoagFz/+NNokIQVS/gQqUQ9QXWFzC8rUZd1ke0L74tRPvhuwnx9vjeBNc+zLZwo9KPghoP
- qrruwzC8AUrvOnUqDj3VAAAAAElFTkSuQmCC
-
-
-
- 66, 20
-
-
- Misc.
-
iVBORw0KGgoAAAANSUhEUgAAAtAAAALQCAYAAAC5V0ecAAAABGdBTUEAALGPC/xhBQAAazFJREFUeF7t
@@ -23401,6 +23614,20 @@
Binka Conversion
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAKdJREFUOE+1
+ jzEKwzAQBNUEXKQIBOwifcgTUvkDbt2p9qP0Ev1E31FYkVXOx2FLRRYWi7NnTnZ/z/MxZPY7aguhbZlq
+ myQafL+ubRINshCwnO0kFqi3HkpwWOf7DkC1RBfvx9slV4ElscqbxBiz9/4nwOBIQjCEUL7FswhwDYAp
+ JVMiN0oYs/ILiCXRIGHOwVQBoiXsKSgjJdzaBMpQ0g3KEOoG++PcBx9PFJGNjU4vAAAAAElFTkSuQmCC
+
+
+
+ 198, 22
+
+
+ Tutorials
+
iVBORw0KGgoAAAANSUhEUgAACOAAAAaoCAYAAAAgNTafAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
@@ -44086,20 +44313,6 @@
How PCKs work
-
-
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAKdJREFUOE+1
- jzEKwzAQBNUEXKQIBOwifcgTUvkDbt2p9qP0Ev1E31FYkVXOx2FLRRYWi7NnTnZ/z/MxZPY7aguhbZlq
- myQafL+ubRINshCwnO0kFqi3HkpwWOf7DkC1RBfvx9slV4ElscqbxBiz9/4nwOBIQjCEUL7FswhwDYAp
- JVMiN0oYs/ILiCXRIGHOwVQBoiXsKSgjJdzaBMpQ0g3KEOoG++PcBx9PFJGNjU4vAAAAAElFTkSuQmCC
-
-
-
- 198, 22
-
-
- Tutorials
-
iVBORw0KGgoAAAANSUhEUgAABkAAAAZACAYAAAAhDI6nAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
@@ -46103,6 +46316,12 @@
FAQ
+
+ 198, 22
+
+
+ Buy a coffee
+
278, 22
@@ -46121,12 +46340,6 @@
For MattNL (Other Developer)
-
- 198, 22
-
-
- Buy a coffee
-
198, 22
@@ -47974,927 +48187,18 @@
Administrative Tools
-
-
- iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC/xhBQAAAa9JREFUSEvt
- lt0qRFEYhucGJBoxohzMfThGagxJ7mA0Ra7CPThw4i8XIM5dAyIyHDqaIT+F8Xxrf1ti/eyfMTmYp57s
- vdb7fYtttfYu9Ph3tNvtEq7gMZ7ivSrXR1jDEY3nh2ZlPMB3DCEZyZa1PBs0mMdHTMsDVrRNOihcxw/p
- khH569e0XTIoWMI8i8ZIj0Vt64fgGLakykEDq1hU5/ASXTSxpO3dENoycTuy6IBGv2BsEO8k4GBTo3YI
- TKBv91Y1N4PXeIXTOraALt5wXHJWmFw1MTd9mruNbg03OtYf3TqpS84Kk3IQpKWhtfL/9nFoFrHB5EWU
- ScwTTmrtshlxc2YWscGkbzf/5BWntG4UfZtLaJpFbDCZ5pQyhwM/h1HO6xAts4gNJtM86iGtOYlug5yb
- RWwwmWVzJcW7uepR5k+o6TK/YTJ0gMTIGbyH+3odwn+ACAR8R2bMjsYlL79ACP+RKRAKvSSEbY1Lfjca
- cpLsJSEQrKDvkSd91NJjVtsmg4LufwjEUNj9T58YGsjhv4HPGEIyki1qeX5o9v3zVt7DL6pcd/7ztkdn
- KBQ+AXKzDriBiJioAAAAAElFTkSuQmCC
-
-
-
- 63, 20
-
-
- Help
-
-
-
- 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
-
-
-
- 229, 22
-
-
- Wii U PCK Installer
-
-
- False
-
-
-
- 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
-
-
-
- 229, 22
-
-
- PS3 PCK Installer
-
-
- False
-
-
-
- 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
-
-
-
- 229, 22
-
-
- PSVita PCK Installer
-
-
-
- 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
-
-
-
- 229, 22
-
-
- Join Development Discord
-
-
- 229, 22
-
-
- Trello Board
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAADxJREFUWEft
- 0yEOAEAQwkD+/+k7U4skWdHRJFVE0jlvjEzHboaMpI63zJDp2M2QkdTxlhkyHbsZMpKuSD77Lj3fujth
- aQAAAABJRU5ErkJggg==
-
-
-
- 68, 20
-
-
- More
-
-
- 0, 10
-
-
- 1064, 24
-
-
- 2
-
-
- menuStrip1
-
-
- menuStrip
-
-
- System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- $this
-
-
- 3
-
298, 17
+
+ 182, 92
+
+
+ contextMenuMetaTree
+
+
+ System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
@@ -48944,14 +48248,116 @@
Edit All Entries
-
- 182, 92
+
+ openTab
-
- contextMenuMetaTree
+
+ MetroFramework.Controls.MetroTabPage, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
-
- System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ tabControl
+
+
+ 0
+
+
+ editorTab
+
+
+ MetroFramework.Controls.MetroTabPage, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
+
+
+ tabControl
+
+
+ 1
+
+
+ Fill
+
+
+ 0, 10
+
+
+ 0, 0, 0, 0
+
+
+ 1064, 650
+
+
+ 0
+
+
+ tabControl
+
+
+ MetroFramework.Controls.MetroTabControl, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
+
+
+ $this
+
+
+ 4
+
+
+ labelVersion
+
+
+ MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
+
+
+ openTab
+
+
+ 2
+
+
+ pckOpen
+
+
+ System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ openTab
+
+
+ 3
+
+
+ panel1
+
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ openTab
+
+
+ 4
+
+
+ 4, 38
+
+
+ 18, 30, 20, 5
+
+
+ 1056, 608
+
+
+ 1
+
+
+ openTab
+
+
+ MetroFramework.Controls.MetroTabPage, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
+
+
+ tabControl
+
+
+ 0
Bottom, Left
@@ -49219,6 +48625,78 @@
3
+
+ crEaTiiOn_Ultimate_GradientButton2
+
+
+ CBH.Ultimate.Controls.CrEaTiiOn_Ultimate_GradientButton, CBH-WinForm-Theme-Library, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ panel1
+
+
+ 0
+
+
+ crEaTiiOn_Ultimate_GradientButton1
+
+
+ CBH.Ultimate.Controls.CrEaTiiOn_Ultimate_GradientButton, CBH-WinForm-Theme-Library, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ panel1
+
+
+ 1
+
+
+ pictureBox1
+
+
+ System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panel1
+
+
+ 2
+
+
+ crEaTiiOn_Ultimate_GradientButton3
+
+
+ CBH.Ultimate.Controls.CrEaTiiOn_Ultimate_GradientButton, CBH-WinForm-Theme-Library, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ panel1
+
+
+ 3
+
+
+ Right
+
+
+ 590, 30
+
+
+ 446, 573
+
+
+ 25
+
+
+ panel1
+
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ openTab
+
+
+ 4
+
Left
@@ -71572,57 +71050,156 @@
3
-
- Right
-
-
- 590, 30
-
-
- 446, 573
-
-
- 25
-
-
- panel1
-
-
- System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- openTab
-
-
- 4
-
-
- 4, 38
-
-
- 18, 30, 20, 5
-
-
- 1056, 608
-
-
- 1
-
-
- openTab
-
-
- MetroFramework.Controls.MetroTabPage, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
-
-
- tabControl
-
-
- 0
-
+
+ True
+
None
+
+ panel2
+
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ editorTab
+
+
+ 2
+
+
+ PropertiesTabControl
+
+
+ MetroFramework.Controls.MetroTabControl, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
+
+
+ editorTab
+
+
+ 3
+
+
+ label11
+
+
+ MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
+
+
+ editorTab
+
+
+ 4
+
+
+ pckFileLabel
+
+
+ MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
+
+
+ editorTab
+
+
+ 5
+
+
+ treeViewMain
+
+
+ System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ editorTab
+
+
+ 6
+
+
+ 4, 38
+
+
+ 5, 58, 5, 7
+
+
+ 1056, 608
+
+
+ 0
+
+
+ editorTab
+
+
+ MetroFramework.Controls.MetroTabPage, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
+
+
+ tabControl
+
+
+ 1
+
+
+ pictureBoxImagePreview
+
+
+ PckStudio.ToolboxItems.PictureBoxWithInterpolationMode, PCK-Studio, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ panel2
+
+
+ 0
+
+
+ fileEntryCountLabel
+
+
+ MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
+
+
+ panel2
+
+
+ 1
+
+
+ labelImageSize
+
+
+ MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
+
+
+ panel2
+
+
+ 2
+
+
+ Fill
+
+
+ 335, 58
+
+
+ 716, 271
+
+
+ 20
+
+
+ panel2
+
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ editorTab
+
+
+ 2
+
Top, Right
@@ -71716,30 +71293,141 @@
2
-
- Fill
+
+ MetaTab
-
- 335, 58
+
+ MetroFramework.Controls.MetroTabPage, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
-
- 716, 271
+
+ PropertiesTabControl
-
- 20
+
+ 0
-
- panel2
+
+ Bottom
-
- System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 335, 329
-
+
+ 716, 272
+
+
+ 11
+
+
+ PropertiesTabControl
+
+
+ MetroFramework.Controls.MetroTabControl, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
+
+
editorTab
-
+
+ 3
+
+
+ metroLabel2
+
+
+ MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
+
+
+ MetaTab
+
+
2
+
+ treeMeta
+
+
+ System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ MetaTab
+
+
+ 3
+
+
+ entryTypeTextBox
+
+
+ MetroFramework.Controls.MetroTextBox, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
+
+
+ MetaTab
+
+
+ 4
+
+
+ entryDataTextBox
+
+
+ MetroFramework.Controls.MetroTextBox, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
+
+
+ MetaTab
+
+
+ 5
+
+
+ buttonEdit
+
+
+ MetroFramework.Controls.MetroButton, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
+
+
+ MetaTab
+
+
+ 6
+
+
+ metroLabel1
+
+
+ MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
+
+
+ MetaTab
+
+
+ 7
+
+
+ 4, 38
+
+
+ 3, 3, 3, 3
+
+
+ 708, 230
+
+
+ 0
+
+
+ Properties
+
+
+ MetaTab
+
+
+ MetroFramework.Controls.MetroTabPage, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
+
+
+ PropertiesTabControl
+
+
+ 0
+
Top, Right
@@ -71941,57 +71629,6 @@
7
-
- 4, 38
-
-
- 3, 3, 3, 3
-
-
- 708, 230
-
-
- 0
-
-
- Properties
-
-
- MetaTab
-
-
- MetroFramework.Controls.MetroTabPage, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
-
-
- PropertiesTabControl
-
-
- 0
-
-
- Bottom
-
-
- 335, 329
-
-
- 716, 272
-
-
- 11
-
-
- PropertiesTabControl
-
-
- MetroFramework.Controls.MetroTabControl, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
-
-
- editorTab
-
-
- 3
-
True
@@ -72082,57 +71719,6 @@
6
-
- 4, 38
-
-
- 5, 58, 5, 7
-
-
- 1056, 608
-
-
- 0
-
-
- editorTab
-
-
- MetroFramework.Controls.MetroTabPage, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
-
-
- tabControl
-
-
- 1
-
-
- Fill
-
-
- 0, 10
-
-
- 0, 0, 0, 0
-
-
- 1064, 650
-
-
- 0
-
-
- tabControl
-
-
- MetroFramework.Controls.MetroTabControl, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a
-
-
- $this
-
-
- 4
-
Top, Right
@@ -74951,6 +74537,18 @@
System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ packSettingsToolStripMenuItem
+
+
+ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ fullBoxSupportToolStripMenuItem
+
+
+ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
saveToolStripMenuItem1
@@ -74999,6 +74597,12 @@
System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ openPckManagerToolStripMenuItem
+
+
+ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
convertMusicFilesToolStripMenuItem
@@ -75137,22 +74741,10 @@
System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- wiiUPCKInstallerToolStripMenuItem
+
+ openPckCenterToolStripMenuItem
-
- System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- PS3PCKInstallerToolStripMenuItem
-
-
- System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- VitaPCKInstallerToolStripMenuItem
-
-
+
System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
diff --git a/PCK-Studio/PckStudio.csproj b/PCK-Studio/PckStudio.csproj
index bfa67cc3..fb729e9b 100644
--- a/PCK-Studio/PckStudio.csproj
+++ b/PCK-Studio/PckStudio.csproj
@@ -167,6 +167,12 @@
+
+ Component
+
+
+
+
@@ -190,10 +196,12 @@
+
Form
+
@@ -227,11 +235,17 @@
-
- Form
+
+ UserControl
-
- creditsEditor.cs
+
+ CemuPanel.cs
+
+
+ UserControl
+
+
+ WiiUPanel.cs
@@ -289,7 +303,9 @@
TextPrompt.cs
-
+
+ Component
+
Form
@@ -368,13 +384,18 @@
InProgressPrompt.cs
-
Form
+
+ Form
+
+
+ PckManager.cs
+
BoxEditor.cs
@@ -426,25 +447,6 @@
AudioEditor.cs
-
- Form
-
-
- InstallPS3.cs
-
-
- Form
-
-
- InstallVita.cs
-
-
- Form
-
-
- InstallWiiU.cs
-
-
Form
@@ -475,9 +477,6 @@
TextureConverterUtility.cs
-
- Component
-
@@ -485,6 +484,12 @@
creditsEditor.cs
+
+ CemuPanel.cs
+
+
+ WiiUPanel.cs
+
AddEntry.cs
@@ -574,6 +579,9 @@
InProgressPrompt.cs
+
+ PckManager.cs
+
BoxEditor.cs
Designer
@@ -608,18 +616,6 @@
AudioEditor.cs
Designer
-
- InstallPS3.cs
-
-
- InstallVita.cs
-
-
- InstallWiiU.cs
-
-
- InstallWiiU.cs
-
PCK Manager.cs
@@ -640,6 +636,7 @@
pckCenterOpen.cs
+ Designer
TextureConverterUtility.cs
@@ -676,7 +673,6 @@
-
@@ -692,28 +688,18 @@
-
-
-
-
-
+
-
-
-
-
-
-
+
+
-
-
-
+
-
-
-
+
+
+
@@ -737,6 +723,14 @@
+
+
+
+
+
+
+
+
@@ -745,7 +739,6 @@
-
diff --git a/PCK-Studio/Program.cs b/PCK-Studio/Program.cs
index 2e660311..85a25947 100644
--- a/PCK-Studio/Program.cs
+++ b/PCK-Studio/Program.cs
@@ -14,6 +14,8 @@ namespace PckStudio
public static readonly string AppData = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "PCK-Studio");
public static readonly string AppDataCache = Path.Combine(AppData, "cache");
+ public static MainForm MainInstance { get; private set; }
+
///
/// The main entry point for the application.
///
@@ -22,11 +24,11 @@ namespace PckStudio
{
System.Globalization.CultureInfo.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
- MainForm mainForm = new MainForm();
- DarkNet.Instance.SetWindowThemeForms(mainForm, Theme.Auto);
+ MainInstance = new MainForm();
+ DarkNet.Instance.SetWindowThemeForms(MainInstance, Theme.Auto);
if (args.Length > 0 && File.Exists(args[0]) && args[0].EndsWith(".pck"))
- mainForm.LoadPck(args[0]);
- Application.Run(mainForm);
+ MainInstance.LoadPckFromFile(args[0]);
+ Application.Run(MainInstance);
}
}
}
diff --git a/PCK-Studio/Properties/Resources.Designer.cs b/PCK-Studio/Properties/Resources.Designer.cs
index 9d736cac..a3bea951 100644
--- a/PCK-Studio/Properties/Resources.Designer.cs
+++ b/PCK-Studio/Properties/Resources.Designer.cs
@@ -80,16 +80,6 @@ namespace PckStudio.Properties {
}
}
- ///
- /// Looks up a localized resource of type System.Byte[].
- ///
- public static byte[] apps {
- get {
- object obj = ResourceManager.GetObject("apps", resourceCulture);
- return ((byte[])(obj));
- }
- }
-
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
@@ -110,16 +100,6 @@ namespace PckStudio.Properties {
}
}
- ///
- /// Looks up a localized resource of type System.Drawing.Bitmap.
- ///
- public static System.Drawing.Bitmap bg1 {
- get {
- object obj = ResourceManager.GetObject("bg1", resourceCulture);
- return ((System.Drawing.Bitmap)(obj));
- }
- }
-
///
/// Looks up a localized resource of type System.Byte[].
///
@@ -265,29 +245,9 @@ namespace PckStudio.Properties {
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
- public static System.Drawing.Bitmap Del {
+ public static System.Drawing.Bitmap Discord {
get {
- object obj = ResourceManager.GetObject("Del", resourceCulture);
- return ((System.Drawing.Bitmap)(obj));
- }
- }
-
- ///
- /// Looks up a localized resource of type System.Drawing.Bitmap.
- ///
- public static System.Drawing.Bitmap discord {
- get {
- object obj = ResourceManager.GetObject("discord", resourceCulture);
- return ((System.Drawing.Bitmap)(obj));
- }
- }
-
- ///
- /// Looks up a localized resource of type System.Drawing.Bitmap.
- ///
- public static System.Drawing.Bitmap edit_26px {
- get {
- object obj = ResourceManager.GetObject("edit_26px", resourceCulture);
+ object obj = ResourceManager.GetObject("Discord", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
@@ -347,9 +307,9 @@ namespace PckStudio.Properties {
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
- public static System.Drawing.Bitmap ExportFile {
+ public static System.Drawing.Bitmap file_delete {
get {
- object obj = ResourceManager.GetObject("ExportFile", resourceCulture);
+ object obj = ResourceManager.GetObject("file_delete", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
@@ -357,9 +317,39 @@ namespace PckStudio.Properties {
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
- public static System.Drawing.Bitmap external_content_duckduckgo {
+ public static System.Drawing.Bitmap file_empty {
get {
- object obj = ResourceManager.GetObject("external-content.duckduckgo", resourceCulture);
+ object obj = ResourceManager.GetObject("file_empty", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ public static System.Drawing.Bitmap file_export {
+ get {
+ object obj = ResourceManager.GetObject("file_export", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ public static System.Drawing.Bitmap file_import {
+ get {
+ object obj = ResourceManager.GetObject("file_import", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ public static System.Drawing.Bitmap file_new {
+ get {
+ object obj = ResourceManager.GetObject("file_new", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
@@ -404,6 +394,16 @@ namespace PckStudio.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ public static System.Drawing.Bitmap HamburgerMenuIcon {
+ get {
+ object obj = ResourceManager.GetObject("HamburgerMenuIcon", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
@@ -474,16 +474,6 @@ namespace PckStudio.Properties {
}
}
- ///
- /// Looks up a localized resource of type System.Drawing.Bitmap.
- ///
- public static System.Drawing.Bitmap MROE {
- get {
- object obj = ResourceManager.GetObject("MROE", resourceCulture);
- return ((System.Drawing.Bitmap)(obj));
- }
- }
-
///
/// Looks up a localized resource of type System.Byte[].
///
@@ -577,9 +567,9 @@ namespace PckStudio.Properties {
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
- public static System.Drawing.Bitmap power3 {
+ public static System.Drawing.Bitmap PS3 {
get {
- object obj = ResourceManager.GetObject("power3", resourceCulture);
+ object obj = ResourceManager.GetObject("PS3", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
@@ -587,9 +577,9 @@ namespace PckStudio.Properties {
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
- public static System.Drawing.Bitmap ps3 {
+ public static System.Drawing.Bitmap ranch {
get {
- object obj = ResourceManager.GetObject("ps3", resourceCulture);
+ object obj = ResourceManager.GetObject("ranch", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
@@ -871,9 +861,9 @@ namespace PckStudio.Properties {
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
- public static System.Drawing.Bitmap turn_off__1_1 {
+ public static System.Drawing.Bitmap WiiU {
get {
- object obj = ResourceManager.GetObject("turn-off (1)1", resourceCulture);
+ object obj = ResourceManager.GetObject("WiiU", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
@@ -881,9 +871,9 @@ namespace PckStudio.Properties {
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
- public static System.Drawing.Bitmap wii_u_games_tool {
+ public static System.Drawing.Bitmap Xbox {
get {
- object obj = ResourceManager.GetObject("wii-u-games-tool", resourceCulture);
+ object obj = ResourceManager.GetObject("Xbox", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
@@ -891,29 +881,9 @@ namespace PckStudio.Properties {
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
- public static System.Drawing.Bitmap wiiu {
+ public static System.Drawing.Bitmap Youtube {
get {
- object obj = ResourceManager.GetObject("wiiu", resourceCulture);
- return ((System.Drawing.Bitmap)(obj));
- }
- }
-
- ///
- /// Looks up a localized resource of type System.Drawing.Bitmap.
- ///
- public static System.Drawing.Bitmap xbox {
- get {
- object obj = ResourceManager.GetObject("xbox", resourceCulture);
- return ((System.Drawing.Bitmap)(obj));
- }
- }
-
- ///
- /// Looks up a localized resource of type System.Drawing.Bitmap.
- ///
- public static System.Drawing.Bitmap youtube_PNG15 {
- get {
- object obj = ResourceManager.GetObject("youtube_PNG15", resourceCulture);
+ object obj = ResourceManager.GetObject("Youtube", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
diff --git a/PCK-Studio/Properties/Resources.resx b/PCK-Studio/Properties/Resources.resx
index a513cc9d..9ca88983 100644
--- a/PCK-Studio/Properties/Resources.resx
+++ b/PCK-Studio/Properties/Resources.resx
@@ -130,12 +130,6 @@
..\Resources\NoImageFound.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\ExportFile.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
-
- ..\Resources\xbox.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
..\Resources\fileTemplates\tu51colours.col;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
@@ -160,15 +154,9 @@
..\Resources\iconImageList\BEHAVIOURS ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\bg1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
..\Resources\iconImageList\ZUnknown.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\wiiu.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
..\Resources\iconImageList\ARROW.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
@@ -187,24 +175,12 @@
..\Resources\tileData.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252
-
- ..\Resources\Replace.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
..\Resources\pckClosed.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\discord.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
-
- ..\Resources\power3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
..\Resources\AddTexture.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\music.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
..\Resources\anim_editor\classic_template.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
@@ -220,9 +196,6 @@
..\Resources\iconImageList\IMAGE ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\sdDownload.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
..\Resources\iconImageList\BINKA ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
@@ -232,11 +205,8 @@
..\Resources\iconImageList\GRF ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\MROE.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
-
- ..\Resources\wii-u-games-tool.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\HamburgerMenuIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
..\Resources\pckDrop.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
@@ -244,18 +214,9 @@
..\Resources\Splash.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\apps.zip;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
..\Resources\iconImageList\CAPE ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\youtube_PNG15.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
-
- ..\Resources\ps3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
..\Resources\fileTemplates\tu19colours.col;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
@@ -275,7 +236,7 @@
..\Resources\fileTemplates\tu53colours.col;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
- ..\Resources\clock.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+ ..\Resources\icons\clock.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
..\Resources\items.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
@@ -301,18 +262,12 @@
..\Resources\fileTemplates\tu12colours.col;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- ..\Resources\turn-off (1)1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
..\Resources\fileTemplates\tu14colours.col;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
..\Resources\fileTemplates\tu69colours.col;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- ..\Resources\external-content.duckduckgo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
..\Resources\anim_editor\slim_template.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
@@ -322,9 +277,6 @@
..\Resources\pckOpen.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\Del.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
..\Resources\TexturePackIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
@@ -379,4 +331,43 @@
..\Resources\entityData.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252
+
+ ..\Resources\icons\file_delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\icons\file_empty.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\icons\file_new.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\external\Discord.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\external\PS3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\external\WiiU.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\external\Xbox.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\external\Youtube.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\icons\music.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\icons\Replace.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\icons\file_export.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\icons\file_import.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\icons\ranch.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
\ No newline at end of file
diff --git a/PCK-Studio/Properties/app.manifest b/PCK-Studio/Properties/app.manifest
index 66981ed7..c02c2d89 100644
--- a/PCK-Studio/Properties/app.manifest
+++ b/PCK-Studio/Properties/app.manifest
@@ -38,7 +38,7 @@
-
+