[
  {
    "path": "MD5HashChanger/FolderPicker.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Linq;\nusing System.Runtime.InteropServices;\nusing System.Runtime.InteropServices.ComTypes;\n\nnamespace MD5_Hash_Changer\n{\n    public class FolderPicker\n    {\n        private readonly List<string> _resultPaths = new List<string>();\n        private readonly List<string> _resultNames = new List<string>();\n\n        public IReadOnlyList<string> ResultPaths => _resultPaths;\n        public IReadOnlyList<string> ResultNames => _resultNames;\n        public string ResultPath => ResultPaths.FirstOrDefault();\n        public string ResultName => ResultNames.FirstOrDefault();\n        public virtual string InputPath { get; set; }\n        public virtual bool ForceFileSystem { get; set; }\n        public virtual bool Multiselect { get; set; }\n        public virtual string Title { get; set; }\n        public virtual string OkButtonLabel { get; set; }\n        public virtual string FileNameLabel { get; set; }\n\n        protected virtual int SetOptions(int options)\n        {\n            if (ForceFileSystem)\n            {\n                options |= (int)FOS.FOS_FORCEFILESYSTEM;\n            }\n\n            if (Multiselect)\n            {\n                options |= (int)FOS.FOS_ALLOWMULTISELECT;\n            }\n            return options;\n        }\n\n        // for all .NET\n        public virtual bool? ShowDialog(IntPtr owner, bool throwOnError = false)\n        {\n            var dialog = (IFileOpenDialog)new FileOpenDialog();\n            if (!string.IsNullOrEmpty(InputPath))\n            {\n                if (CheckHr(SHCreateItemFromParsingName(InputPath, null, typeof(IShellItem).GUID, out var item), throwOnError) != 0)\n                    return null;\n\n                dialog.SetFolder(item);\n            }\n\n            var options = FOS.FOS_PICKFOLDERS;\n            options = (FOS)SetOptions((int)options);\n            dialog.SetOptions(options);\n\n            if (Title != null)\n            {\n                dialog.SetTitle(Title);\n            }\n\n            if (OkButtonLabel != null)\n            {\n                dialog.SetOkButtonLabel(OkButtonLabel);\n            }\n\n            if (FileNameLabel != null)\n            {\n                dialog.SetFileName(FileNameLabel);\n            }\n\n            if (owner == IntPtr.Zero)\n            {\n                owner = Process.GetCurrentProcess().MainWindowHandle;\n                if (owner == IntPtr.Zero)\n                {\n                    owner = GetDesktopWindow();\n                }\n            }\n\n            var hr = dialog.Show(owner);\n            if (hr == ERROR_CANCELLED)\n                return null;\n\n            if (CheckHr(hr, throwOnError) != 0)\n                return null;\n\n            if (CheckHr(dialog.GetResults(out var items), throwOnError) != 0)\n                return null;\n\n            items.GetCount(out var count);\n            for (var i = 0; i < count; i++)\n            {\n                items.GetItemAt(i, out var item);\n                CheckHr(item.GetDisplayName(SIGDN.SIGDN_DESKTOPABSOLUTEPARSING, out var path), throwOnError);\n                CheckHr(item.GetDisplayName(SIGDN.SIGDN_DESKTOPABSOLUTEEDITING, out var name), throwOnError);\n                if (path != null || name != null)\n                {\n                    _resultPaths.Add(path);\n                    _resultNames.Add(name);\n                }\n            }\n            return true;\n        }\n\n        private static int CheckHr(int hr, bool throwOnError)\n        {\n            if (hr != 0 && throwOnError) Marshal.ThrowExceptionForHR(hr);\n            return hr;\n        }\n\n        [DllImport(\"shell32\")]\n        private static extern int SHCreateItemFromParsingName([MarshalAs(UnmanagedType.LPWStr)] string pszPath, IBindCtx pbc, [MarshalAs(UnmanagedType.LPStruct)] Guid riid, out IShellItem ppv);\n\n        [DllImport(\"user32\")]\n        private static extern IntPtr GetDesktopWindow();\n\n#pragma warning disable IDE1006 // Naming Styles\n        private const int ERROR_CANCELLED = unchecked((int)0x800704C7);\n#pragma warning restore IDE1006 // Naming Styles\n\n        [ComImport, Guid(\"DC1C5A9C-E88A-4dde-A5A1-60F82A20AEF7\")] // CLSID_FileOpenDialog\n        private class FileOpenDialog { }\n\n        [ComImport, Guid(\"d57c7288-d4ad-4768-be02-9d969532d960\"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]\n        private interface IFileOpenDialog\n        {\n            [PreserveSig] int Show(IntPtr parent); // IModalWindow\n            [PreserveSig] int SetFileTypes();  // not fully defined\n            [PreserveSig] int SetFileTypeIndex(int iFileType);\n            [PreserveSig] int GetFileTypeIndex(out int piFileType);\n            [PreserveSig] int Advise(); // not fully defined\n            [PreserveSig] int Unadvise();\n            [PreserveSig] int SetOptions(FOS fos);\n            [PreserveSig] int GetOptions(out FOS pfos);\n            [PreserveSig] int SetDefaultFolder(IShellItem psi);\n            [PreserveSig] int SetFolder(IShellItem psi);\n            [PreserveSig] int GetFolder(out IShellItem ppsi);\n            [PreserveSig] int GetCurrentSelection(out IShellItem ppsi);\n            [PreserveSig] int SetFileName([MarshalAs(UnmanagedType.LPWStr)] string pszName);\n            [PreserveSig] int GetFileName([MarshalAs(UnmanagedType.LPWStr)] out string pszName);\n            [PreserveSig] int SetTitle([MarshalAs(UnmanagedType.LPWStr)] string pszTitle);\n            [PreserveSig] int SetOkButtonLabel([MarshalAs(UnmanagedType.LPWStr)] string pszText);\n            [PreserveSig] int SetFileNameLabel([MarshalAs(UnmanagedType.LPWStr)] string pszLabel);\n            [PreserveSig] int GetResult(out IShellItem ppsi);\n            [PreserveSig] int AddPlace(IShellItem psi, int alignment);\n            [PreserveSig] int SetDefaultExtension([MarshalAs(UnmanagedType.LPWStr)] string pszDefaultExtension);\n            [PreserveSig] int Close(int hr);\n            [PreserveSig] int SetClientGuid();  // not fully defined\n            [PreserveSig] int ClearClientData();\n            [PreserveSig] int SetFilter([MarshalAs(UnmanagedType.IUnknown)] object pFilter);\n            [PreserveSig] int GetResults(out IShellItemArray ppenum);\n            [PreserveSig] int GetSelectedItems([MarshalAs(UnmanagedType.IUnknown)] out object ppsai);\n        }\n\n        [ComImport, Guid(\"43826D1E-E718-42EE-BC55-A1E261C37BFE\"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]\n        private interface IShellItem\n        {\n            [PreserveSig] int BindToHandler(); // not fully defined\n            [PreserveSig] int GetParent(); // not fully defined\n            [PreserveSig] int GetDisplayName(SIGDN sigdnName, [MarshalAs(UnmanagedType.LPWStr)] out string ppszName);\n            [PreserveSig] int GetAttributes();  // not fully defined\n            [PreserveSig] int Compare();  // not fully defined\n        }\n\n        [ComImport, Guid(\"b63ea76d-1f85-456f-a19c-48159efa858b\"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]\n        private interface IShellItemArray\n        {\n            [PreserveSig] int BindToHandler();  // not fully defined\n            [PreserveSig] int GetPropertyStore();  // not fully defined\n            [PreserveSig] int GetPropertyDescriptionList();  // not fully defined\n            [PreserveSig] int GetAttributes();  // not fully defined\n            [PreserveSig] int GetCount(out int pdwNumItems);\n            [PreserveSig] int GetItemAt(int dwIndex, out IShellItem ppsi);\n            [PreserveSig] int EnumItems();  // not fully defined\n        }\n\n#pragma warning disable CA1712 // Do not prefix enum values with type name\n        private enum SIGDN : uint\n        {\n            SIGDN_DESKTOPABSOLUTEEDITING = 0x8004c000,\n            SIGDN_DESKTOPABSOLUTEPARSING = 0x80028000,\n            SIGDN_FILESYSPATH = 0x80058000,\n            SIGDN_NORMALDISPLAY = 0,\n            SIGDN_PARENTRELATIVE = 0x80080001,\n            SIGDN_PARENTRELATIVEEDITING = 0x80031001,\n            SIGDN_PARENTRELATIVEFORADDRESSBAR = 0x8007c001,\n            SIGDN_PARENTRELATIVEPARSING = 0x80018001,\n            SIGDN_URL = 0x80068000\n        }\n\n        [Flags]\n        private enum FOS\n        {\n            FOS_OVERWRITEPROMPT = 0x2,\n            FOS_STRICTFILETYPES = 0x4,\n            FOS_NOCHANGEDIR = 0x8,\n            FOS_PICKFOLDERS = 0x20,\n            FOS_FORCEFILESYSTEM = 0x40,\n            FOS_ALLNONSTORAGEITEMS = 0x80,\n            FOS_NOVALIDATE = 0x100,\n            FOS_ALLOWMULTISELECT = 0x200,\n            FOS_PATHMUSTEXIST = 0x800,\n            FOS_FILEMUSTEXIST = 0x1000,\n            FOS_CREATEPROMPT = 0x2000,\n            FOS_SHAREAWARE = 0x4000,\n            FOS_NOREADONLYRETURN = 0x8000,\n            FOS_NOTESTFILECREATE = 0x10000,\n            FOS_HIDEMRUPLACES = 0x20000,\n            FOS_HIDEPINNEDPLACES = 0x40000,\n            FOS_NODEREFERENCELINKS = 0x100000,\n            FOS_OKBUTTONNEEDSINTERACTION = 0x200000,\n            FOS_DONTADDTORECENT = 0x2000000,\n            FOS_FORCESHOWHIDDEN = 0x10000000,\n            FOS_DEFAULTNOMINIMODE = 0x20000000,\n            FOS_FORCEPREVIEWPANEON = 0x40000000,\n            FOS_SUPPORTSTREAMABLEITEMS = unchecked((int)0x80000000)\n        }\n#pragma warning restore CA1712 // Do not prefix enum values with type name\n    }\n}\n"
  },
  {
    "path": "MD5HashChanger/MD5HashChanger.csproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"12.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <Import Project=\"$(MSBuildExtensionsPath)\\$(MSBuildToolsVersion)\\Microsoft.Common.props\" Condition=\"Exists('$(MSBuildExtensionsPath)\\$(MSBuildToolsVersion)\\Microsoft.Common.props')\" />\n  <PropertyGroup>\n    <Configuration Condition=\" '$(Configuration)' == '' \">Debug</Configuration>\n    <Platform Condition=\" '$(Platform)' == '' \">AnyCPU</Platform>\n    <ProjectGuid>{9094A9CA-15C7-45D4-BF88-E91E2C75A5D7}</ProjectGuid>\n    <OutputType>WinExe</OutputType>\n    <AppDesignerFolder>Properties</AppDesignerFolder>\n    <RootNamespace>MD5_Hash_Changer</RootNamespace>\n    <AssemblyName>MD5_Hash_Changer</AssemblyName>\n    <TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>\n    <FileAlignment>512</FileAlignment>\n    <TargetFrameworkProfile />\n  </PropertyGroup>\n  <PropertyGroup Condition=\" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' \">\n    <PlatformTarget>AnyCPU</PlatformTarget>\n    <DebugSymbols>true</DebugSymbols>\n    <DebugType>full</DebugType>\n    <Optimize>false</Optimize>\n    <OutputPath>bin\\Debug\\</OutputPath>\n    <DefineConstants>DEBUG;TRACE</DefineConstants>\n    <ErrorReport>prompt</ErrorReport>\n    <WarningLevel>4</WarningLevel>\n    <Prefer32Bit>false</Prefer32Bit>\n  </PropertyGroup>\n  <PropertyGroup Condition=\" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' \">\n    <PlatformTarget>AnyCPU</PlatformTarget>\n    <DebugType>pdbonly</DebugType>\n    <Optimize>true</Optimize>\n    <OutputPath>bin\\Release\\</OutputPath>\n    <DefineConstants>TRACE</DefineConstants>\n    <ErrorReport>prompt</ErrorReport>\n    <WarningLevel>4</WarningLevel>\n    <Prefer32Bit>false</Prefer32Bit>\n  </PropertyGroup>\n  <PropertyGroup>\n    <ApplicationIcon>icon.ico</ApplicationIcon>\n  </PropertyGroup>\n  <ItemGroup>\n    <Reference Include=\"System\" />\n    <Reference Include=\"System.Drawing\" />\n    <Reference Include=\"System.Windows.Forms\" />\n  </ItemGroup>\n  <ItemGroup>\n    <Compile Include=\"FolderPicker.cs\" />\n    <Compile Include=\"MainForm.cs\">\n      <SubType>Form</SubType>\n    </Compile>\n    <Compile Include=\"MainForm.Designer.cs\">\n      <DependentUpon>MainForm.cs</DependentUpon>\n    </Compile>\n    <Compile Include=\"Program.cs\" />\n    <Compile Include=\"Properties\\AssemblyInfo.cs\" />\n    <EmbeddedResource Include=\"MainForm.resx\">\n      <DependentUpon>MainForm.cs</DependentUpon>\n    </EmbeddedResource>\n    <EmbeddedResource Include=\"Properties\\Resources.resx\">\n      <Generator>ResXFileCodeGenerator</Generator>\n      <LastGenOutput>Resources.Designer.cs</LastGenOutput>\n      <SubType>Designer</SubType>\n    </EmbeddedResource>\n    <Compile Include=\"Properties\\Resources.Designer.cs\">\n      <AutoGen>True</AutoGen>\n      <DependentUpon>Resources.resx</DependentUpon>\n      <DesignTime>True</DesignTime>\n    </Compile>\n    <None Include=\"app.config\" />\n    <None Include=\"Properties\\Settings.settings\">\n      <Generator>SettingsSingleFileGenerator</Generator>\n      <LastGenOutput>Settings.Designer.cs</LastGenOutput>\n    </None>\n    <Compile Include=\"Properties\\Settings.Designer.cs\">\n      <AutoGen>True</AutoGen>\n      <DependentUpon>Settings.settings</DependentUpon>\n      <DesignTimeSharedInput>True</DesignTimeSharedInput>\n    </Compile>\n  </ItemGroup>\n  <ItemGroup>\n    <Content Include=\"icon.ico\" />\n  </ItemGroup>\n  <Import Project=\"$(MSBuildToolsPath)\\Microsoft.CSharp.targets\" />\n  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \n       Other similar extension points exist, see Microsoft.Common.targets.\n  <Target Name=\"BeforeBuild\">\n  </Target>\n  <Target Name=\"AfterBuild\">\n  </Target>\n  -->\n</Project>"
  },
  {
    "path": "MD5HashChanger/MainForm.Designer.cs",
    "content": "﻿namespace MD5_Hash_Changer\n{\n    partial class MainForm\n    {\n        /// <summary>\n        /// Required designer variable.\n        /// </summary>\n        private System.ComponentModel.IContainer components = null;\n\n        /// <summary>\n        /// Clean up any resources being used.\n        /// </summary>\n        /// <param name=\"disposing\">true if managed resources should be disposed; otherwise, false.</param>\n        protected override void Dispose(bool disposing)\n        {\n            if (disposing && (components != null))\n            {\n                components.Dispose();\n            }\n            base.Dispose(disposing);\n        }\n\n        #region Windows Form Designer generated code\n\n        /// <summary>\n        /// Required method for Designer support - do not modify\n        /// the contents of this method with the code editor.\n        /// </summary>\n        private void InitializeComponent()\n        {\n            this.components = new System.ComponentModel.Container();\n            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();\n            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();\n            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();\n            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();\n            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));\n            this.btnAddFiles = new System.Windows.Forms.Button();\n            this.btnStartMD5 = new System.Windows.Forms.Button();\n            this.btnRemoveAll = new System.Windows.Forms.Button();\n            this.btnRemoveSelected = new System.Windows.Forms.Button();\n            this.dataGridFileMD5 = new System.Windows.Forms.DataGridView();\n            this.FileName = new System.Windows.Forms.DataGridViewTextBoxColumn();\n            this.oldMD5 = new System.Windows.Forms.DataGridViewTextBoxColumn();\n            this.newMD5 = new System.Windows.Forms.DataGridViewTextBoxColumn();\n            this.status = new System.Windows.Forms.DataGridViewTextBoxColumn();\n            this.contextMenudgvMD5 = new System.Windows.Forms.ContextMenuStrip(this.components);\n            this.contextMenuCopyRows = new System.Windows.Forms.ToolStripMenuItem();\n            this.contextMenuDeleteRows = new System.Windows.Forms.ToolStripMenuItem();\n            this.contextMenuExportToCSV = new System.Windows.Forms.ToolStripMenuItem();\n            this.contextMenuOpenFile = new System.Windows.Forms.ToolStripMenuItem();\n            this.progressBarStatus = new System.Windows.Forms.ProgressBar();\n            this.labelItem = new System.Windows.Forms.Label();\n            this.labelTotalItem = new System.Windows.Forms.Label();\n            this.label1 = new System.Windows.Forms.Label();\n            this.label2 = new System.Windows.Forms.Label();\n            this.panelAction = new System.Windows.Forms.Panel();\n            this.btnAddFolder = new System.Windows.Forms.Button();\n            ((System.ComponentModel.ISupportInitialize)(this.dataGridFileMD5)).BeginInit();\n            this.contextMenudgvMD5.SuspendLayout();\n            this.panelAction.SuspendLayout();\n            this.SuspendLayout();\n            // \n            // btnAddFiles\n            // \n            this.btnAddFiles.Font = new System.Drawing.Font(\"Microsoft Sans Serif\", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\n            this.btnAddFiles.Location = new System.Drawing.Point(136, 13);\n            this.btnAddFiles.Name = \"btnAddFiles\";\n            this.btnAddFiles.Size = new System.Drawing.Size(68, 35);\n            this.btnAddFiles.TabIndex = 1;\n            this.btnAddFiles.Text = \"Add Files\";\n            this.btnAddFiles.UseVisualStyleBackColor = true;\n            this.btnAddFiles.Click += new System.EventHandler(this.btnAddFiles_Click);\n            // \n            // btnStartMD5\n            // \n            this.btnStartMD5.Font = new System.Drawing.Font(\"Microsoft Sans Serif\", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\n            this.btnStartMD5.Location = new System.Drawing.Point(7, 13);\n            this.btnStartMD5.Name = \"btnStartMD5\";\n            this.btnStartMD5.Size = new System.Drawing.Size(123, 35);\n            this.btnStartMD5.TabIndex = 2;\n            this.btnStartMD5.Text = \"Start Change MD5\";\n            this.btnStartMD5.UseVisualStyleBackColor = true;\n            this.btnStartMD5.Click += new System.EventHandler(this.btnStartMD5_Click);\n            // \n            // btnRemoveAll\n            // \n            this.btnRemoveAll.Font = new System.Drawing.Font(\"Microsoft Sans Serif\", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\n            this.btnRemoveAll.Location = new System.Drawing.Point(414, 13);\n            this.btnRemoveAll.Name = \"btnRemoveAll\";\n            this.btnRemoveAll.Size = new System.Drawing.Size(112, 35);\n            this.btnRemoveAll.TabIndex = 3;\n            this.btnRemoveAll.Text = \"Remove All Files\";\n            this.btnRemoveAll.UseVisualStyleBackColor = true;\n            this.btnRemoveAll.Click += new System.EventHandler(this.btnRemoveAll_Click);\n            // \n            // btnRemoveSelected\n            // \n            this.btnRemoveSelected.Font = new System.Drawing.Font(\"Microsoft Sans Serif\", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\n            this.btnRemoveSelected.Location = new System.Drawing.Point(292, 13);\n            this.btnRemoveSelected.Name = \"btnRemoveSelected\";\n            this.btnRemoveSelected.Size = new System.Drawing.Size(116, 35);\n            this.btnRemoveSelected.TabIndex = 4;\n            this.btnRemoveSelected.Text = \"Remove Selected\";\n            this.btnRemoveSelected.UseVisualStyleBackColor = true;\n            this.btnRemoveSelected.Click += new System.EventHandler(this.btnRemoveSelected_Click);\n            // \n            // dataGridFileMD5\n            // \n            this.dataGridFileMD5.AllowUserToAddRows = false;\n            this.dataGridFileMD5.AllowUserToDeleteRows = false;\n            this.dataGridFileMD5.AllowUserToResizeRows = false;\n            this.dataGridFileMD5.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) \n            | System.Windows.Forms.AnchorStyles.Left) \n            | System.Windows.Forms.AnchorStyles.Right)));\n            dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;\n            dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control;\n            dataGridViewCellStyle1.Font = new System.Drawing.Font(\"Microsoft Sans Serif\", 8.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\n            dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText;\n            dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;\n            dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;\n            dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True;\n            this.dataGridFileMD5.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;\n            this.dataGridFileMD5.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;\n            this.dataGridFileMD5.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {\n            this.FileName,\n            this.oldMD5,\n            this.newMD5,\n            this.status});\n            this.dataGridFileMD5.Location = new System.Drawing.Point(12, 12);\n            this.dataGridFileMD5.Name = \"dataGridFileMD5\";\n            this.dataGridFileMD5.RowHeadersVisible = false;\n            this.dataGridFileMD5.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;\n            this.dataGridFileMD5.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;\n            this.dataGridFileMD5.Size = new System.Drawing.Size(814, 329);\n            this.dataGridFileMD5.TabIndex = 0;\n            this.dataGridFileMD5.KeyUp += new System.Windows.Forms.KeyEventHandler(this.dataGridFileMD5_KeyUp);\n            this.dataGridFileMD5.MouseClick += new System.Windows.Forms.MouseEventHandler(this.dgvMD5_MouseClick);\n            // \n            // FileName\n            // \n            this.FileName.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;\n            this.FileName.FillWeight = 148.4587F;\n            this.FileName.HeaderText = \"File Name\";\n            this.FileName.MinimumWidth = 270;\n            this.FileName.Name = \"FileName\";\n            this.FileName.ReadOnly = true;\n            // \n            // oldMD5\n            // \n            this.oldMD5.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;\n            dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;\n            this.oldMD5.DefaultCellStyle = dataGridViewCellStyle2;\n            this.oldMD5.FillWeight = 103.6357F;\n            this.oldMD5.HeaderText = \"Old MD5\";\n            this.oldMD5.MinimumWidth = 220;\n            this.oldMD5.Name = \"oldMD5\";\n            this.oldMD5.ReadOnly = true;\n            this.oldMD5.Resizable = System.Windows.Forms.DataGridViewTriState.False;\n            this.oldMD5.Width = 220;\n            // \n            // newMD5\n            // \n            this.newMD5.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;\n            dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;\n            this.newMD5.DefaultCellStyle = dataGridViewCellStyle3;\n            this.newMD5.FillWeight = 110.9225F;\n            this.newMD5.HeaderText = \"New MD5\";\n            this.newMD5.MinimumWidth = 220;\n            this.newMD5.Name = \"newMD5\";\n            this.newMD5.ReadOnly = true;\n            this.newMD5.Resizable = System.Windows.Forms.DataGridViewTriState.False;\n            this.newMD5.Width = 220;\n            // \n            // status\n            // \n            dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;\n            this.status.DefaultCellStyle = dataGridViewCellStyle4;\n            this.status.FillWeight = 36.9831F;\n            this.status.HeaderText = \"Status\";\n            this.status.Name = \"status\";\n            this.status.ReadOnly = true;\n            this.status.Resizable = System.Windows.Forms.DataGridViewTriState.False;\n            this.status.Width = 75;\n            // \n            // contextMenudgvMD5\n            // \n            this.contextMenudgvMD5.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {\n            this.contextMenuCopyRows,\n            this.contextMenuDeleteRows,\n            this.contextMenuExportToCSV,\n            this.contextMenuOpenFile});\n            this.contextMenudgvMD5.Name = \"contextMenuDGVMD5\";\n            this.contextMenudgvMD5.Size = new System.Drawing.Size(186, 92);\n            // \n            // contextMenuCopyRows\n            // \n            this.contextMenuCopyRows.Name = \"contextMenuCopyRows\";\n            this.contextMenuCopyRows.Size = new System.Drawing.Size(185, 22);\n            this.contextMenuCopyRows.Text = \"Copy Selected Rows\";\n            this.contextMenuCopyRows.Click += new System.EventHandler(this.contextMenuCopyRow_Click);\n            // \n            // contextMenuDeleteRows\n            // \n            this.contextMenuDeleteRows.Name = \"contextMenuDeleteRows\";\n            this.contextMenuDeleteRows.Size = new System.Drawing.Size(185, 22);\n            this.contextMenuDeleteRows.Text = \"Delete Selected Rows\";\n            this.contextMenuDeleteRows.Click += new System.EventHandler(this.deleteSelectedRowsToolStripMenuItem_Click);\n            // \n            // contextMenuExportToCSV\n            // \n            this.contextMenuExportToCSV.Name = \"contextMenuExportToCSV\";\n            this.contextMenuExportToCSV.Size = new System.Drawing.Size(185, 22);\n            this.contextMenuExportToCSV.Text = \"Export All to .CSV\";\n            this.contextMenuExportToCSV.Click += new System.EventHandler(this.contextMenuExportToCSV_Click);\n            // \n            // contextMenuOpenFile\n            // \n            this.contextMenuOpenFile.Name = \"contextMenuOpenFile\";\n            this.contextMenuOpenFile.Size = new System.Drawing.Size(185, 22);\n            this.contextMenuOpenFile.Text = \"Open File\";\n            this.contextMenuOpenFile.Click += new System.EventHandler(this.contextMenuOpenFile_Click);\n            // \n            // progressBarStatus\n            // \n            this.progressBarStatus.Location = new System.Drawing.Point(532, 13);\n            this.progressBarStatus.Name = \"progressBarStatus\";\n            this.progressBarStatus.Size = new System.Drawing.Size(216, 35);\n            this.progressBarStatus.TabIndex = 5;\n            // \n            // labelItem\n            // \n            this.labelItem.AutoSize = true;\n            this.labelItem.Font = new System.Drawing.Font(\"Microsoft Sans Serif\", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\n            this.labelItem.Location = new System.Drawing.Point(781, 13);\n            this.labelItem.Name = \"labelItem\";\n            this.labelItem.Size = new System.Drawing.Size(17, 17);\n            this.labelItem.TabIndex = 6;\n            this.labelItem.Text = \"0\";\n            // \n            // labelTotalItem\n            // \n            this.labelTotalItem.AutoSize = true;\n            this.labelTotalItem.Font = new System.Drawing.Font(\"Microsoft Sans Serif\", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\n            this.labelTotalItem.Location = new System.Drawing.Point(782, 32);\n            this.labelTotalItem.Name = \"labelTotalItem\";\n            this.labelTotalItem.Size = new System.Drawing.Size(17, 17);\n            this.labelTotalItem.TabIndex = 8;\n            this.labelTotalItem.Text = \"0\";\n            // \n            // label1\n            // \n            this.label1.AutoSize = true;\n            this.label1.Location = new System.Drawing.Point(754, 15);\n            this.label1.Name = \"label1\";\n            this.label1.Size = new System.Drawing.Size(29, 13);\n            this.label1.TabIndex = 9;\n            this.label1.Text = \"item:\";\n            // \n            // label2\n            // \n            this.label2.AutoSize = true;\n            this.label2.Location = new System.Drawing.Point(754, 34);\n            this.label2.Name = \"label2\";\n            this.label2.Size = new System.Drawing.Size(30, 13);\n            this.label2.TabIndex = 10;\n            this.label2.Text = \"total:\";\n            // \n            // panelAction\n            // \n            this.panelAction.Controls.Add(this.btnAddFolder);\n            this.panelAction.Controls.Add(this.btnRemoveSelected);\n            this.panelAction.Controls.Add(this.label2);\n            this.panelAction.Controls.Add(this.btnAddFiles);\n            this.panelAction.Controls.Add(this.label1);\n            this.panelAction.Controls.Add(this.btnStartMD5);\n            this.panelAction.Controls.Add(this.labelTotalItem);\n            this.panelAction.Controls.Add(this.btnRemoveAll);\n            this.panelAction.Controls.Add(this.labelItem);\n            this.panelAction.Controls.Add(this.progressBarStatus);\n            this.panelAction.Dock = System.Windows.Forms.DockStyle.Bottom;\n            this.panelAction.Location = new System.Drawing.Point(0, 342);\n            this.panelAction.Name = \"panelAction\";\n            this.panelAction.Size = new System.Drawing.Size(835, 64);\n            this.panelAction.TabIndex = 11;\n            // \n            // btnAddFolder\n            // \n            this.btnAddFolder.Font = new System.Drawing.Font(\"Microsoft Sans Serif\", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\n            this.btnAddFolder.Location = new System.Drawing.Point(210, 13);\n            this.btnAddFolder.Name = \"btnAddFolder\";\n            this.btnAddFolder.Size = new System.Drawing.Size(76, 35);\n            this.btnAddFolder.TabIndex = 11;\n            this.btnAddFolder.Text = \"Add Folder\";\n            this.btnAddFolder.UseVisualStyleBackColor = true;\n            this.btnAddFolder.Click += new System.EventHandler(this.btnAddFolder_Click);\n            // \n            // MainForm\n            // \n            this.AllowDrop = true;\n            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);\n            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\n            this.ClientSize = new System.Drawing.Size(835, 406);\n            this.Controls.Add(this.panelAction);\n            this.Controls.Add(this.dataGridFileMD5);\n            this.Icon = ((System.Drawing.Icon)(resources.GetObject(\"$this.Icon\")));\n            this.Name = \"MainForm\";\n            this.Text = \"MD5 Hash Changer V1.2\";\n            this.DragDrop += new System.Windows.Forms.DragEventHandler(this.MainForm_DragDrop);\n            this.DragEnter += new System.Windows.Forms.DragEventHandler(this.MainForm_DragEnter);\n            ((System.ComponentModel.ISupportInitialize)(this.dataGridFileMD5)).EndInit();\n            this.contextMenudgvMD5.ResumeLayout(false);\n            this.panelAction.ResumeLayout(false);\n            this.panelAction.PerformLayout();\n            this.ResumeLayout(false);\n\n        }\n\n        #endregion\n\n        private System.Windows.Forms.DataGridView dataGridFileMD5;\n        private System.Windows.Forms.ProgressBar progressBarStatus;\n        private System.Windows.Forms.Label labelItem;\n        private System.Windows.Forms.Label labelTotalItem;\n        private System.Windows.Forms.Label label1;\n        private System.Windows.Forms.Label label2;\n        private System.Windows.Forms.Panel panelAction;\n        private System.Windows.Forms.ContextMenuStrip contextMenudgvMD5;\n        private System.Windows.Forms.ToolStripMenuItem contextMenuCopyRows;\n        private System.Windows.Forms.ToolStripMenuItem contextMenuOpenFile;\n        private System.Windows.Forms.DataGridViewTextBoxColumn FileName;\n        private System.Windows.Forms.DataGridViewTextBoxColumn oldMD5;\n        private System.Windows.Forms.DataGridViewTextBoxColumn newMD5;\n        private System.Windows.Forms.DataGridViewTextBoxColumn status;\n        private System.Windows.Forms.ToolStripMenuItem contextMenuExportToCSV;\n        private System.Windows.Forms.Button btnRemoveAll;\n        private System.Windows.Forms.Button btnRemoveSelected;\n        private System.Windows.Forms.Button btnStartMD5;\n        private System.Windows.Forms.Button btnAddFiles;\n        private System.Windows.Forms.Button btnAddFolder;\n        private System.Windows.Forms.ToolStripMenuItem contextMenuDeleteRows;\n    }\n}\n\n"
  },
  {
    "path": "MD5HashChanger/MainForm.cs",
    "content": "﻿/*\n * \n * Source code: https://github.com/ewwink/MD5-Hash-Changer \n * \n */\n\nusing System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Drawing;\nusing System.IO;\nusing System.Security.Cryptography;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing System.Windows.Forms;\n\nnamespace MD5_Hash_Changer\n{\n    public partial class MainForm : Form\n    {\n        public int currentRowIndex = 0;\n        public int totalFiles = 0;\n        public bool running = false;\n        public int[] randomByteLength = { 1, 7 };\n\n        public MainForm()\n        {\n            InitializeComponent();\n        }\n\n        private void btnRemoveAll_Click(object sender, EventArgs e)\n        {\n            dataGridFileMD5.Rows.Clear();\n            totalFiles = 0;\n            labelItem.Text = \"0\";\n            labelTotalItem.Text = \"0\";\n        }\n\n        private void btnRemoveSelected_Click(object sender, EventArgs e)\n        {\n            totalFiles -= dataGridFileMD5.SelectedRows.Count;\n            foreach (DataGridViewRow row in dataGridFileMD5.SelectedRows)\n            {\n                dataGridFileMD5.Rows.RemoveAt(row.Index);\n            }\n            dataGridFileMD5.ClearSelection();\n            labelItem.Text = \"0\";\n            labelTotalItem.Text = dataGridFileMD5.RowCount.ToString();\n        }\n        private void Additem(Dictionary<string, int> filesToCheck)\n        {\n            Thread threading = new Thread(() =>\n            {\n                int index = 0;\n                int maxThread = filesToCheck.Count > Environment.ProcessorCount ? Environment.ProcessorCount : filesToCheck.Count;\n                Parallel.ForEach(filesToCheck, new ParallelOptions { MaxDegreeOfParallelism = maxThread }, item =>\n                {\n                    string md5hash = GetMD5Hash(item.Key);\n                    this.Invoke((MethodInvoker)delegate ()\n                    {\n                        this.labelItem.Text = index.ToString();\n                        this.progressBarStatus.Value = index;\n                        this.dataGridFileMD5.Rows[item.Value].SetValues(new object[] { item.Key, md5hash, \"\", \"idle\" });\n                        this.dataGridFileMD5.Rows[0].Selected = false;\n                    });\n                });\n                //threading.Abort();\n            })\n            {\n                IsBackground = true\n            };\n            threading.Start();\n        }\n        private void btnAddFiles_Click(object sender, EventArgs e)\n        {\n            using (OpenFileDialog selectFile = new OpenFileDialog())\n            {\n                selectFile.Multiselect = true;\n                bool flag = selectFile.ShowDialog() == DialogResult.OK;\n                if (flag)\n                {\n                    totalFiles += selectFile.FileNames.Length;\n                    labelItem.Text = \"0\";\n                    labelTotalItem.Text = totalFiles.ToString();\n                    progressBarStatus.Value = 0;\n                    progressBarStatus.Maximum = totalFiles;\n                    var filesToCheck = new Dictionary<string, int>();\n                    foreach (string filename in selectFile.FileNames)\n                    {\n                        int rowIndex = this.dataGridFileMD5.Rows.Add(new object[] { filename, \"Processing...\", \"\", \"idle\" });\n                        filesToCheck[filename] = rowIndex;\n                    }\n                    Additem(filesToCheck);\n                }\n            }\n        }\n\n        private void btnAddFolder_Click(object sender, EventArgs e)\n        {\n            var fbd = new FolderPicker();\n            if (fbd.ShowDialog(this.Handle) == true)\n            {\n                var filesToCheck = new Dictionary<string, int>();\n                foreach (string filename in Directory.GetFiles(fbd.ResultPath))\n                {\n                    int rowIndex = this.dataGridFileMD5.Rows.Add(new object[] { filename, \"Processing...\", \"\", \"idle\" });\n                    filesToCheck[filename] = rowIndex;\n                }\n                Additem(filesToCheck);\n            }\n        }\n\n        private void btnStartMD5_Click(object sender, EventArgs e)\n        {\n            if (btnStartMD5.Text == \"Stop Change MD5\")\n            {\n                btnStartMD5.Text = \"Start Change MD5\";\n                running = false;\n                return;\n            }\n            running = true;\n            totalFiles = dataGridFileMD5.RowCount;\n            string[] fileNames = new string[totalFiles];\n            for (int i = 0; i < totalFiles; i++)\n            {\n                fileNames[i] = dataGridFileMD5.Rows[i].Cells[0].Value.ToString();\n            }\n            labelItem.Text = \"0\";\n            labelTotalItem.Text = totalFiles.ToString();\n            progressBarStatus.Value = 0;\n            progressBarStatus.Maximum = totalFiles;\n            btnStartMD5.Enabled = false;\n            btnStartMD5.Text = \"Stop Change MD5\";\n            Thread t = new Thread(() => ChangeMD5(fileNames))\n            {\n                IsBackground = true\n            };\n            t.Start();\n        }\n\n        private void ChangeMD5(string[] fileNames)\n        {\n            Random random = new Random();\n            this.Invoke((MethodInvoker)delegate ()\n            {\n                this.btnStartMD5.Enabled = true;\n            });\n            int currentProgress = 0;\n            Parallel.For(0, fileNames.Length, new ParallelOptions { MaxDegreeOfParallelism = Environment.ProcessorCount }, (index, state) =>\n             {\n                 if (!running)\n                 {\n                     this.Invoke((MethodInvoker)delegate ()\n                     {\n                         this.btnStartMD5.Text = \"Start Change MD5\";\n                         running = false;\n                     });\n                     state.Break();\n                 }\n                 int byteLength = random.Next(randomByteLength[0], randomByteLength[1]);\n                 byte[] extraByte = new byte[byteLength];\n                 for (int j = 0; j < byteLength; j++)\n                 {\n                     extraByte[j] = (byte)0;\n                 }\n                 long fileSize = new FileInfo(fileNames[index]).Length;\n                 if (fileSize == 0L)\n                 {\n                     this.Invoke((MethodInvoker)delegate ()\n                     {\n                         this.dataGridFileMD5.Rows[index].Cells[3].Value = \"Empty\";\n                     });\n                 }\n                 else\n                 {\n                     using (FileStream fileStream = new FileStream(fileNames[index], FileMode.Append))\n                     {\n                         fileStream.Write(extraByte, 0, extraByte.Length);\n                     }\n                     string md5hash = GetMD5Hash(fileNames[index]);\n                     this.Invoke((MethodInvoker)delegate ()\n                     {\n                         bool flag2 = this.dataGridFileMD5.Rows[index].Cells[2].Value.ToString() != \"\";\n                         if (flag2)\n                         {\n                             this.dataGridFileMD5.Rows[index].Cells[1].Value = this.dataGridFileMD5.Rows[index].Cells[2].Value;\n                         }\n                         currentProgress++;\n                         this.labelItem.Text = (currentProgress).ToString();\n                         this.progressBarStatus.Value = currentProgress;\n                         this.dataGridFileMD5.Rows[index].Cells[2].Value = md5hash;\n                         this.dataGridFileMD5.Rows[index].Cells[3].Value = \"OK\";\n                     });\n                 }\n             });\n            this.Invoke((MethodInvoker)delegate ()\n            {\n                this.btnStartMD5.Text = \"Start Change MD5\";\n                running = false;\n            });\n        }\n\n        private string GetMD5Hash(string fileName)\n        {\n            string md5hash = \"\";\n            long fileSize = new FileInfo(fileName).Length;\n            int bufferSize = fileSize > 1048576L ? 1048576 : 4096;\n            byte[] buffer;\n            byte[] oldBuffer;\n            int bytesRead;\n            int oldBytesRead;\n            long size;\n            long totalBytesRead = 0;\n            using (HashAlgorithm hashAlgorithm = MD5.Create())\n            {\n                using (FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read, bufferSize))\n                {\n                    //md5hash = BitConverter.ToString(md.ComputeHash(fileStream)).Replace(\"-\", \"\");\n                    size = fileStream.Length;\n\n                    buffer = new byte[bufferSize];\n\n                    bytesRead = fileStream.Read(buffer, 0, buffer.Length);\n                    totalBytesRead += bytesRead;\n\n                    do\n                    {\n                        oldBytesRead = bytesRead;\n                        oldBuffer = buffer;\n\n                        buffer = new byte[bufferSize];\n                        bytesRead = fileStream.Read(buffer, 0, buffer.Length);\n\n                        totalBytesRead += bytesRead;\n\n                        if (bytesRead == 0)\n                        {\n                            hashAlgorithm.TransformFinalBlock(oldBuffer, 0, oldBytesRead);\n                        }\n                        else\n                        {\n                            hashAlgorithm.TransformBlock(oldBuffer, 0, oldBytesRead, oldBuffer, 0);\n                        }\n\n                    } while (bytesRead != 0);\n\n                    md5hash = BitConverter.ToString(hashAlgorithm.Hash).Replace(\"-\", \"\");\n\n                }\n            }\n            return md5hash;\n        }\n\n\n        private void contextMenuCopyRow_Click(object sender, EventArgs e)\n        {\n            string rowData = \"\";\n            for (int i = 0; i < dataGridFileMD5.RowCount; i++)\n            {\n                var rows = dataGridFileMD5.Rows[i];\n                if (rows.Selected)\n                {\n                    rowData += string.Format(\"{0}\\t{1}\\t{2}\\r\\n\", rows.Cells[0].Value, rows.Cells[1].Value, rows.Cells[2].Value);\n                }\n            }\n            Clipboard.SetText(rowData);\n        }\n\n        private void contextMenuExportToCSV_Click(object sender, EventArgs e)\n        {\n            SaveFileDialog savefile = new SaveFileDialog();\n            savefile.Filter = \"CSV files (*.csv)|*.csv|All files (*.*)|*.*\";\n            if (savefile.ShowDialog() == DialogResult.OK)\n            {\n                string rowData = \"\";\n                for (int i = 0; i < dataGridFileMD5.RowCount; i++)\n                {\n                    var rows = dataGridFileMD5.Rows[i];\n                    rowData += string.Format(\"{0},{1},{2}\\r\\n\", rows.Cells[0].Value, rows.Cells[1].Value, rows.Cells[2].Value);\n                }\n                File.WriteAllText(savefile.FileName, rowData);\n            }\n        }\n\n        private void contextMenuOpenFile_Click(object sender, EventArgs e)\n        {\n            try\n            {\n                Process.Start(dataGridFileMD5.Rows[currentRowIndex].Cells[0].Value.ToString());\n            }\n            catch { }\n        }\n\n        private void dgvMD5_MouseClick(object sender, MouseEventArgs e)\n        {\n            if (e.Button == MouseButtons.Right)\n            {\n                currentRowIndex = dataGridFileMD5.HitTest(e.X, e.Y).RowIndex;\n                if (currentRowIndex > -1 && dataGridFileMD5.Rows[currentRowIndex].Selected)\n                {\n                    contextMenuCopyRows.Enabled = true;\n                    contextMenuDeleteRows.Enabled = true;\n                    contextMenuOpenFile.Enabled = true;\n                    contextMenudgvMD5.Show(dataGridFileMD5, new Point(e.X, e.Y));\n                }\n                else if (dataGridFileMD5.RowCount > 0)\n                {\n                    contextMenuCopyRows.Enabled = false;\n                    contextMenuDeleteRows.Enabled = false;\n                    contextMenuOpenFile.Enabled = false;\n                    contextMenudgvMD5.Show(dataGridFileMD5, new Point(e.X, e.Y));\n                }\n            }\n        }\n\n        private void MainForm_DragEnter(object sender, DragEventArgs e)\n        {\n            if (e.Data.GetDataPresent(DataFormats.FileDrop))\n                e.Effect = DragDropEffects.Copy;\n        }\n\n        private void MainForm_DragDrop(object sender, DragEventArgs e)\n        {\n            string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);\n            totalFiles += files.Length;\n            var filesToCheck = new Dictionary<string, int>();\n            foreach (string filename in files)\n            {\n                int rowIndex = dataGridFileMD5.Rows.Add(new object[] { filename, \"checking\", \"\", \"idle\" });\n                filesToCheck[filename] = rowIndex;\n                //System.Diagnostics.Debug.WriteLine(filename + \":\" + rowIndex.ToString());\n            }\n            Additem(filesToCheck);\n        }\n\n        private void dataGridFileMD5_KeyUp(object sender, KeyEventArgs e)\n        {\n\n            if (e.KeyValue == (char)Keys.Delete)\n            {\n                foreach (DataGridViewRow row in dataGridFileMD5.SelectedRows)\n                {\n                    dataGridFileMD5.Rows.RemoveAt(row.Index);\n                }\n            }\n        }\n\n        private void deleteSelectedRowsToolStripMenuItem_Click(object sender, EventArgs e)\n        {\n            foreach (DataGridViewRow row in dataGridFileMD5.SelectedRows)\n            {\n                dataGridFileMD5.Rows.RemoveAt(row.Index);\n            }\n        }\n    }\n}"
  },
  {
    "path": "MD5HashChanger/MainForm.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The primary goals of this format is to allow a simple XML format \n    that is mostly human readable. The generation and parsing of the \n    various data types are done through the TypeConverter classes \n    associated with the data types.\n    \n    Example:\n    \n    ... ado.net/XML headers & schema ...\n    <resheader name=\"resmimetype\">text/microsoft-resx</resheader>\n    <resheader name=\"version\">2.0</resheader>\n    <resheader name=\"reader\">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>\n    <resheader name=\"writer\">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>\n    <data name=\"Name1\"><value>this is my long string</value><comment>this is a comment</comment></data>\n    <data name=\"Color1\" type=\"System.Drawing.Color, System.Drawing\">Blue</data>\n    <data name=\"Bitmap1\" mimetype=\"application/x-microsoft.net.object.binary.base64\">\n        <value>[base64 mime encoded serialized .NET Framework object]</value>\n    </data>\n    <data name=\"Icon1\" type=\"System.Drawing.Icon, System.Drawing\" mimetype=\"application/x-microsoft.net.object.bytearray.base64\">\n        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>\n        <comment>This is a comment</comment>\n    </data>\n                \n    There are any number of \"resheader\" rows that contain simple \n    name/value pairs.\n    \n    Each data row contains a name, and value. The row also contains a \n    type or mimetype. Type corresponds to a .NET class that support \n    text/value conversion through the TypeConverter architecture. \n    Classes that don't support this are serialized and stored with the \n    mimetype set.\n    \n    The mimetype is used for serialized objects, and tells the \n    ResXResourceReader how to depersist the object. This is currently not \n    extensible. For a given mimetype the value must be set accordingly:\n    \n    Note - application/x-microsoft.net.object.binary.base64 is the format \n    that the ResXResourceWriter will generate, however the reader can \n    read any of the formats listed below.\n    \n    mimetype: application/x-microsoft.net.object.binary.base64\n    value   : The object must be serialized with \n            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter\n            : and then encoded with base64 encoding.\n    \n    mimetype: application/x-microsoft.net.object.soap.base64\n    value   : The object must be serialized with \n            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter\n            : and then encoded with base64 encoding.\n\n    mimetype: application/x-microsoft.net.object.bytearray.base64\n    value   : The object must be serialized into a byte array \n            : using a System.ComponentModel.TypeConverter\n            : and then encoded with base64 encoding.\n    -->\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:import namespace=\"http://www.w3.org/XML/1998/namespace\" />\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n      <xsd:complexType>\n        <xsd:choice maxOccurs=\"unbounded\">\n          <xsd:element name=\"metadata\">\n            <xsd:complexType>\n              <xsd:sequence>\n                <xsd:element name=\"value\" type=\"xsd:string\" minOccurs=\"0\" />\n              </xsd:sequence>\n              <xsd:attribute name=\"name\" use=\"required\" type=\"xsd:string\" />\n              <xsd:attribute name=\"type\" type=\"xsd:string\" />\n              <xsd:attribute name=\"mimetype\" type=\"xsd:string\" />\n              <xsd:attribute ref=\"xml:space\" />\n            </xsd:complexType>\n          </xsd:element>\n          <xsd:element name=\"assembly\">\n            <xsd:complexType>\n              <xsd:attribute name=\"alias\" type=\"xsd:string\" />\n              <xsd:attribute name=\"name\" type=\"xsd:string\" />\n            </xsd:complexType>\n          </xsd:element>\n          <xsd:element name=\"data\">\n            <xsd:complexType>\n              <xsd:sequence>\n                <xsd:element name=\"value\" type=\"xsd:string\" minOccurs=\"0\" msdata:Ordinal=\"1\" />\n                <xsd:element name=\"comment\" type=\"xsd:string\" minOccurs=\"0\" msdata:Ordinal=\"2\" />\n              </xsd:sequence>\n              <xsd:attribute name=\"name\" type=\"xsd:string\" use=\"required\" msdata:Ordinal=\"1\" />\n              <xsd:attribute name=\"type\" type=\"xsd:string\" msdata:Ordinal=\"3\" />\n              <xsd:attribute name=\"mimetype\" type=\"xsd:string\" msdata:Ordinal=\"4\" />\n              <xsd:attribute ref=\"xml:space\" />\n            </xsd:complexType>\n          </xsd:element>\n          <xsd:element name=\"resheader\">\n            <xsd:complexType>\n              <xsd:sequence>\n                <xsd:element name=\"value\" type=\"xsd:string\" minOccurs=\"0\" msdata:Ordinal=\"1\" />\n              </xsd:sequence>\n              <xsd:attribute name=\"name\" type=\"xsd:string\" use=\"required\" />\n            </xsd:complexType>\n          </xsd:element>\n        </xsd:choice>\n      </xsd:complexType>\n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>2.0</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <metadata name=\"FileName.UserAddedColumn\" type=\"System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\">\n    <value>True</value>\n  </metadata>\n  <metadata name=\"oldMD5.UserAddedColumn\" type=\"System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\">\n    <value>True</value>\n  </metadata>\n  <metadata name=\"newMD5.UserAddedColumn\" type=\"System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\">\n    <value>True</value>\n  </metadata>\n  <metadata name=\"status.UserAddedColumn\" type=\"System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\">\n    <value>True</value>\n  </metadata>\n  <metadata name=\"contextMenudgvMD5.TrayLocation\" type=\"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a\">\n    <value>17, 17</value>\n  </metadata>\n  <assembly alias=\"System.Drawing\" name=\"System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a\" />\n  <data name=\"$this.Icon\" type=\"System.Drawing.Icon, System.Drawing\" mimetype=\"application/x-microsoft.net.object.bytearray.base64\">\n    <value>\n        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\n        0baT/NG2lPzRtpT80raU/NO4lvzTt5X807iW/NK4lvzTuZb807mW/NO4lvzTuZf81LuZ/NW8mvzVvJr8\n        1bya/NW7m/zVvJv81byb/Na9nPzXv5/82MCg/Ne/n/zYwKD82MCg/NjAoPzYwKD82MCg+NCykfzQspH/\n        0LKR/9Czkf/Qs5L/0LOS/9Czkv/JoXn/wYZR/8KDSv/BgUf/wYBF/8B/Q//Af0P/wH9E/8B/RP/Af0T/\n        wYBE/8GARP/BgET/wYBE/8GARP/BgET/wYBF/8KBRf/CgUX/woFF/8GBRf/Cgkb/woJG/8KBRv/CgUb/\n        woJH/8ODR//Dg0j/w4NI/8ODSP/Dg0j/w4NI/8GJU//RsYz/18Cf/9e/n//YwKD/2MCg/9jAoP/YwKD/\n        2MCg/NCxkPzQspH/0LKR/9Cykf/Qs5H/0LOS/9Czkv/Kl2f/1Hsr/+B+J//geiH/33YZ/91vDf/dawb/\n        3WkD/91pA//daQP/3WkD/91pA//daQP/3WkD/91pA//daQP/3WkD/91pA//daQP/3WkD/91pA//daQP/\n        3WkD/91pA//daQP/3WkD/91pA//daQP/3WkD/91pA//daQP/3GkD/85tGP/Pp3z/17+f/9e/n//Xv5//\n        17+f/9jAoP/YwKD/2MCg/NCxkPzQsZD/0LKR/9Gykf/RspH/0bKR/9Czkv/MmWj/4Ic1//CQNv/wjjP/\n        8Iwx//CKK//whSP/738X/+14Cv/tdQb/7XUF/+11Bf/tdQX/7XUF/+11Bf/tdQX/7XUF/+11Bf/tdQX/\n        7XUF/+11Bf/tdQX/7XUF/+11Bf/tdQX/7XUF/+11Bf/tdQX/7XUF/+11Bf/tdQX/7XQF/9l1Gf/QqHz/\n        17+f/9e/n//Xv5//17+f/9e/n//Xv5//2MCg/M+wkPzPsJD/0LGQ/9Cxkf/QsZH/0LKR/9Cykf/Mmmj/\n        4Yo4//GUOv/xkzj/8ZE1//GQM//xjzD/8Y0s//CGIP/vfxP/7noK/+55B//ueQf/7nkH/+55B//ueQf/\n        7nkH/+55B//ueQf/7nkH/+55B//ueQf/7nkH/+55B//ueQf/7nkH/+55B//ueQf/7nkH/+55B//ueQf/\n        7ngH/9l4Gv/QqHz/17+f/9e/n//Xv5//17+f/9e/n//Xv5//17+f/NCwkPzQsJD/0bGQ/9CxkP/QsZD/\n        0LKR/9Cykf/Mmmj/4Y47//KYPf/ylzv/8pY5//KUNv/ykzT/8pIy//KQL//xjCj/8IYb/+99C//vfAn/\n        8H4L//F/Df/xfw3/8X8N//F/Df/xfw3/8X8N//B9Cv/vfAn/73wJ/+98Cf/vfAn/73wJ/+98Cf/vfAn/\n        73wJ/+98Cf/vfAn/7nwJ/9p6G//QqHz/1r6e/9e/nv/Xv5//17+f/9e/n//Xv5//17+f/NCwkPzQsI//\n        0bGQ/9GxkP/QsZD/0LGR/9CxkP/NnGn/45E+//OdQf/zm0D/85o9//OZO//zmDj/85c2//KWNP/ylDH/\n        8pIu//GLIP/xgxD/tWQS/4xME/+iVhP/olYU/6JWE/+hVRP/g0cU/81vD//wgQv/8IEL//CBC//wgQv/\n        8IEL//CBC//wgQv/8IEL//CBC//wgQv/738L/9p9HP/QqXv/17+e/9e/nv/Xv57/17+f/9e/n//Xv5//\n        17+f/NCwj/zQsJD/0LCP/9CwkP/QsJD/0LCQ/9CxkP/NnGr/45RB//SgRf/0oEP/9J5B//SdP//0nDz/\n        9Js6//OZOP/zmTb/85cz//OVLv/yjiL/3nwR/3g4Af+hSgD/pkwA/6ZMAP+dSAD/fDwC/+yBDf/xhA3/\n        8YQN//GEDf/xhA3/8YQN//GEDf/xhA3/8YQN//GEDf/xhA3/8IQN/9uAHv/QqXz/17+e/9e/nv/Xv57/\n        17+e/9e/nv/Xv57/17+e/M+vjvzQsI//0LCP/9Cwjv/QsJD/0LCQ/9Gxj//NnWr/45hE//WkSf/1pEf/\n        9aNF//WhQv/1oED/9Z8+//SeO//0nTn/9Jw3//SaNP/0mDD/85Ai/49KBv+URAD/pkwA/6VMAP+KPwD/\n        pVgH//KID//yiA//8ogP//KID//yiA//8ogP//KID//yiA//8ogP//KID//yiA//8YcP/9uCH//PqHv/\n        1r6d/9e/nv/Xv57/1r6d/9e/nv/Xv57/17+e/M+vj/zQr4//0LCP/9Cwj//QsI//0LCP/9Cwj//Nnmv/\n        5ZtH//WpTf/1qEv/9adJ//WmRv/1pET/9aRC//WjQP/0oT7/9KA7//SgOf/0njf/9Jwz/8h2Gf+DPQL/\n        o0sA/6BJAP+FQQL/1HkO//KMEf/yjBH/8owR//KMEf/yjBH/8owR//KMEf/yjBH/8owR//KMEf/yjBH/\n        8osR/9yFIf/Op3n/1r2c/9a+nf/Wvp3/1r6d/9e/nv/Xv57/1r6d/NCvjvzQr47/0K+P/9Cwjf/QsI7/\n        0LCO/9Cwj//Onmv/5Z5J//atUf/3rE//96tM//eqSv/2qUj/9qhG//anQ//2pkH/9qU///ajPf/2ozv/\n        9qE4/+KQLP+UUA3/nUgA/5dGAP+dVgn/6YoS//SQE//0kBP/9JAT//SQE//0kBP/9JAT//SQE//0kBP/\n        9JAT//SQE//0kBP/848T/92HIv/Op3n/1bua/9a9nP/Wvp3/1r6d/9a+nf/Wvp3/1r6d/M+ujfzQro3/\n        0K+O/9Cvjf/Qr43/0LCN/9Cwjv/On2r/5qJM//ewVP/3sFL/969Q//etTv/3rEv/9qxK//aqR//2qUX/\n        9qlD//anQP/2pj7/9qY8/9KKNv+aUA3/oUoA/55JAP+dVA7/3Icd//SUFf/0lBX/9JQV//SUFf/0lBX/\n        9JQV//SUFf/0lBX/9JQV//SUFf/0lBX/9JMV/96KI//Op3n/1bua/9W7mv/WvZz/1r6d/9a+nf/Wvp3/\n        1r6d/M+ujPzProz/z66M/9Cvjf/Qr43/0K+N/9Cvjf/OoGv/56VP//i1WP/4tFf/+LNU//iyUv/3sU//\n        97BO//evS//3rkn/961H//esRf/3q0P/25U8/5JHBv+lTAD/pkwA/6ZMAP+jSwD/k0sL/+iQGv/1mBf/\n        9ZgY//WYGP/1mBj/9ZgY//WYGP/1mBj/9ZgY//WYGP/1mBj/9ZcX/96NJf/OqHr/1LqZ/9W7mv/Uupr/\n        1byb/9a+nf/Wvp3/1r6d/M+ujPzProz/z66M/8+ujP/Qr43/0K+N/9Cvjf/OoGv/56hS//m5XP/5uFr/\n        +LdY//i2Vv/4tVP/+LRR//izT//4sk3/+LFL//iwSP/3r0b/o2Uh/6FKAP+mTAD/pkwA/6ZMAP+mTAD/\n        m0cA/7ZuFf/3nBn/9pwa//acGv/2nBr/9pwa//acGv/2nBr/9pwa//acGv/2nBr/9psZ/9+PJv/OqHn/\n        1bqZ/9W7mf/Vupn/1Lqa/9W8m//VvZz/1b2d/M+tjPzProz/z62L/8+tjP/Proz/z66M/9Cujf/PoWz/\n        6KtV//m7X//5u13/+bpb//m5Wf/5uFf/+bdV//m2Uv/5tVD/+bVO//mzTP/2sUn/j1IT/6RLAP+mTAD/\n        pkwA/6ZMAP+mTAD/oEoA/51bDP/4oBv/958b//efG//3nxv/958b//efG//3nxv/958b//efG//3nxv/\n        9p8b/9+SJ//OqHn/1LqZ/9W6mf/Uupn/1buZ/9S6mv/Vu5v/1byc/M+ti/zPrYv/z62L/8+tjP/PrYz/\n        z66M/8+ujP/OoWz/6a5Y//rAY//6v2H/+r9f//q+Xf/6vVv/+rxY//q7Vv/6ulX/+rlS//q5UP/5t07/\n        klsc/5hGAP+mTAD/pkwA/6ZMAP+lTAD/jUEA/6loD//4pB7/+KQe//ikHv/4pB7/+KQe//ikHv/4pB7/\n        +KQe//ikHv/4pB7/96Md/+CVKf/OqXn/1LmZ/9S6mP/Uupn/1LqZ/9W7mf/Uupn/1Lub/M6si/zOrIv/\n        zqyM/8+ti//PrYv/z62M/8+ujP/Oom3/6bFb//vDZ//7w2X/+8Jj//vBYP/7wF7/+8Bc//u+Wv/7vlj/\n        +r1W//q8VP/6u1L/zJI7/3U4A/+WRQD/o0oA/6JKAP+QQgD/dTsF/+CVHf/5qCD/+agg//moIP/5qCD/\n        +agg//moIP/5qCD/+agg//moIP/5qCD/+Kcf/+CYKv/OqXn/07mX/9O5mP/Uupj/1LqZ/9S6mP/Uupn/\n        1LmZ/M2si/zOrIz/zqyL/86si//PrYv/z6yL/86sjP/Oom3/6rNd//vGav/8xmj//MVm//zEZP/7w2H/\n        +8Ng//vCXv/7wVv/+8BZ//u/V//7v1X/+LtR/695LP9tOAf/bzMA/24yAP90Pwr/wIQs//mxMf/6rCT/\n        +qsi//qrIv/6qyL/+qsi//qrIv/6qyL/+qsi//qrIv/6qyL/+Koh/+GaK//Oqnn/07mX/9O5l//TuZf/\n        1LqY/9S6mP/Uupj/1LqY/M2ri/zOq4v/zauL/82siv/OrIv/z62L/8+sjP/Pom7/67dg//zKbv/8ymz/\n        /Mlq//zIZ//8yGX/+8dk//vGYf/7xV//+8Vd//vEW//7w1n/+8JX//vCVP/wtkz/05w+/9efPv/0t0n/\n        +75K//u8Rf/7uDr/+rIr//qwJP/6sCT/+rAk//qwJP/6sCT/+rAk//qwJP/6sCT/+q4j/+GdLf/NqXn/\n        0riW/9O4l//TuZf/07mX/9O5l//TuZf/07mX/M6rivzOq4v/zquL/82siv/Nq4v/zauL/86si//Oo27/\n        67lj//zNcv/9zW///c1t//3Ma//9y2n//cpn//3JZf/9yWP//chh//3HX//9x1z//cZb//3FWP/9xVb/\n        /cRU//3DUv/9wlD//cJO//3AS//9v0j//LxA//y3Mf/8tCn//LQm//y0Jv/8tCb//LQm//y0Jv/8tCb/\n        +rIl/+KgLf/NqXj/0reW/9K3lv/St5b/0riW/9O4l//TuJf/0riW/M6rivzNq4r/zaqK/86riv/Oq4v/\n        zquK/82rjP/OpG//67xl//3QdP/90HL//dBw//3Pbv/9zmz//c5q//3MaP/9zGb//ctk//3KYv/9yl//\n        /cle//3IW//9yFr//cdY//3GVf/9xlP//cVS//3ET//9xE3//cNL//zBRP/8vTr//Lou//y3KP/8tyj/\n        /Lco//y3KP/8tyj/+7Yn/+KiL//NqXj/0baW/9G2lv/Stpb/0raW/9K3lv/St5b/0reX/M2qivzNqor/\n        zauJ/86riv/Oq4r/zquK/86riv/OpG//7L5o//7UeP/+03b//tN0//7Scv/+0nD//tFu//7Qa//+0Gr/\n        /s9o//7OZf/+zWT//s1i//7MX//9zF7//ctc//3KWf/9ylj//clV//3IU//9yFH//cdP//3GTf/9xkv/\n        /cRG//3AO//9vjL//bwt//27Kv/9uyr//Lop/+OlMP/NqXj/0baV/9G1lf/RtpX/0raW/9K2lv/Rtpb/\n        0beX/M2pifzNqYn/zamJ/82pif/Nqor/zaqK/82qiv/OpXD/68Fw//zXgv/814P//NeD//zXg//914P/\n        /deD//3YhP/92IT//diE//3Zhf/92YX//dmF//3Zhv/92of//dqI//3Zhf/92IL//dd+//3Vev/91Hb/\n        /dNz//3Rbv/80Gr//M5m//zMYP/8yln//MhR//zERv/7wkD/+r86/+KnOP/MqXj/0LWU/9C1lP/RtZX/\n        0bWV/9G1lf/RtZX/0bWV/M2piPzNqYn/zamJ/82pif/NqYn/zamJ/82qiv/KoG3/1qZW/+CyXf/fsl7/\n        3LBd/9uxX//ftGL/4LZk/92yYf/Yrl3/1ata/9asW//csV//37Nh/9+zYf/fs2H/37Ni/9+zYf/fsl//\n        3rFd/96wWv/er1j/3q5W/96uU//erVD/3atO/92qS//dqUn/3alG/9ynQf/cpT3/26I3/8+XOf/LqHn/\n        0LSU/9C0lP/QtJT/0bWV/9C0lP/QtJT/0bWV/MypiPzMqYn/zKmJ/82pif/MqYn/zamJ/82pif/NqYr/\n        zqqL/86ri//Oq4z/nY6C/52en//Ky8z/3+Dh/7O0tf9wcXP/RUZH/1JPTf+okXr/z66O/8+ujv/Pro7/\n        z66P/86uj//Pr4//z6+P/86wkP/PsJD/z7CR/8+xkf/OsZL/z7GS/8+xkv/PsZP/z7KT/8+yk//Ps5T/\n        0LOU/9C0lf/Ps5P/0LSU/8+zk//Ps5P/0LSU/9C0lP/QtJT/0LWU/M2piPzNqYj/zamI/82piP/MqYj/\n        zKmI/8ypif/MqYn/zKmJ/82pif/Oqor/no6B/6Ghof/Ozs7/4+Pj/7m5uf91dXX/SUlJ/1RQTf+okHn/\n        zqyM/86tjP/OrYz/zq2M/86tjf/OrY3/zq6N/86ujv/Pro//zq+P/86wkP/OsJD/zrCQ/82wkP/Nr5D/\n        za+Q/86wkf/OsZH/z7KS/8+yk//PspL/z7KT/8+yk//Ps5P/z7OT/8+zk//Ps5P/0LSU/Myoh/zMqIf/\n        zKiH/82piP/NqYj/zKiI/8yoiP/MqYn/zKmJ/8ypif/NqYn/no6B/6Ghof/Pz8//5OTk/7m5uf91dXX/\n        SUlJ/1RRTf+okHj/zayM/82sjP/NrIz/zq2M/86tjP/OrY3/zayN/82tjf/NrY7/za6O/82vj//Or4//\n        za+P/86vkP/Nr5D/za+Q/82vkP/OsJH/zrCR/8+ykv/PspL/z7KS/8+ykv/PspL/z7KT/8+zk//Ps5P/\n        0LOU/Myoh/zMqIf/zKiI/8yoh//NqYj/zKiH/82piP/MqYj/y6iI/8yoiP/NqYj/nY6B/6Ghof/Pz8//\n        5OTk/7m5uf91dXX/SUlJ/1RRTf+oj3j/zKuL/82si//Nq4z/zayM/82sjP/NrIz/zqyN/8ioiv+gj37/\n        jYV9/6CYkP+jnJT/kYqB/3RtZf9nX1f/amNb/8mrjf/Nr5D/zrCR/86wkf/NsJH/zrGR/86xkf/OsZH/\n        z7GS/8+xk//PsZP/z7GT/Myoh/zMqIf/zKiH/8yoh//MqIf/zKiH/8yoiP/MqIf/zKiH/8yoiP/MqYj/\n        nY6B/6Ghof/Pz8//5OTk/7m5uf91dXX/SUlJ/1RQTf+nj3f/zaqK/82ri//Nq4v/zauL/82rjP/Nq4z/\n        zayM/8amiP+cj4P/lJSU/7+/v//Gxsb/pKSk/2VlZf9HR0f/SElJ/8epjP/Nro//za+Q/82vkP/Nr5H/\n        zbCR/82wkf/Nr5H/zrCS/82wkf/OsJL/zrCS/Myoh/zMqIf/zKiH/8yoh//MqIf/zKiH/8yoiP/MqIf/\n        y6eH/8yoh//MqIj/nY6B/6Ghof/Pz8//5OTk/7m5uf91dXX/SUlJ/1RQTf+njnf/zauL/8yqi//Mqor/\n        zKqK/8yqi//Nq4v/zKuL/8WmiP+fkob/n5+f/9PT0//c3Nz/t7e3/21tbf9HR0f/RkZG/8epi//Nro//\n        zK6Q/8yukP/MrpD/za6R/82vkf/Nr5H/za+R/82vkf/NsJH/za+R/M2piPzNqYj/zKeH/8yoh//Mp4f/\n        y6eG/8unh//Lp4f/y6eH/8yoh//MqIj/nY6B/6Ghof/Pz8//5OTk/7m5uf91dXX/SUlJ/1RQTf+mjnf/\n        zKmK/8ypiv/LqYn/zKmK/8ypiv/Mqor/zKqK/8Slh/+fk4f/o6Oj/9nZ2f/i4uL/vb29/3Fxcf9JSUn/\n        R0dH/8aoiv/MrY//za6Q/82ukP/MrpD/zK6Q/8yukP/MrpD/zK6Q/8yukP/MrpD/za+R/M2piPzOqYj/\n        zaiI/8yoh//Lp4f/y6eG/8unh//Lp4f/y6eG/8unhv/Mp4f/nY6B/6Ghof/Pz8//5OTk/7m5uf91dXX/\n        SUlJ/1RQTf+njnf/y6mJ/8qoif/LqYn/y6mJ/8ypiv/MqYr/zKmK/8Skh/+fkob/pKSk/9nZ2f/i4uL/\n        vr6+/3Fxcf9JSUn/R0dH/8Woiv/MrY//zK2P/8ytj//MrY//zK2P/8ytj//LrY//y62P/8utj//MrpD/\n        y62P/MyoiPzOqYj/zamI/82oh//Lp4f/y6eH/8unh//Kpob/y6eH/8qmhv/Lp4f/nY6A/6Ghof/Pz8//\n        5OTk/7q6uv91dXX/SEhI/1RQTf+mjXb/yqiJ/8qoiP/KqIj/yqiJ/8qoif/LqIn/y6iK/8Skh/+fkob/\n        pKSk/9nZ2f/i4uL/vr6+/3BwcP9JSUn/RkdH/8Wnif/MrI3/zK2P/8usjv/MrY//zK2P/8ytj//LrY//\n        zK2P/8utj//LrY//y62P/MObgPzIoYT/zKeI/86piP/OqIj/zKeH/8qmhv/Kp4b/yqaG/8qmhv/Lp4b/\n        nY1//6CgoP/Ozs7/5OTk/7q6uv92dnb/SUlJ/1JOS/+li3X/y6eI/8qniP/Kp4j/yqaI/8qnif/Kp4n/\n        yqiJ/8Oihf+dkYX/pKSk/9ra2v/h4eH/vb29/29vb/9HR0f/RkZG/8Wmif/Lq43/zKyN/8qrjf/Kq43/\n        y6yO/8usjv/LrI7/y6yP/8usjv/LrI7/yquO/MKZf/zCmX//xZ2B/8mjhf/Mp4f/zaiI/8ynh//Lp4f/\n        yqaG/8qmhv/Lp4f/nYx+/56env/MzMz/4+Pj/7+/v/98fHz/S0tL/0xJR/+chHD/y6eI/8qmh//Kp4f/\n        yqaH/8qmiP/Jpoj/yqeJ/8Cghf+ZjoX/qKio/9zc3P/g4OD/ubm5/2pqav9GRkb/R0dH/8Wnif/Kqoz/\n        y6qM/8qrjf/Kq43/yqqN/8qrjv/Kq47/yquO/8qqjf/Kqo3/yqqN/MGYf/zCmX//wpl//8OagP/FnoL/\n        yqWG/82piP/Np4j/y6eH/8qmhv/Kpob/oo59/5qamv/Hx8f/4+Pj/8nJyf+Kior/VFRU/0NDQv+FdGT/\n        xqOF/8mlhv/Kpof/yqaI/8qmh//Jpof/yaaI/7qdhP+RjIj/s7Oz/+Dg4P/d3d3/sLCw/2NjY/9DQ0P/\n        T0xK/8mpi//KqYv/yqqM/8qqjP/Kqo3/yqqM/8qqjf/Kqo7/yaqN/8mqjf/Jqo3/yaqN/MGYf/zCmX//\n        wpl//8GYf//CmX//wpmA/8eghP/LpYf/zaiI/8yniP/Lpob/r5R9/5OTk/+8vLz/4ODg/9jY2P+qqqr/\n        cnJy/0pKSv9ZVE//qI12/8mlhv/JpYb/yaWH/8mlh//Jpoj/xqOG/5yNgf+dnZ3/yMjI/+Li4v/T09P/\n        n5+f/1dXV/9CQkL/Zl1W/8upi//KqIv/yqqL/8mpi//JqYz/yqmM/8qpjP/KqYz/yamM/8mpjP/JqYz/\n        yamN/MGYf/zAl37/wZh//8GYfv/BmH//wZh//8GYf//Dm4H/yKGD/8ymh//Mp4f/w6GD/4qJh/+vr6//\n        2dnZ/+Hh4f/IyMj/nJyc/2lpaf9VVVX/bmZe/66Sev/GooX/yaWH/8mlh/++noT/pJGB/5eWlf+4uLj/\n        1tbW/93d3f/Gxsb/ioqK/01NTf9DQ0P/h3Zn/8qoiv/KqIr/yqiL/8moiv/JqIv/yaiL/8moi//JqYz/\n        yamM/8mojP/JqYz/yaiM/MCXfvzAl37/wJd+/8CXf//BmH7/wZh//8CXfv/BmH//wpl//8Wdgv/KpIb/\n        zKeH/5SJfv+goKD/y8vL/+Tk5P/d3d3/xMTE/5ycnP9+fn7/b29v/355dP+Og3n/mop8/5eJff+RioT/\n        lpST/7Kysv/MzMz/2tra/9XV1f+ysrL/cnJy/0VFRf9NSkj/qI55/8mnif/Jp4r/yaeK/8mniv/JqIv/\n        yKeL/8mni//Jp4v/yaiM/8mojP/Jp4z/yKeM/MCXffzAl33/wJd+/8CXfv/Al37/wJd+/8CXfv/Al37/\n        wZh//8KZf//BmX//xp2C/7OXgf+OjIr/sbGx/9vb2//k5OT/39/f/87Ozv+7u7v/qamp/5ubm/+Wlpb/\n        lpaW/5iYmP+fn5//sLCw/8fHx//U1NT/2dnZ/8fHx/+NjY3/VlZW/0JCQv93al7/vp6E/8imif/Ipon/\n        yKaJ/8mniv/Jpor/yaaL/8imiv/Jp4v/yKeM/8injP/Ipov/yKeM/L+Wffy/ln3/wJd9/8CWff/Aln7/\n        wJd9/8CWfv/Al37/wJd+/8CXfv/Al37/wJd+/7yWfv+YiH7/mZiY/8fHx//d3d3/5OTk/+Hh4f/X19f/\n        zc3N/8LCwv+7u7v/uLi4/7m5uf+/v7//ycnJ/9XV1f/b29v/19fX/6Wlpf9paWn/R0dH/1RPTP+kinX/\n        x6SI/8ekiP/HpYn/x6WJ/8eliv/Ipor/yKaK/8imiv/IpYr/yKWK/8imiv/Hpor/x6aK/L+Wffy/ln3/\n        vpZ9/8CWfv/Aln7/v5Z+/7+Wff/Aln3/wJZ+/7+Wff/Al33/wJd+/8CWfv+vjnr/joeD/6mpqf/Ly8v/\n        3Nzc/+Pj4//l5eX/4eHh/9jY2P/U1NT/09PT/9PT0//W1tb/3Nzc/+Li4v/c3Nz/ubm5/3Z2dv9OTk7/\n        RUVF/4d1Zf/DoYX/x6SI/8ekiP/HpIn/x6SJ/8ekif/HpIn/x6SJ/8eliv/HpYr/x6WK/8eliv/HpYr/\n        x6WK/L6Wffy+lX3/vpZ+/76Wff++ln3/v5Z9/7+Wff+/ln3/v5Z9/8CXff+/ln3/wJZ+/8CWfv/Al37/\n        rYx4/5CLiP+mpqb/xcXF/9XV1f/b29v/4+Pj/+np6f/q6ur/6urq/+rq6v/p6en/5OTk/9DQ0P+pqan/\n        eXl5/05OTv9LSUj/d2he/8aihv/Go4f/x6SI/8ajiP/HpIn/x6SJ/8ekif/HpIn/x6SJ/8ekif/HpIn/\n        x6WK/8ekiv/Go4n/x6SK/L2Vfvy9lX7/vpV+/72Vfv+9lX3/vpV9/76Wfv++ln7/vpZ+/76Wfv++ln7/\n        v5Z9/7+Wfv+/ln7/wJZ9/6iLev+Ui4f/oqGh/729vf/IyMj/zMzM/9HR0f/V1dX/19fX/9TU1P/Ly8v/\n        ubm5/5SUlP9xcXH/VVVV/09NS/9/b2L/upmA/8ahh//Goof/xqKH/8ajh//Go4j/xqOI/8ajiP/Go4j/\n        xqOI/8ajif/Go4n/xqOJ/8ajif/Go4n/xqOJ/L2Vfvy9lX7/vZV+/72Vfv++lX7/vZV+/76Wfv+9lX7/\n        vpZ+/76Vfv+9lX7/vpZ+/76Vfv++ln7/v5Z+/76Vff+xj3v/lod//5qamv+tra3/t7e3/7q6uv+4uLj/\n        s7Oz/6enp/+Xl5f/gYGB/2RkZP9TU1P/VVJP/5iAbv+9m4H/xqGG/8ahhv/GoYb/xaKH/8Wih//Foof/\n        xaKH/8ajh//Gooj/xaKH/8aiiP/Gooj/xqOJ/8aiiP/Fooj/xaKI/L2Vfvy9lX7/vZR9/72Vfv+9lX7/\n        vZV+/72Vfv+9lX3/vZV+/72Vfv+9lX7/vZV+/76Vfv++lX//vpZ//7+Wf/+/ln7/v5Z+/6mMef+ZioH/\n        nJWR/6Ccmv+cmpn/k5KS/4KBgP90cW//a2dj/29mXv+PeWr/vJmA/8ahhv/GoYb/xaCG/8Wghv/GoYb/\n        xqGH/8ahhv/FoYb/xaGH/8Whh//FoYf/xaGH/8aiiP/FoYf/xqKI/8Whh//FoYf/xaKI/L2Vfvy9lH7/\n        vZR+/7yUfv+9lH7/vZR+/72Ufv+9lH3/vZR9/72Vfv+9lX7/vZR+/72Vfv+9lX7/vpZ+/76Wf/++ln//\n        vpZ//76Wf/+8lX7/so96/6qOf/+mj4D/o41//6GKe/+iiXf/qY13/76bgf/HoYb/xqCF/8aghv/GoIb/\n        xaCF/8Wghf/FoIX/xaCG/8Wghv/FoIb/xaCG/8Wghv/EoYf/xKCH/8Sghv/EoIb/xKCG/8Sgh//EoIf/\n        xKCH/LuTffi9lH78vpV//LyUf/y9lH78vZR+/LyTffy9lH78vZR+/L2Vfvy9lH78vZR+/L2Uffy9lH38\n        vZV+/L2Vfvy9lX78vZV+/L6Vf/y+ln/8vpZ//L6Wf/y+ln/8v5d//MGZgPzEnYL8x6CE/MeghfzHoIb8\n        xqCF/MWfhPzFn4X8xZ+F/MWfhvzFoIb8xJ+F/MWghvzFoIb8xaCG/MWghvzEoIb8xKCG/MOghvzEoIb8\n        w6CG/MOghvzDn4b8w5+G+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAgAAAAQAAAAAEAIAAAAAAA\n        AAAAAAAAAAAAAAAAAAAAAAAAAADQspH60LOR/dCzkv3Qs5L90bST/c6vjf3Nr4z9za+M/c2wjf3OsI39\n        zrGO/c6xjv3Oso/9zrKP/c+yj/3Ps5D90LSR/dC0kf3QtJH90LWS/dG1kv3RtpT90riV/dK4lv3SuJb9\n        0riX/dS6mf3YwJ/92MCg/djAoP3YwKD92MCg+tCxkf3QspH/0LKR/9Czkf/Qs5L/xnQs/9NyHv/SbBT/\n        0WUI/9BiAv/QYgL/0GIC/9BiAv/QYgL/0GIC/9BiAv/QYgL/0GIC/9BiAv/QYgL/0GIC/9BiAv/QYgL/\n        0GIC/9BiAv/QYQL/xXQt/9e/n//Xv5//17+f/9jAoP/YwKD90LGQ/dCxkP/QsZH/0bKR/9Czkv/YhTj/\n        8JA1//COMv/wiyz/74Me/+55DP/tdQX/7XUF/+11Bf/tdQX/7XUF/+11Bf/tdQX/7XUF/+11Bf/tdQX/\n        7XUF/+11Bf/tdQX/7XUF/+x1Bf/Tfi//17+f/9e/n//Xv5//17+f/9e/n/3QsI/90LGQ/9CxkP/QsZD/\n        0LKR/9mJPP/ylzz/8ZU4//GTNf/xkTH/8Y4r//CEGf/uewn/73wJ//B9Cv/wfQr/8H0K//B9Cv/vewj/\n        7nsI/+57CP/uewj/7nsI/+57CP/uewj/7nsI/9SCMP/Xv57/17+e/9e/n//Xv5//17+f/dCwj/3QsI//\n        0LGQ/9CxkP/QsZD/2o4///OdQv/zmz7/85k7//OYN//yljP/8pQw//GMIP/NcA//kEkN/6NSDf+jUg3/\n        iEYN/914Df/wgQv/8IEL//CBC//wgQv/8IEL//CBC//vgAv/1IQx/9a+nv/Xv57/17+e/9e/nv/Xv579\n        z7CP/dCwj//QsI//0LCQ/9Cxj//bkkP/9KNI//SiRP/0oEH/9J49//ScOv/zmzb/85ky//KQIf+HQgP/\n        pkwA/6VMAP+PSAT/8YcO//GHDv/xhw7/8YcO//GHDv/xhw7/8YcO//GGDv/ViDL/1r6d/9a+nv/Xv57/\n        17+e/9e+nv3Qr4790K+O/9Cwjv/QsI//0LCP/9uWRv/1qU3/9ahK//WmRv/1pEP/9aNA//ShPP/0oDn/\n        9J00/69mFf+dSAD/lkUA/75rDP/yjBH/8owR//KMEf/yjBH/8owR//KMEf/yjBH/8owR/9WKM//VvJv/\n        1r6d/9a+nf/Wvp3/1r6d/c+ujf3Qr47/0K+N/9Cvjv/QsI7/3JpK//avU//3rk//96xM//arSf/2qUX/\n        9qhC//amP//2pTv/y4It/5hFAP+SQwH/2IIa//SSFP/0khT/9JIU//SSFP/0khT/9JIU//SSFP/zkhT/\n        1o01/9S6mv/Vu5v/1r6d/9a+nf/Wvp39z66M/c+ujP/Qr43/0K+N/9Cvjf/enk3/+LVY//i0Vf/4slL/\n        97FO//evS//3rkj/96xE/9uVOv+bSAP/pkwA/6ZMAP+YSQX/5Y4Z//WYF//1mBf/9ZgX//WYF//1mBf/\n        9ZgX//WYF//XkDb/1LqZ/9W6mv/Vu5r/1r6d/9a+nf3PrYz9z62M/8+ujP/Proz/0K+N/9+iUf/5u17/\n        +blb//i4V//4t1T/+LVR//i0Tv/4skr/snIl/6VLAP+mTAD/pkwA/6JKAP+9cxL/9p4a//aeGv/2nhr/\n        9p4a//aeGv/2nhr/9p4a/9eTOP/Uupn/1bqZ/9S6mf/Uu5r/1b2c/c6ti/3PrYv/z62M/8+tjP/Proz/\n        36ZU//rAY//6v2D/+r5d//q8Wv/6u1b/+rpT//q4UP+5fzD/l0UA/6ZMAP+mTAD/j0EA/8qCFv/4pB3/\n        +KQd//ikHf/4pB3/+KQd//ikHf/3pB3/15Y5/9S5mP/Uupj/1LmY/9S6mf/Uupr9zqyL/c6si//OrIv/\n        z62L/8+tjP/gqVf/+8Vp//vEZf/7w2L/+8Jf//vAXP/7v1n/+r5V//a5UP+LVRj/fTkA/3o4AP+YYBr/\n        +a0q//mqIP/5qiD/+aog//mqIP/5qiD/+aog//ipIP/Ymjv/07mX/9O5l//TuZj/1LqY/9S6mP3Oq4v9\n        zauL/82riv/OrIv/zqyL/+GtW//8y27//Mlr//zIZ//8x2X//MZh//zFXv/8xFv//MNY//vBVf/krEf/\n        6K5F//y+S//7vEb/+7Uy//uwJP/7sCP/+7Aj//uwI//7sCP/+q8j/9mdPP/SuJb/0riW/9K4lv/TuZf/\n        07mX/c6riv3Oq4r/zquK/82ri//Nq4v/4bBe//zPc//9znD//c1t//3Mav/9y2f//cpj//3JYP/9yF3/\n        /cda//3GV//9xVT//cRR//3DTv/8wkr//L0+//y4Lf/8tif//LYn//y2J//7tSb/2Z89/9G2lv/Rt5b/\n        0reW/9K3lv/St5b9zaqJ/c2qif/Nqor/zquK/86riv/itGH//tR4//7Tdf/+0nL//tFv//7QbP/+z2n/\n        /s5m//7NYv/+zF///ctc//3KWf/9yVb//clT//3IUP/9x03//cVJ//3BPf/9vjD//bwr//y7Kf/aoj//\n        0baV/9G1lf/Stpb/0baV/9G2lv3NqYn9zKmJ/82pif/NqYn/zaqK/9aoW//ov23/575u/+a/cP/pwnT/\n        5sBz/+K8cf/jvnP/6cN4/+nDev/pxHz/6cN6/+jBdv/owHD/575r/+e8Zf/numD/5rha/+a1U//mskr/\n        5K4+/9CdRv/QtJT/0LSU/9C0lP/QtJT/0LWV/cypiP3MqIj/zKmI/8ypiP/MqYn/zamK/82qiv+tmIX/\n        p6ip/9/f4P+mp6j/TExN/2NcVf/OrY3/zq2N/8+ujv/Oro7/zq6O/86vj//OsJD/z7CR/86wkf/OsZH/\n        zrGS/8+yk//PspP/z7OU/8+zk//Ps5P/z7OT/8+zk//QtJT9zKiH/cyoh//NqYj/zKiI/8ypif/MqYn/\n        zKmJ/62XhP+qqqr/4uLi/6urq/9PT0//ZFxV/82si//NrIz/zayM/86tjP/OrY3/za2N/86ujv/Nr4//\n        za+P/82vkP/Nr5D/za+Q/86xkf/PsZL/z7KS/8+ykv/PspL/z7KS/8+zk/3MqIf9zKiH/8yoh//MqIf/\n        zKiH/8yoiP/LqIj/rZeD/6qqqv/i4uL/q6ur/09PT/9kXFX/zKuK/82ri//Nq4v/zayL/82sjP/Ao4b/\n        jIaB/6mkn/+alY//aWRf/15ZVP/JrI7/za+Q/82wkP/NsJH/zbCR/86xkv/OsZL/z7GS/cyoh/3MqIf/\n        zKiH/8yoh//MqIf/y6eH/8unh/+tl4P/qqqq/+Li4v+rq6v/T09P/2NcVP/Mqor/zKqK/8yqiv/Mqov/\n        zauL/72ghP+YmJj/1dXV/76+vv9gYGD/RERE/8mqjP/Mro//zK6Q/82vkf/Nr5H/za+R/82vkf/NsJH9\n        zamH/cyoh//Mp4f/y6eG/8unh//Lp4f/y6eH/62Wgv+qqqr/4uLi/6urq/9PT0//Y1tU/8upif/LqYn/\n        y6mJ/8ypiv/LqYr/vZ+D/52dnf/d3d3/x8fH/2VlZf9ERUX/yKmM/8ytj//MrY//zK6Q/8yukP/MrpD/\n        zK6Q/8yukP3MqIf9zamI/8ynh//Lp4b/yqaG/8qmhv/Lpob/rJaC/6qqqv/i4uL/q6ur/05OTv9jW1T/\n        y6iJ/8qoiP/KqIn/y6iJ/8uoif+8noP/nZ2d/93d3f/IyMj/ZWVl/0RERf/HqIv/y6yO/8usjv/MrY//\n        y62P/8utj//LrY//y62P/cSbgP3Jo4X/zamI/8ynh//Kpob/yqaG/8qmhv+slYH/qamp/+Li4v+srKz/\n        T09P/2BYUv/Kp4j/yqeH/8qmiP/Kp4n/yqeJ/7qcgf+dnZ3/3t7e/8fHx/9jY2P/RERE/8eniv/Lq43/\n        yquN/8qrjf/LrI7/y6yO/8urjv/Kq479wpl//cKZf//EnIH/yqWG/8yoh//Lp4f/yqaG/66VgP+kpKT/\n        4ODg/7q6uv9aWlr/SkdF/8ajhf/JpYf/yqaI/8mmh//Jpoj/rZWA/6enp//h4eH/vr6+/1tbW/9IR0b/\n        yamL/8qpjP/Kqoz/yqqM/8qqjf/Kqo3/yaqN/8mqjf3BmH/9wZh//8GYf//CmX//xp+C/8ymh//Mp4f/\n        u5uA/5eXl//Z2dn/1NTU/4SEhP9MTEz/iHVm/8mlhv/JpYf/yaWH/8Sihf+Vjoj/w8PD/+Dg4P+pqan/\n        Tk5O/19YUv/KqIr/yamK/8mpi//JqYz/yamM/8mpjP/JqYz/yamM/cCXfv3Al37/wJd+/8GYf//BmH7/\n        wpl//8ehhP/Mpof/kYuG/8XFxf/j4+P/w8PD/4qKiv9paWn/i391/6iSf/+mkYD/lI6J/7Ozs//X19f/\n        09PT/4SEhP9DQ0P/iHZo/8mniv/Jp4r/yaeK/8mni//Jp4v/yaiL/8mnjP/Ip4z9wJd9/cCWff/Al37/\n        wJd+/8CXfv/Al37/wZh+/8OagP+nj37/pKSk/9vb2//i4uL/z8/P/7W1tf+ioqL/nJyc/5+fn/+ysrL/\n        zc3N/9nZ2f+2trb/W1tb/0hHRv+7m4H/x6WJ/8imif/Ipor/yKaK/8imiv/Ipov/x6aL/8emi/2/ln39\n        vpZ9/7+Wff+/ln3/v5Z9/8CWff/Aln3/wJd+/7+Wfv+Rh4H/t7e3/9zc3P/k5OT/3t7e/9TU1P/Ozs7/\n        z8/P/9fX1//f39//ycnJ/3R0dP9FRUX/jnpq/8ekh//HpIj/x6SJ/8ekif/HpYn/x6WK/8eliv/HpYr/\n        x6WK/b2Vff2+lX7/vpV9/76Vff+/lX3/v5V9/7+Wff+/ln3/wJZ+/7eSe/+SjIj/uLi4/9LS0v/c3Nz/\n        5eXl/+np6f/o6Oj/39/f/729vf94eHj/SkpK/3pqX//Goob/xqOH/8ajiP/HpIn/x6SI/8akif/GpIn/\n        xqSJ/8ajif/Go4n9vZV+/b2Vfv+9lX7/vZV9/72Vff++lX7/vZV9/76Vfv++lX7/v5Z9/7mSe/+YioL/\n        pqam/7q6uv+9vb3/urq6/62trf+QkJD/Z2dn/1FQT/+NeWn/xqGG/8ahhv/GoYf/xaKH/8Wih//Go4f/\n        xqKH/8aiiP/Gooj/xaKI/8WiiP29lX79vZR9/72Uff+9lH7/vZR9/72Vff+9lX7/vZV+/72Vfv+9lX7/\n        vpZ+/76Wfv+tjnv/oJCG/5uVkf+Qjo3/fXp4/3VsZv+LeGr/uZd+/8aghv/FoIb/xaCG/8Wghv/FoYb/\n        xaGH/8Whh//FoYf/xaGH/8Whh//FoYf/xaGH/buTffq9lH79vJR+/b2Ufv28k339vJR9/b2Ufv29lH79\n        vZR9/b2Ufv29lX79vZV+/b6Wf/2+ln79vpZ//cCXf/3Em4L9x6CE/caghf3GoIX9xZ+F/cWfhf3FoIX9\n        xaCF/cWghv3FoIb9xKCG/cOghv3EoIb9w6CG/cOfhv3Dn4b6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAEAAAACAAAAABACAA\n        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0LKR/dCzkv7No3f+0I9S/s+KSf7PiUj+z4pI/tCKSP7Qi0n+\n        0ItK/tGMSv7RjUv+0Y1M/tKrgf7YwKD+2MCg/dCxkP7QspH/1J1m//GSN//xjCz/74AV/+54B//veQj/\n        73kI/+54B//ueAb/7ngG/+54Bv/VoGf/17+f/9e/n/7QsI/+0LCQ/9Whaf/0n0P/9Jw8//OYNf/piSH/\n        mEsH/5hLCP/sgg3/8YQM//GEDP/whAz/1qJo/9e/nv/Xv57+0K+O/tCwjv/WpGz/9qxO//apSP/1pUH/\n        9aI6/6xeEf+wXgr/85AT//OQE//zkBP/848T/9WjZ//WvZz/1r6d/s+ujP7Proz/16hu//i3Wv/4tVP/\n        +LJM/9+ZO/+jSwH/oksB/+OOF//2mxn/9psZ//abGf/Wpmj/1bqa/9W9nP7OrIv+z62M/9eqcf/6wmT/\n        +sBe//q9WP/prEn/kUgG/5JJB//tnx//+acf//mnH//4px//1qlp/9S5mP/Uupn+zquK/s6si//YrXT/\n        /M1v//zLaf/8yGP//MZc//a/U//3vU7//L5E//u2Lf/7syX/+7Ml/9Wraf/St5b/0riX/s2pif7Nqor/\n        1ax0//PJcv/zyXH/8cdu//LHbf/zyG3/88Zo//PEYP/ywFf/8rtH//G2N//Tqmz/0bWV/9G1lf7MqYj+\n        zKmI/8ypif+9oYf/xcXF/3t7fP+ZhHH/zq2N/86tjf/Or4//zrCQ/86wkf/OsZL/z7KT/8+zk//Ps5P+\n        zKiH/syoh//MqIf/vJ+F/8bGxv99fX3/mINv/82ri//Nq4z/qJiJ/7azsP9bWFb/y62O/82vkf/NsJH/\n        zrCS/s2piP7Lp4f/y6eH/7yfhf/Gxsb/fX19/5eCb//LqYn/y6mK/62ekP/T09P/VVVV/8qrjf/MrY//\n        zK2P/8yukP7EnIH+yqSG/8unh/+8noP/xMTE/4SEhP+Pemn/yqaH/8qniP+rnZL/0dHR/1JSUv/JqYv/\n        yquN/8qrjv/Kq47+wZh//sGYf//FnYL/x6KF/7Kwr//AwMD/cm1p/7GXgP+ymob/ube1/7i4uP9eWFP/\n        yaiK/8moi//JqIz/yaiM/r+Wff7Al33/wJd+/8GYfv+nlIj/1NTU/9LS0v+4uLj/vr6+/9TU1P9ycnL/\n        loBu/8elif/IpYr/yKaK/8emi/69lX7+vpV9/76Wff++ln3/vZV9/6eYj//ExMT/0dHR/8HBwf97e3v/\n        hnRm/8aih//Go4j/xqOI/8ajif/Go4n+vZR+/b2Ufv69lH3+vZV+/r2Vfv6+lX7+spKA/qqUh/6fiHn+\n        tJR9/sWghf7FoIb+xaCG/sSghv7EoYf+xKCH/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\n</value>\n  </data>\n</root>"
  },
  {
    "path": "MD5HashChanger/Program.cs",
    "content": "﻿using System;\nusing System.Windows.Forms;\n\nnamespace MD5_Hash_Changer\n{\n    static class Program\n    {\n        /// <summary>\n        /// The main entry point for the application.\n        /// </summary>\n        [STAThread]\n        static void Main()\n        {\n            Application.EnableVisualStyles();\n            Application.SetCompatibleTextRenderingDefault(false);\n            Application.Run(new MainForm());\n        }\n    }\n}\n"
  },
  {
    "path": "MD5HashChanger/Properties/AssemblyInfo.cs",
    "content": "﻿using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// General Information about an assembly is controlled through the following \n// set of attributes. Change these attribute values to modify the information\n// associated with an assembly.\n[assembly: AssemblyTitle(\"MD5 Hash Changer\")]\n[assembly: AssemblyDescription(\"MD5 Hash Changer\")]\n[assembly: AssemblyConfiguration(\"\")]\n[assembly: AssemblyCompany(\"Microsoft\")]\n[assembly: AssemblyProduct(\"MD5 Hash Changer\")]\n[assembly: AssemblyCopyright(\"Copyright © ewwink 2017\")]\n[assembly: AssemblyTrademark(\"ewwink\")]\n[assembly: AssemblyCulture(\"\")]\n\n// Setting ComVisible to false makes the types in this assembly not visible \n// to COM components.  If you need to access a type in this assembly from \n// COM, set the ComVisible attribute to true on that type.\n[assembly: ComVisible(false)]\n\n// The following GUID is for the ID of the typelib if this project is exposed to COM\n[assembly: Guid(\"9816fa18-0885-42fe-b7b9-347fc8aee07f\")]\n\n// Version information for an assembly consists of the following four values:\n//\n//      Major Version\n//      Minor Version \n//      Build Number\n//      Revision\n//\n// You can specify all the values or you can default the Build and Revision Numbers \n// by using the '*' as shown below:\n// [assembly: AssemblyVersion(\"1.0.*\")]\n[assembly: AssemblyVersion(\"1.1.0.0\")]\n[assembly: AssemblyFileVersion(\"1.1.0.0\")]\n"
  },
  {
    "path": "MD5HashChanger/Properties/Resources.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//     Runtime Version:4.0.30319.42000\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace MD5_Hash_Changer.Properties {\n    using System;\n    \n    \n    /// <summary>\n    ///   A strongly-typed resource class, for looking up localized strings, etc.\n    /// </summary>\n    // This class was auto-generated by the StronglyTypedResourceBuilder\n    // class via a tool like ResGen or Visual Studio.\n    // To add or remove a member, edit your .ResX file then rerun ResGen\n    // with the /str option, or rebuild your VS project.\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"17.0.0.0\")]\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    internal class Resources {\n        \n        private static global::System.Resources.ResourceManager resourceMan;\n        \n        private static global::System.Globalization.CultureInfo resourceCulture;\n        \n        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal Resources() {\n        }\n        \n        /// <summary>\n        ///   Returns the cached ResourceManager instance used by this class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        internal static global::System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.ReferenceEquals(resourceMan, null)) {\n                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager(\"MD5_Hash_Changer.Properties.Resources\", typeof(Resources).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        /// <summary>\n        ///   Overrides the current thread's CurrentUICulture property for all\n        ///   resource lookups using this strongly typed resource class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        internal static global::System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "MD5HashChanger/Properties/Resources.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The primary goals of this format is to allow a simple XML format \n    that is mostly human readable. The generation and parsing of the \n    various data types are done through the TypeConverter classes \n    associated with the data types.\n    \n    Example:\n    \n    ... ado.net/XML headers & schema ...\n    <resheader name=\"resmimetype\">text/microsoft-resx</resheader>\n    <resheader name=\"version\">2.0</resheader>\n    <resheader name=\"reader\">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>\n    <resheader name=\"writer\">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>\n    <data name=\"Name1\"><value>this is my long string</value><comment>this is a comment</comment></data>\n    <data name=\"Color1\" type=\"System.Drawing.Color, System.Drawing\">Blue</data>\n    <data name=\"Bitmap1\" mimetype=\"application/x-microsoft.net.object.binary.base64\">\n        <value>[base64 mime encoded serialized .NET Framework object]</value>\n    </data>\n    <data name=\"Icon1\" type=\"System.Drawing.Icon, System.Drawing\" mimetype=\"application/x-microsoft.net.object.bytearray.base64\">\n        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>\n        <comment>This is a comment</comment>\n    </data>\n                \n    There are any number of \"resheader\" rows that contain simple \n    name/value pairs.\n    \n    Each data row contains a name, and value. The row also contains a \n    type or mimetype. Type corresponds to a .NET class that support \n    text/value conversion through the TypeConverter architecture. \n    Classes that don't support this are serialized and stored with the \n    mimetype set.\n    \n    The mimetype is used for serialized objects, and tells the \n    ResXResourceReader how to depersist the object. This is currently not \n    extensible. For a given mimetype the value must be set accordingly:\n    \n    Note - application/x-microsoft.net.object.binary.base64 is the format \n    that the ResXResourceWriter will generate, however the reader can \n    read any of the formats listed below.\n    \n    mimetype: application/x-microsoft.net.object.binary.base64\n    value   : The object must be serialized with \n            : System.Serialization.Formatters.Binary.BinaryFormatter\n            : and then encoded with base64 encoding.\n    \n    mimetype: application/x-microsoft.net.object.soap.base64\n    value   : The object must be serialized with \n            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter\n            : and then encoded with base64 encoding.\n\n    mimetype: application/x-microsoft.net.object.bytearray.base64\n    value   : The object must be serialized into a byte array \n            : using a System.ComponentModel.TypeConverter\n            : and then encoded with base64 encoding.\n    -->\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n      <xsd:complexType>\n        <xsd:choice maxOccurs=\"unbounded\">\n          <xsd:element name=\"metadata\">\n            <xsd:complexType>\n              <xsd:sequence>\n                <xsd:element name=\"value\" type=\"xsd:string\" minOccurs=\"0\" />\n              </xsd:sequence>\n              <xsd:attribute name=\"name\" type=\"xsd:string\" />\n              <xsd:attribute name=\"type\" type=\"xsd:string\" />\n              <xsd:attribute name=\"mimetype\" type=\"xsd:string\" />\n            </xsd:complexType>\n          </xsd:element>\n          <xsd:element name=\"assembly\">\n            <xsd:complexType>\n              <xsd:attribute name=\"alias\" type=\"xsd:string\" />\n              <xsd:attribute name=\"name\" type=\"xsd:string\" />\n            </xsd:complexType>\n          </xsd:element>\n          <xsd:element name=\"data\">\n            <xsd:complexType>\n              <xsd:sequence>\n                <xsd:element name=\"value\" type=\"xsd:string\" minOccurs=\"0\" msdata:Ordinal=\"1\" />\n                <xsd:element name=\"comment\" type=\"xsd:string\" minOccurs=\"0\" msdata:Ordinal=\"2\" />\n              </xsd:sequence>\n              <xsd:attribute name=\"name\" type=\"xsd:string\" msdata:Ordinal=\"1\" />\n              <xsd:attribute name=\"type\" type=\"xsd:string\" msdata:Ordinal=\"3\" />\n              <xsd:attribute name=\"mimetype\" type=\"xsd:string\" msdata:Ordinal=\"4\" />\n            </xsd:complexType>\n          </xsd:element>\n          <xsd:element name=\"resheader\">\n            <xsd:complexType>\n              <xsd:sequence>\n                <xsd:element name=\"value\" type=\"xsd:string\" minOccurs=\"0\" msdata:Ordinal=\"1\" />\n              </xsd:sequence>\n              <xsd:attribute name=\"name\" type=\"xsd:string\" use=\"required\" />\n            </xsd:complexType>\n          </xsd:element>\n        </xsd:choice>\n      </xsd:complexType>\n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>2.0</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n</root>"
  },
  {
    "path": "MD5HashChanger/Properties/Settings.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//     Runtime Version:4.0.30319.42000\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace MD5_Hash_Changer.Properties {\n    \n    \n    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator\", \"17.8.0.0\")]\n    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {\n        \n        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));\n        \n        public static Settings Default {\n            get {\n                return defaultInstance;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "MD5HashChanger/Properties/Settings.settings",
    "content": "﻿<?xml version='1.0' encoding='utf-8'?>\n<SettingsFile xmlns=\"http://schemas.microsoft.com/VisualStudio/2004/01/settings\" CurrentProfile=\"(Default)\">\n  <Profiles>\n    <Profile Name=\"(Default)\" />\n  </Profiles>\n  <Settings />\n</SettingsFile>\n"
  },
  {
    "path": "MD5HashChanger/app.config",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<configuration>\n<startup><supportedRuntime version=\"v4.0\" sku=\".NETFramework,Version=v4.6.2\"/></startup></configuration>\n"
  },
  {
    "path": "MD5HashChanger.sln",
    "content": "﻿\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 2012\nProject(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"MD5HashChanger\", \"MD5HashChanger\\MD5HashChanger.csproj\", \"{9094A9CA-15C7-45D4-BF88-E91E2C75A5D7}\"\nEndProject\nGlobal\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\n\t\tDebug|Any CPU = Debug|Any CPU\n\t\tRelease|Any CPU = Release|Any CPU\n\tEndGlobalSection\n\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\n\t\t{9094A9CA-15C7-45D4-BF88-E91E2C75A5D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\n\t\t{9094A9CA-15C7-45D4-BF88-E91E2C75A5D7}.Debug|Any CPU.Build.0 = Debug|Any CPU\n\t\t{9094A9CA-15C7-45D4-BF88-E91E2C75A5D7}.Release|Any CPU.ActiveCfg = Release|Any CPU\n\t\t{9094A9CA-15C7-45D4-BF88-E91E2C75A5D7}.Release|Any CPU.Build.0 = Release|Any CPU\n\tEndGlobalSection\n\tGlobalSection(SolutionProperties) = preSolution\n\t\tHideSolutionNode = FALSE\n\tEndGlobalSection\nEndGlobal\n"
  },
  {
    "path": "README.md",
    "content": "# MD5-Hash-Changer\nC# Application to Change MD5 Hash of any file. It work by appending \"null\" characters to the end of file\n\n## Whats New in V1.2:\n\n- Low Memory usage for checking large file\n- Parallel Processing\n- Add Drag n Drop File\n- Select Folder\n\n## Requirement & Download\n- .Net Framework 4.6 (Windows 10 built-in)\n- Download from [Release page](https://github.com/ewwink/MD5-Hash-Changer/releases)\n\n\n![md5-hash-changer](https://github.com/ewwink/MD5-Hash-Changer/blob/master/screenshoot.jpg?raw=true)\n"
  }
]