diff --git a/.gitignore b/.gitignore
index 626bd25..4aff627 100644
--- a/.gitignore
+++ b/.gitignore
@@ -52,3 +52,5 @@ $RECYCLE.BIN/
Network Trash Folder
Temporary Items
.apdisk
+
+CodeMaid.config
diff --git a/MediaTester.sln b/MediaTester.sln
index f67863a..c4ee6e4 100644
--- a/MediaTester.sln
+++ b/MediaTester.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27130.2010
+# Visual Studio Version 17
+VisualStudioVersion = 17.1.32328.378
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaTesterCli", "MediaTesterCli\MediaTesterCli.csproj", "{82DBB478-8EF7-45B1-8200-F28BEF178019}"
EndProject
diff --git a/MediaTester/AboutForm.Designer.cs b/MediaTester/AboutForm.Designer.cs
new file mode 100644
index 0000000..d21ced4
--- /dev/null
+++ b/MediaTester/AboutForm.Designer.cs
@@ -0,0 +1,137 @@
+namespace KrahmerSoft.MediaTester
+{
+ partial class AboutForm
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutForm));
+ this.linkLabelRepository = new System.Windows.Forms.LinkLabel();
+ this.button1 = new System.Windows.Forms.Button();
+ this.versionLabel = new System.Windows.Forms.Label();
+ this.label1 = new System.Windows.Forms.Label();
+ this.pictureBox1 = new System.Windows.Forms.PictureBox();
+ this.label2 = new System.Windows.Forms.Label();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // linkLabelRepository
+ //
+ this.linkLabelRepository.AutoSize = true;
+ this.linkLabelRepository.Font = new System.Drawing.Font("Segoe UI", 10F);
+ this.linkLabelRepository.Location = new System.Drawing.Point(173, 284);
+ this.linkLabelRepository.Name = "linkLabelRepository";
+ this.linkLabelRepository.Size = new System.Drawing.Size(107, 23);
+ this.linkLabelRepository.TabIndex = 2;
+ this.linkLabelRepository.TabStop = true;
+ this.linkLabelRepository.Text = "Source Code";
+ this.linkLabelRepository.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabelRepository_LinkClicked);
+ //
+ // button1
+ //
+ this.button1.Location = new System.Drawing.Point(362, 281);
+ this.button1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.button1.Name = "button1";
+ this.button1.Size = new System.Drawing.Size(94, 29);
+ this.button1.TabIndex = 3;
+ this.button1.Text = "OK";
+ this.button1.UseVisualStyleBackColor = true;
+ this.button1.Click += new System.EventHandler(this.button1_Click);
+ //
+ // versionLabel
+ //
+ this.versionLabel.AutoSize = true;
+ this.versionLabel.Font = new System.Drawing.Font("Segoe UI", 10F);
+ this.versionLabel.Location = new System.Drawing.Point(57, 192);
+ this.versionLabel.Name = "versionLabel";
+ this.versionLabel.Size = new System.Drawing.Size(53, 23);
+ this.versionLabel.TabIndex = 4;
+ this.versionLabel.Text = "v0.0.0";
+ //
+ // label1
+ //
+ this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.label1.Location = new System.Drawing.Point(173, 19);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(293, 236);
+ this.label1.TabIndex = 5;
+ this.label1.Text = resources.GetString("label1.Text");
+ this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // pictureBox1
+ //
+ this.pictureBox1.Image = global::KrahmerSoft.MediaTester.Properties.Resources.MediaTesterLogo;
+ this.pictureBox1.Location = new System.Drawing.Point(22, 19);
+ this.pictureBox1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.pictureBox1.Name = "pictureBox1";
+ this.pictureBox1.Size = new System.Drawing.Size(128, 128);
+ this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+ this.pictureBox1.TabIndex = 6;
+ this.pictureBox1.TabStop = false;
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Font = new System.Drawing.Font("Segoe UI", 11F);
+ this.label2.Location = new System.Drawing.Point(28, 158);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(114, 25);
+ this.label2.TabIndex = 7;
+ this.label2.Text = "MediaTester";
+ //
+ // AboutForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(120F, 120F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
+ this.ClientSize = new System.Drawing.Size(482, 334);
+ this.Controls.Add(this.label2);
+ this.Controls.Add(this.pictureBox1);
+ this.Controls.Add(this.label1);
+ this.Controls.Add(this.versionLabel);
+ this.Controls.Add(this.button1);
+ this.Controls.Add(this.linkLabelRepository);
+ this.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.Name = "AboutForm";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+ this.Text = "About";
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+ private System.Windows.Forms.LinkLabel linkLabelRepository;
+ private System.Windows.Forms.Button button1;
+ public System.Windows.Forms.Label versionLabel;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.PictureBox pictureBox1;
+ public System.Windows.Forms.Label label2;
+ }
+}
\ No newline at end of file
diff --git a/MediaTester/AboutForm.cs b/MediaTester/AboutForm.cs
new file mode 100644
index 0000000..2f3b5dc
--- /dev/null
+++ b/MediaTester/AboutForm.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Diagnostics;
+using System.Windows.Forms;
+
+namespace KrahmerSoft.MediaTester
+{
+ public partial class AboutForm : Form
+ {
+ public AboutForm()
+ {
+ InitializeComponent();
+ }
+
+ private void button1_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+
+ private void linkLabelRepository_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ string url = "https://github.com/dkrahmer/MediaTester";
+
+ // hack because of this: https://github.com/dotnet/corefx/issues/10361
+ url = url.Replace("&", "^&");
+ Process.Start(new ProcessStartInfo(url) { UseShellExecute = true });
+ }
+ }
+}
\ No newline at end of file
diff --git a/MediaTester/AboutForm.resx b/MediaTester/AboutForm.resx
new file mode 100644
index 0000000..2455c15
--- /dev/null
+++ b/MediaTester/AboutForm.resx
@@ -0,0 +1,2040 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ MediaTester can test any media (SD, microSD, thumb, etc) and verify it stores the expected number of bytes.
+If you buy any storage media, you should use MediaTester to verify it or risk losing your data.
+
+Released as public domain open source.
+
+Created by Doug Krahmer, 2020
+Updated by Fabiano Riccardi, 2022
+
+
+
+
+
+ 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
+ daMNAgvDABRRNCD4cOuyjfLG1H1QTQzgkSqdeKhGN4B3NU77bRACGOsAFCOlHAB8/P2BX80jt0xmd9Zx
+ r8tsWbIG3SvdRPdKt1A+qkwhzqW0w433fwN3MQxAB6SU7YHxDumovjl1J6tT/2T7+YPsO3eIkzlppOdf
+ 4HRBBvnSQbQpjDhrFDGWSKKsdq4LL0ml6HLUia5EnRKJXB9TgTL2eIA9ON/5Zwkhdvi6jQaBiWEAOlGU
+ UbgDcBdQD6gDRP/1ORKHw4HZdNmDR04Cu4CdRf9dCmwUwvj1GXiH8RfkI4oOHq0AxOM0gmicm14yLvlJ
+ E0Kc83V9DQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKJ/wcvh6sPdp+BLAAAAABJRU5ErkJggigAAACA
+ AAAAAAEAAAEAIAAAAAAAAAABACMuAAAjLgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ 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
+ AAAAAAAAAAAAAAD///8U////WP///4T///+b/v79pv///5////+T////fv///1b///8p////AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////aMLis/V/w1z/XbQw/0mrGP9A
+ pwj/RakS/1CuIf9htjX/fsNc/6TUjP/e79fX////a////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAP///0Cr2Jb9P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+b
+ 0IH/////UgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8F4/Hc1UaqEv8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0irFP/0+fOwAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAP///3R8wln/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/73grfj///8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8bxeS48j+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/fsNa/////18AAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAPf79qdbsy3/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/9GqhL/8vjwtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAASQAAAHkA
+ AACaAAAAvwAAAL0AAACHAAAAZAAAACoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9BotOK/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+53qj6////EwAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAABGAAAArwAAAPgAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAANsA
+ AAB8AAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA////BuPx3NVHqhL/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/3nBVf////9lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuAAAAwgAAAP4AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADxAAAAdgAAAAQAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///99eMBU/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/RKkP/+/37LwA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAagAAAPcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAAxAAAABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA////J7zfq/g/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/tdyi/P///xcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAIsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA3wAAACgA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wHu9+vBUa8g/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9z
+ vk3/////bgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
+ AACSAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA////ZIrIa/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0GoC//m8uHMAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAkgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8B
+ AQH/Q0ND/4yMjP+3t7f/zc3N/8DAwP+oqKj/ZmZm/xgYGP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xjM58DuQKcJ/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/6fWkP////8qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAJIA
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/IiIi/7u7u//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/4eHh/3t7e/8EBAT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/
+ //8A9PnysluzLf8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/YLU1/////4cAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAACSAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yMjI//T
+ 09P/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/62trf8MDAz/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///2KQy3L/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/rNiY/1myK/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/1evM4v///wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAkgAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8jIyP/09PT/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/7a2tv8MDAz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/
+ //8fyOW78UCnCf8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/3S/T//+
+ //6totOK/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+UzXj/////QwAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAQAAAJIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/IyMj/9PT0//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7a2tv8M
+ DAz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Au/37L1VsCX/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9HqhP/4vHb1////wfj8t7QQagK/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/1GuIP/6/PmgAAAAAAAAAAAAAAAAAAAAAAAAAAEAAACSAAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/yMjI//T09P/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7a2tv8MDAz/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/
+ //9whsdm/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/6jWk/7/
+ //89AAAAAP///29zvk7/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/8Xjt/L/
+ //8LAAAAAAAAAAAAAAABAAAAkgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8jIyP/09PT/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/7W1tf8KCgr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M7reqfg/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9muDz/+/36mAAAAAAAAAAA////FLreqfk/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/gMRd/////14AAAAAAAAAAQAAAJIAAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/IyMj/9PT0//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7CwsP8KCgr/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///w7f
+ 79jcSasV/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/QqgM/9bszeX/
+ //8PAAAAAAAAAAAAAAAA9fr0rUusGf8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9E
+ qQ//6/XowgAAAAEAAACSAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yMjI//T09P/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/7CwsP8KCgr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A9vv1qWS3Of8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+Yz33/////UgAAAAAAAAAAAAAAAAAAAAD///9Mjcpv/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+q15P/Pz8/qQAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8jIyP/09PT/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7CwsP8K
+ Cgr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///2iP
+ y3L/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/WrMs//X6867/
+ //8AAAAAAAAAAAAAAAAAAAAAAP///wTS6cjnP6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/1+1M/+SkpL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/IyMj/9PT0//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7CwsP8KCgr/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///83vN+s9z+nCP8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/0CnCP/J5bzw////GwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///opf
+ tTP/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/8LZuf8JCQn/AAAA/wAAAP8A
+ AAD/AAAA/yMjI//T09P/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/7CwsP8KCgr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////GNfsz+RH
+ qhP/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/j8px/////2MA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////KajWkf8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/iMho/1tbW/8AAAD/AAAA/wAAAP8iIiL/0tLS/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7CwsP8KCgr/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAP///wbs9ujEWLIp/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/1qzLf/z+fGz////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA6PTkx0KoDf8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9IqhT/tbu0/wAAAP8A
+ AAD/IiIi/9LS0v/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/7CwsP8KCgr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+v36mXK9TP8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9BqAv/z+jE7P///xgA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9necFV/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+w2Zz/JSUl/yIiIv/S0tL/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7CwsP8K
+ Cgr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAP///22UzXj/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/5nPfv////9VAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAP///w/A4bH2P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/2a4PP+l
+ paX/0tLS/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7Gxsf8KCgr/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9Mrtma/D+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9htjb/9/v2pQAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPn8+KRPrh7/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/9Ppyv/s7Oz/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/7Gxsf8KCgr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAA////MsXjtvNCqAz/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/RKkO/9fszuT///8RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAA////QJjPff8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/hMZj//Ly8v/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7Gxsf8KCgr/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///x3X7M7lSKsU/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+j1Iz+////SAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGhoYB0eDL5kGoCv8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9FqRD/6vPn/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/7Gxsf8KCgr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAD///8S5fLf01SwJP8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/abpB//v9+pcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAQAAAJJ0dHT/d8BS/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/+k1Iz/7+/v/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7Gxsf8M
+ DAz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////DOv158ddtDD/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0mrFv/f8Njb////DAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAACSAAAA/xMTE/++
+ 27H/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/1axJv/19vT/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7e3t/8MDAz/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA4AAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAP///wfx+O66Zrg8/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/ut+q+P///zMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAABAAAAkgAAAP8AAAD/AAAA/5ydnP9Ysir/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/8Lis//s7Oz/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/7e3t/8NDQ3/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAyAAAAAUAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8D9fr0rW+8SP8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/4rIbP////9uAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAJIAAAD/AAAA/wAAAP8A
+ AAD/NTU1/6bVj/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/cr5M//T09P/r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7e3t/8NDQ3/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA////Afn8+Z15wVT/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/9gtTT/9Przr////wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAEAAACSAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/u8K4/0WpEP8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9Apwj/3O3V/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/7i4uP8NDQ3/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD0AAAAGgAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD8/vyNhMZk/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/SasV/9vu1OD///8SAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAkgAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP9ra2v/hcdl/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+K
+ yWv/8vLy/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7Gxsf8F
+ BQX/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA/v/+e5DLdP8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/0CnCf/A4bH1////MgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAQAAAJIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ISEh/9LS0v/U6cr/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0WqEf/q8+f/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/4GBgf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOUA
+ AAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///2qd0YT/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/n9KH/////1oAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAACSAAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/yEhIf/R0dH/6+vr//X19f9luDz/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/6DSh//v7+//6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/5eXl/x0dHf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/
+ //9aqdeT/T+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/3zCWP/9/v2KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAABAAAAkgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8hISH/0dHR/+vr6//r6+v/7e3t/7Tcof8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/UK4e//P18v/r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/cXFx/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAAcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////SbbdpPpApwn/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9itjf/8vjvuP///wMAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAJIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/ISEh/9HR0f/r6+v/6+vr/+vr6//r6+v/8vXw/0ysGf8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/tNyi/+3t7f/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6/+ysrL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACaAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///znD
+ 47T0QqgM/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/VbAl/+bz4NH///8OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
+ AACSAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yEhIf/R0dH/6+vr/+vr6//r6+v/6+vr/+vr6//w
+ 8PD/lM14/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9gtTT/9fb1/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/9HR0f8BAQH/AAAA/wAAAP8A
+ AAD/AAAA/wAAAL4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8rzujC7UaqEf8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0usGP/Z7dHi////GwAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAkgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8h
+ ISH/0dHR/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//h79v/QagK/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB//J5bz/7Ozs/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/3t7e/wQEBP8AAAD/AAAA/wAAAP8AAAD/AAAAuwAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Ct/v19xL
+ rBn/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9E
+ qQ7/yua98P///ywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAJIA
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ISEh/9HR0f/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr//Pz8/99wln/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/3G9S//0
+ 9PT/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//Hx8f/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAACvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+//6DbrxH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/QagL/7vfq/j///9CAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAACSAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yEhIf/R
+ 0dH/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/7Ozs/9LpyP8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/9XqzP/s7Oz/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/56env8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIoAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANrt09U/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0CnCf+0
+ 3KL6////TwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAkgAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8hISH/0dHR/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/9fX1/2u6Q/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/fcNb//Pz8//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//o6Oj/QEBA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5vPix0KoDP8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwj/rdmZ/P///1gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAQAAAJIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ISEh/9HR0f/r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//t7e3/weGy/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9BqAr/3+7Z/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6Ojo/1JSUv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAAhAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/
+ //9JsNqc/EGoC/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/6bVj/7/
+ //9hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAACSAAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/yEhIf/R0dH/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//19vX/WrMt/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/+JyGr/8vLy/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+jo6P9TU1P/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAAyQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9UzefB7me4Pv8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/0GoC/+s2Jf9////aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAABAAAAkgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8gICD/0dHR/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+7u7v+v
+ 2Zv/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0SpD//n8eL/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//o6Oj/U1NT/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABeAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAD///8W/v/+h8/oxOmUzXj/Zbg7/0OoDf8/pwf/P6cH/z+nB/9OrRz/wOGx9v///1EA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAJIAAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/ICAg/9HR0f/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr//H18P9OrRv/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/5bOev/x8fH/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6Ojo/1NTU/8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA2AAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////A////z7/
+ //96+/37p+n05sDV683Z0+rJ3PX686v///8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAEAAACSAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yAgIP/R0dH/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/8PDw/53RhP8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/SasV/+zz6v/r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+jo6P9TU1P/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAABEAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAkgAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8gICD/0dHR/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6fLm/0WpEP8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/nNGC//Dw8P/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//o6Oj/U1NT/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAAiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAQAAAJIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ICAg/9DQ0P/r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//y8vL/i8lr/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9K
+ rBf/7fTr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6Ojo/1RUVP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKcAAAACAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAACSAAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/yAgIP/Q0ND/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//e7tf/QKcJ/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+f0ob/8PDw/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+jo6P9UVFT/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAACrAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAABAAAAkgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8gICD/0NDQ/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr//T09P94wFT/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/0usGP/u9O3/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//o
+ 6Oj/VFRU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAqwAAAAUAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/ICAg/9DQ0P/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/7Ozs/9Doxf8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/6HTif/w8PD/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6Ojo/1RUVP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAKsAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AABdAAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yAgIP/Q0ND/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/9fX1/2+8SP8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/Ta0a/+/07v/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+jo6P9U
+ VFT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACrAAAABQAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8g
+ ICD/0NDQ/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//s
+ 7Oz/zObA/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/pNSM/+/v7//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//o6Oj/VFRU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAAqwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAUAAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/ICAg/9DQ0P/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//19fX/bLpE/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9MrRr/7vTs/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6Ojo/1RUVP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKsAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8n
+ Jyf/1tbW/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+zs7P/J5bz/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+d
+ 0YT/8PDw/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+jo6P9UVFT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AACrAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAQAAAOMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8oKCj/1tbW/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr//X19f9ouT//P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0mrFv/r8+j/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//o6Oj/VVVV/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAqwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcwAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8nJyf/1tbW/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/7e3t/8XjuP8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/5bOe//x8fH/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6Ojo/1VVVf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKwA
+ AAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAACAAAAqgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8nJyf/1tbW/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/9fb1/2W4O/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/RqoS/+fy4//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+jo6P9VVVX/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACsAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAAA/QAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8nJyf/1tbW/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//t7e3/wuKz/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/j8tx//Ly8v/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//o6Oj/VVVV/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArAAAAAUA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAOQAAAPEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8n
+ Jyf/1tbW/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//1
+ 9vX/YrY3/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9EqQ7/4/De/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6Ojo/1VVVf8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAKwAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkAAADxAAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8nJyf/1tbW/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+3t7f+/4K//P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+ExmP/8/Pz/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+jo6P9VVVX/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACsAAAABQAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAA5AAAA8QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8nJyf/1tbW/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr//X29f9ftTP/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0CnCf/Y
+ 68//7Ozs/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//o6Oj/VVVV/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAArAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAPEAAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8RERH/Ghoa/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8nJyf/1tbW/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/7e3t/7vfq/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/3K+TP/19fX/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6Ojo/1VVVf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKwAAAAFAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAADkAAADxAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ERER/2RkZP9ra2v/Gxsb/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8nJyf/1tbW/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/9fb0/160Mv8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/8nlvP/t7e3/6+vr/+vr6//r6+v/6+vr/+np6f9VVVX/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAACsAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5AAAA8QAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/xEREf9kZGT/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8n
+ Jyf/1tbW/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//t7e3/v+Cw/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/YrY3//X29f/r6+v/6+vr/+vr6//p
+ 6en/VVVV/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArAAAAAUAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAOQAAAPEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8RERH/ZGRk/3Fxcf9xcXH/cXFx/3Fxcf9r
+ a2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8nJyf/1tbW/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//19vX/Zbg7/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/uN2m/+7u7v/r6+v/6enp/1ZWVv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAKwAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkAAADxAAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/ERER/2RkZP9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8nJyf/1tbW/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+3t7f/I
+ 5Lv/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9WsSf/8vXx/+np6f9W
+ Vlb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACsAAAABQAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAA5AAAA8QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xEREf9kZGT/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8mJib/1tbW/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr//X19f9tu0b/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+i1Ir/fn5+/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAArAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOQAAAPEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8R
+ ERH/ZGRk/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8mJib/1dXV/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/7Ozs/9Doxf8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0irFP/B
+ y73/BQUF/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKwAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkA
+ AADxAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ERER/2RkZP9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8m
+ Jib/1dXV/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/9PT0/3bAUv8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/4bHZv9sbGz/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AACsAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5AAAA8QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xEREf9k
+ ZGT/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9r
+ a2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8mJib/1dXV/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//s7Oz/2+zT/0GoC/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/QKcJ/8TZu/8SEhL/AAAA/wAAAP8AAAD/AAAArAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOQAAAPEA
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8RERH/ZGRk/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8mJib/1dXV/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//y8vL/iMho/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/a7pC/5GRkf8AAAD/AAAA/wAAAKwA
+ AAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAADkAAADxAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ERER/2RkZP9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8mJib/1dXV/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//m8eL/RqoS/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/t9un/yoqKv8AAACsAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6AAAA8QAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/xEREf9kZGT/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8mJib/1dXV/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr//Hx8f+a
+ 0ID/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9VsSb/xsrE3wAAAAUA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAOgAAAPEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8RERH/ZGRk/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8m
+ Jib/1dXV/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+/07f9Prh3/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+a0ID/////TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADoAAADxAAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/ERER/2RkZP9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9r
+ a2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8mJib/1dXV/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/7+/v/63YmP8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0SpDv/d
+ 79bd////CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAA6AAAA8QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xEREf9kZGT/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8mJib/1dXV/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//p6en/ycvI/120MP8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/3O+Tv////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOgAAAPEAAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8RERH/ZGRk/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf+mpqb/19fX/9PT0/+Z
+ mZn/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8lJSX/1dXV/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6enp/1dXV/8fHx//vtux/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/73grff///8jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAADoAAADxAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ERER/2RkZP9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9ycnL/ycnJ//////////////////////+fn5//cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8lJSX/1dXV/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+np6f9XV1f/AAAA/wAAAP+CgoL/dr9R/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/VbAl//P58bT///8AAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6AAAA8QAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/xEREf9kZGT/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cnJy/8nJyf//////////////////
+ /////////+Hh4f9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8l
+ JSX/1dXV/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//p
+ 6en/WFhY/wAAAP8AAAD/AAAA/wsLC//F1L7/Q6gN/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/mM99/////08AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAKQAAAO8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8RERH/ZGRk/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Jycv/Jycn/////////////////////////////////6+vr/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9r
+ a2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8lJSX/1dXV/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6enp/1hYWP8AAAD/AAAA/wAAAP8AAAD/AAAA/11dXf+S
+ zHX/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9DqQ3/2e3R4v///w0A
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAADIAAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/ERER/2RkZP9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ycnL/ycnJ////////////////////////
+ ///////////////CwsL/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8lJSX/1dXV/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+np6f9Y
+ WFj/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AgIC/7vBuP9NrRv/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9qukH//P38kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAQgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xEREf9kZGT/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/7Ozs///////////////////////////////////////4+Pj/3h4eP9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8lJSX/1NTU/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//p6en/WFhY/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/RkZGvbDanPw/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+u
+ 2Zr8////NgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJAAAA/wAAAP8AAAD/AAAA/wAAAP8R
+ ERH/ZGRk/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/8PDw////////////////////////
+ /////////+Pj4/97e3v/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8lJSX/1NTU/+vr6//r6+v/6+vr/+vr6//r6+v/6enp/1hYWP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKwAAAAF/P37lGa4PP8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0qsFv/m8+DQ////BAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAALEAAAD/AAAA/wAAAP8AAAD/AQEB/11dXf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf/39/f////////////////////////////j4+P/e3t7/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8l
+ JSX/1NTU/+vr6//r6+v/6+vr/+np6f9YWFj/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AACsAAAABQAAAAD///8R0urI6UCoCv8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/3zCWf////93AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqQAAAP8AAAD/AAAA/wAAAP8A
+ AAD/Tk5O/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/8rKyv//////////////////
+ ////4+Pj/3t7e/9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9r
+ a2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8lJSX/1NTU/+vr6//p6en/WVlZ/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArAAAAAUAAAAAAAAAAAAAAAD///9gi8ls/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/8DhsPb///8jAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAB8AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/enp6/9LS0v/+/v7//v7+/8/Pz/97e3v/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8lJSX/0tLS/1lZWf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKwA
+ AAAFAAAAAAAAAAAAAAAAAAAAAP///wHr9ujFTa0a/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/U7Ak//D37bz///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsAAAD9AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3l5ef94
+ eHj/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8LCwv/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACsAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zCw
+ 2p38P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/ishr/////2cA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/25ubv8iIiL/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArAAAAAUA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz9+5JouT//P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwj/x+W68f///x4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAANMA
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3V1df9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9ubm7/IiIi/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAKwAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA////Dtjsz+RDqA3/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9W
+ sSf/8fjvuP///wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8F
+ BQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/42Njf/i4uL//v7+//Dw8P+jo6P/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/bm5u/yIiIv8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACsAAAABQAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////UZjPff8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+Nym//////YwAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf+T
+ k5P/+Pj4//////////////////7+/v+QkJD/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/25ubv8iIiL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAArAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAD///8A9PnysFiyKv8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/0CnCf/K5r3w////HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAANUAAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/k5OT//j4+P///////////////////////////7+/v/9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ubm7/IiIi/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP4AAABuAAAAqgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKsAAAAFAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8dxuS48j+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/1iyKv/z+fC1////AQAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/5OTk//4
+ +Pj/////////////////////////////////u7u7/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/bm5u/yIiIv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAAagAAAAAAAAACAAAAeAAAAOoA
+ AAD/AAAA/wAAAOkAAAB4AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9vgsVh/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/43Kb/////9lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAANUA
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf+RkZH/+Pj4//////////////////////////////////r6+v+H
+ h4f/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/25ubv8iIiL/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/gAAAGoAAAAAAAAAAAAAAAAAAAAAAAAAAwAAACoAAAAoAAAAAwAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wPp
+ 9eXJTq0c/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cI/8bkuPL/
+ //8iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8F
+ BQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/dnZ2/+7u7v//
+ ///////////////////////////////8/Pz/n5+f/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9u
+ bm7/IiIi/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAABqAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yy53qj5P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/U7Aj/+326sL///8CAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf+SkpL//////////////////////////////////Pz8/5+fn/9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/bm5u/yIiIv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD+AAAAagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAP///315wVb/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/gcRg/////3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAANUAAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/4uLi///
+ //////////////////////////z8/P+fn5//cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/25ubv8i
+ IiL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAGoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Bebz4c9LrBj/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/vN+r+P///ywAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cnJy/9vb2//////////////////8/Pz/n5+f/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ubm7/IiIi/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4A
+ AABqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAA////MbTbofo/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/9NrRv/5/Pizv///wYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAANUA
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/eXl5/7+/v//j4+P/1NTU/4+Pj/9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/bm5u/yIiIv8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAAagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+hHS+T/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/90vk///f79igAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8F
+ BQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/25ubv8iIiL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAGkA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8H5PLf00usGP8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+q15T9////QgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ubm7/IiIi/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAABpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/
+ //8xt92m+T+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0WpD//Y
+ 7M/k////EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ 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
+ AAD/AAAA/wAAAP4AAABpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////GNPqyOlDqQ3/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/n9KG/////1MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9x
+ cXH/bm5u/yIiIv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAAaQAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA////SqTUjf4/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9B
+ qAv/y+a/7////yEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAANUA
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/UlJS/2tra/8iIiL/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/gAAAGkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/P37km+8Sf8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9TryL/6vXmyP///wUAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8B
+ AQH/AgIC/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAABpAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAD///8I5fLf0kytGv8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/91v1H//f79iwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD+AAAAaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8sxOO29EKoC/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+p15T9////PQAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAANUAAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAGkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9Nut6q+UaqEP8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/0mrFv/y+fGyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0A
+ AABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/
+ //882u3S4XK9TP8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/87owuIA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAALAA
+ AAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADpAAAATwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8K////etTry+WPy3H/VbAl/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9CqAz/3/DZ0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADoAAACRAAAAugAAALoAAACvAAAAaAAAAA0A
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAA////Bf///0f+/v6T3+/azr7grfqj1Iv/j8tx/4XGZv+AxF7/j8tx/87ow/D/
+ //9JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA////B////yT///8/////Tf///1T///9C////CwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ 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
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////
+ ///////////////////////////////////////////////////////////4AP//////////////////
+ 8AA//////////////////+AAP//////////////////AAD//////////////////wAAf////////////
+ /////4AAH/////////////////+AAB///4Af////////////AAAP//wAB////////////gAAD//4AAH/
+ //////////4AAA//8AAA///////////8AAAH/8AAAH//////////+AAAB/+AAAA///////////gAAAf/
+ AAAAH//////////wAAAD/gAAAA//////////4AAAA/wAAAAH/////////+AAAAH4AAAAA//////////A
+ AAAB8AAAAAH/////////gAAAAeAAAAAA/////////4AAQADAAAAAAH////////8AAMAAgAAAAAA/////
+ ///+AADgAAAAAAAAH////////AAB4AAAAAAAAA////////wAAeAAAAAAAAAH///////4AAPwAAAAAAAA
+ A///////8AAH8AAAAAAAAAH//////+AAB/gAAAAAAAAA///////gAA/4AAAAAAAAAH//////wAAf+AAA
+ AAAAAAA//////4AAP/wAAAAAAAAAH/////8AAD/8AAAAAAAAAA/////+AAB//AAAAAAAAAAH/////AAA
+ //gAAAAAAAAAA/////gAAP/wAAAAAAAAAAH////wAAH/4AAAAAAAAAAA////4AAD/8AAAAAAAAAAAP//
+ /8AAA/+AAAAAAAAAAAB///+AAAf/AAAAAAAAAAAAf///gAAP/gAAAAAAAAAAAD///wAAH/wAAAAAAAAA
+ AAA///4AAD/4AAAAAAAAAAAAP//8AAA/8AAAAAAAAAAAAD//+AAAf+AAAAAAAAAAAAA///AAAP/AAAAA
+ AAAAAAAAP//gAAH/gAAAAAAAAAAAAD//4AAD/wAAAAAAAAAAAAA//+AAB/4AAAAAAAAAAAAAP//gAA/8
+ AAAAAAAAAAAAAD//4AAf+AAAAAAAAAAAAAB///AAP/AAAAAAAAAAAAAAf//4AH/gAAAAAAAAAAAAAH//
+ /gD/wAAAAAAAAAAAAAD//////4AAAAAAAAAAAAAB//////8AAAAAAAAAAAAAAf/////+AAAAAAAAAAAA
+ AAP//////AAAAAAAAAAAAAAH//////gAAAAAAAAAAAAAD//////4AAAAAAAAAAAAAB//////8AAAAAAA
+ AAAAAAA///////AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAP//////8AAAAAAAAAAAAAH///////gA
+ AAAAAAAAAAAD///////4AAAAAAAAAAAAB////////AAAAAAAAAAAAA////////gAAAAAAAAAAAAf////
+ ///wAAAAAAAAAAAAP///////4AAAAAAAAAAAAH///////8AAAAAAAAAAAAD///////+AAAAAAAAAAAAB
+ ////////AAAAAAAAAAAAA////////gAAAAAAAAAAAAf///////wAAAAAAAAAAAAP///////4AAAAAAAA
+ AAAAH///////8AAAAAAAAAAAAD///////+AAAAAAAAAAAAB////////AAAAAAAAAAAAA////////gAAA
+ AAAAAAAAAf///////wAAAAAAAAAAAAP///////4AAAAAAAAAAAAH///////8AAAAAAAAAAAAB///////
+ +AAAAAAAAAAAAAP///////AAAAAAAAAAAAAD///////gAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAD/
+ /////4AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAH/////+AAAAAAAAAAAAAAB//////gAAAAAAAAAA
+ AAAAP/////4AAAAAAAAAAAAAAB/////+AAAAAAAAAAAAIAAf/////gAAAAAAAAAAAHAAD/////4AAAAA
+ AAAAAADwAAf////+AAAAAAAAAAAB+AAH/////wAAAAAAAAAAA/wAA/////8AAAAAAAAAAAf8AAH/////
+ gAAAAAAAAAAP/gAB/////8AAAAAAAAAAH/4AAP/////gAAAAAAAAAD//AAB/////8AAAAAAAAIB//4AA
+ f/////gAAAAAAAHh//+AAD/////8AAAAAAAD////wAAf/////gAAAAAAB////+AAH/////8AAAAAAA//
+ ///gAA//////gAAAAAAf////8AAH/////8AAAAAAP/////gAB//////gAAAAAH/////4AAP/////8AAA
+ AAD//////AAB//////gAAAAB//////4AAP/////8AAAAA//////+AAD//////gAAAAf//////wAAf///
+ //8AAAAP//////+AAD//////gAAAH///////gAA//////8AAAD///////8AAH//////gAAB////////g
+ AA//////8AAA////////8AAH//////gAAf////////AAB//////8AAP////////4AAP//////gAH////
+ /////AAD//////8AD/////////4AA///////gB//////////AAP//////+A//////////8AD////////
+ ///////////8B/////////////////////////////////////////////////////////////////8o
+ AAAAQAAAAIAAAAABACAAAAAAAABAAAAjLgAAIy4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8F////N/7//lD///9N////Nf///woAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8QnNGB1laxJ/9CqAz/RakQ/1eyKP98
+ w1f1xuS3bwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvOCrk0GoCv8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/4XHY+n///8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA+Pv3MGa5O/w/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9Qrx//9vv1RQAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAMAAAAFYAAABRAAAAJAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ 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
+ 6+v/6+vr/5aWlv8DAwP/AAAA/wAAAP8AAAC9AAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////B6XVjcJApwj/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/9Zsyr/4vHcTwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALzbrYo/pwj/P6cH/z+nB/8/
+ pwf/P6cH/6nVk//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/lpaW/wMDA/8AAAD/AAAA/wAAAL0AAAAKAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////A7XcoatE
+ qQ7/P6cH/z+nB/8/pwf/P6cH/z+nB/9CqAv/t92knwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUm
+ JibjbbpE/z+nB/8/pwf/P6cH/z+nB/9etTD/7u/u/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/+YmJj/AwMD/wAAAP8A
+ AAD/AAAAuwAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA////Ab3grJtJqxT/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/kcxz2f///w0AAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACUAAADjAAAA/3SWY/8/pwf/P6cH/z+nB/8/pwf/P6cH/8XguP/r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/5qamv8DAwP/AAAA/wAAAP8AAACTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAA////AMTjtYpNrRr/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/bbxE9/X69DAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAADjAAAA/wAAAP9JS0n/Uq8h/z+nB/8/pwf/P6cH/z+nB/95
+ wVT/7e3t/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/mJiY/wEBAf8AAAD/AAAA/AAAACkAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMvnvnlTsCL/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/V7In/9fszmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAADjAAAA/wAAAP8ICAj/rKys/5vPgf8/
+ pwf/P6cH/z+nB/8/pwf/QagJ/9no0v/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/9hYWH/AAAA/wAAAP8A
+ AACIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANPqyGdasyr/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/SKsT/8DisJEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAADjAAAA/wAAAP8I
+ CAj/rKys/+vr6//g6tv/QqgM/z+nB/8/pwf/P6cH/z+nB/+Nym7/7Ozs/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/vr6+/wAAAP8AAAD/AAAAwwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzv1FRi
+ tjX8P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/QqgL/6/amrP///8EAAAAAAAAAAAAAAAAAAAAAAAAACUA
+ AADjAAAA/wAAAP8ICAj/rKys/+vr6//r6+v/7Ozs/33DWf8/pwf/P6cH/z+nB/8/pwf/R6sS/+Xs4v/r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+Hh4f8BAQH/AAAA/wAAAN4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAP7//iNyvkv2P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/QKcI/6DThsr///8LAAAAAAAAAAAA
+ AAAAAAAAAAAAACUAAADjAAAA/wAAAP8ICAj/rKys/+vr6//r6+v/6+vr/+vr6//L4sD/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/+f0YX/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//Pz8//AAAA/wAAAP8AAADOAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg8NpnQKcI/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/5fPe9P/
+ //8UAAAAAAAAAAAAAAAAAAAAAAAAACUAAADjAAAA/wAAAP8ICAj/q6ur/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/7u7u/2q6Qf8/pwf/P6cH/z+nB/8/pwf/T64d/+ru6P/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//q6ur/X19f/wAAAP8A
+ AAD/AAAAnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Ep7ShM9JqxX/P6cH/z+nB/8/
+ pwf/QKcI/5TNd9j///8YAAAAAAAAAAAAAAAAAAAAAAAAACUAAADjAAAA/wAAAP8ICAj/q6ur/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6/+73Kv/P6cH/z+nB/8/pwf/P6cH/z+nB/+p1ZP/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//q
+ 6ur/Y2Nj/wAAAP8AAAD/AAAA/wAAAEoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/
+ //8F4fHaXZ/Tha6KyWnZhMZh7ajXkbT///8UAAAAAAAAAAAAAAAAAAAAAAAAACUAAADjAAAA/wAAAP8I
+ CAj/q6ur/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/7u/t/1qzK/8/pwf/P6cH/z+nB/8/
+ pwf/V7In/+3u7P/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//q6ur/ZGRk/wAAAP8AAAD/AAAA/wAAAMYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUA
+ AADjAAAA/wAAAP8ICAj/q6ur/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/+r
+ 1pX/P6cH/z+nB/8/pwf/P6cH/z+nB/+x2J3/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//q6ur/ZGRk/wAAAP8AAAD/AAAA/wAAAOkAAAAjAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACUAAADjAAAA/wAAAP8ICAj/q6ur/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6u7o/06tG/8/pwf/P6cH/z+nB/8/pwf/WrMr/+3u7f/r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//q6ur/ZGRk/wAAAP8AAAD/AAAA/wAAAOoA
+ AAAtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAADjAAAA/wAAAP8ICAj/q6ur/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/+d0IL/P6cH/z+nB/8/pwf/P6cH/z+nB/+z
+ 2aD/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//q6ur/ZGRk/wAAAP8A
+ AAD/AAAA/wAAAOoAAAAtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6AAAA/wAAAP8ICAj/q6ur/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/5u3j/0qsFv8/
+ pwf/P6cH/z+nB/8/pwf/XLQt/+3u7P/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//q
+ 6ur/ZGRk/wAAAP8AAAD/AAAA/wAAAOoAAAAtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAP8A
+ AAD/CgoK/7CwsP/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6/+Zzn7/P6cH/z+nB/8/pwf/P6cH/z+nB/+w2Jz/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//q6ur/ZGRk/wAAAP8AAAD/AAAA/wAAAOoAAAAtAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAB0AAADqAAAA/wAAAP8KCgr/sLCw/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/5ezh/0mrFP8/pwf/P6cH/z+nB/8/pwf/V7En/+zu6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//q6ur/ZGRk/wAAAP8AAAD/AAAA/wAAAOoAAAAuAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAywAAAP8AAAD/AAAA/woKCv+wsLD/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/+WzXr/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/+q1ZT/6+vr/+vr6//r6+v/6+vr/+vr6//q6ur/ZWVl/wAAAP8AAAD/AAAA/wAAAOoA
+ AAAuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAxgAAAP8AAAD/AAAA/wAAAP8A
+ AAD/CgoK/6+vr//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/4+vf/0eqEv8/pwf/P6cH/z+nB/8/pwf/Ua8f/+jt5v/r6+v/6+vr/+vr6//q6ur/ZWVl/wAAAP8A
+ AAD/AAAA/wAAAOoAAAAuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAxgAAAP8A
+ AAD/BAQE/z8/P/8HBwf/AAAA/wAAAP8KCgr/r6+v/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+zs7P+TzHb/P6cH/z+nB/8/pwf/P6cH/z+nB/+cz4H/6+vr/+vr6//q
+ 6ur/ZWVl/wAAAP8AAAD/AAAA/wAAAOoAAAAuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAOAAAAxgAAAP8AAAD/BAQE/1NTU/9xcXH/WVlZ/wcHB/8AAAD/AAAA/woKCv+vr6//6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/4+zf/0mrFP8/pwf/P6cH/z+nB/8/
+ pwf/SKsT/+Hr3f/q6ur/ZWVl/wAAAP8AAAD/AAAA/wAAAOoAAAAuAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAOAAAAxgAAAP8AAAD/BAQE/1NTU/9xcXH/cXFx/3Fxcf9ZWVn/BwcH/wAAAP8A
+ AAD/CgoK/6+vr//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/+a
+ z3//P6cH/z+nB/8/pwf/P6cH/z+nB/+KyGr/b29v/wAAAP8AAAD/AAAA/wAAAOoAAAAuAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAxgAAAP8AAAD/BAQE/1NTU/9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/1lZWf8HBwf/AAAA/wAAAP8KCgr/r6+v/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/5+3k/02tGv8/pwf/P6cH/z+nB/8/pwf/QagK/26AZf8AAAD/AAAA/wAAAOoA
+ AAAuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAxgAAAP8AAAD/BAQE/1NTU/9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/WVlZ/wcHB/8AAAD/AAAA/woKCv+vr6//6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/+l047/P6cH/z+nB/8/pwf/P6cH/z+nB/9s
+ uEP/KSkp/wAAAOoAAAAuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAxgAAAP8A
+ AAD/BAQE/1NTU/9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ZWVn/BwcH/wAAAP8A
+ AAD/CQkJ/6+vr//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+7q/1iyKP8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/32ebPcAAAAuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAOAAAAxwAAAP8AAAD/BAQE/1NTU/9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/1lZWf8HBwf/AAAA/wAAAP8JCQn/r6+v/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6/+22qT/P6cH/z+nB/8/pwf/P6cH/z+nB/9Xsif/5/PhTAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAOAAAAxwAAAP8AAAD/BAQE/1NTU/9xcXH/cXFx/3Fxcf+YmJj/k5OT/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/WVlZ/wcHB/8AAAD/AAAA/wkJCf+urq7/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//q6ur/ioqK/2a3PP8/pwf/P6cH/z+nB/8/pwf/P6cH/43Kbd3/
+ //8JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAxwAAAP8AAAD/BAQE/1NTU/9xcXH/cXFx/3Fxcf/B
+ wcH///////////+YmJj/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ZWVn/BwcH/wAAAP8A
+ AAD/CQkJ/66urv/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//q6ur/ZmZm/wAAAP9yiGf/QKcI/z+nB/8/
+ pwf/P6cH/z+nB/9EqQ//x+W5gQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuAAAAP8AAAD/BAQE/1NTU/9x
+ cXH/cXFx/3Fxcf/BwcH/////////////////pKSk/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/1lZWf8HBwf/AAAA/wAAAP8JCQn/rq6u/+vr6//r6+v/6+vr/+vr6//q6ur/ZmZm/wAAAP8A
+ AAD/GBgY/3a4VP8/pwf/P6cH/z+nB/8/pwf/P6cH/268Rvj8/vwnAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAAP8A
+ AAD/BAQE/1NTU/9xcXH/cXFx/3Fxcf+hoaH/////////////////0NDQ/3Nzc/9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/WVlZ/wcHB/8AAAD/AAAA/wkJCf+urq7/6+vr/+vr6//q
+ 6ur/ZmZm/wAAAP8AAAD/AAAA/wAAAOqfspeVSasU/z+nB/8/pwf/P6cH/z+nB/8/pwf/odSIwP///wEA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAFYAAAD/AAAA/ysrK/9xcXH/cXFx/3Fxcf9xcXH/qamp////////////0NDQ/3Nzc/9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ZWVn/BwcH/wAAAP8A
+ AAD/CQkJ/66urv/r6+v/ZmZm/wAAAP8AAAD/AAAA/wAAAOoAAAAu////BJXOeNI/pwf/P6cH/z+nB/8/
+ pwf/P6cH/06uHP/Y7c9kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqAAAA/wAAAP8BAQH/SEhI/3Fxcf9xcXH/cXFx/3Nzc/+v
+ r6//rq6u/3Nzc/9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ 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
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8hut+pjIzKbNh3wFH+Zbg5/2O3N/+p15PDAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////C////yP/
+ //8l////AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////////////8D///////
+ //gH////////+AP////////wA/8D/////+AD/AD/////4AH4AH/////AAfAAP////4AB4AAf////gADA
+ AA////8AAIAAB////gCAAAAD///+AIAAAAH///wBwAAAAP//+AHAAAAAf//wA8AAAAA//+AH4AAAAB//
+ wA/AAAAAD/+AD4AAAAAP/wAfAAAAAAf/AD4AAAAAB/4AfAAAAAAH/AB4AAAAAAf4APAAAAAAB/gB4AAA
+ AAAH+APAAAAAAAf8B4AAAAAAB///AAAAAAAP//4AAAAAAB///AAAAAAAP//8AAAAAAB///wAAAAAAP//
+ /AAAAAAB///8AAAAAAP///gAAAAAB///8AAAAAAP///gAAAAAB///8AAAAAAP///gAAAAAB///8AAAAA
+ AP///gAAAAAB///8AAAAAAH///gAAAAAAP//8AAAAAAA///gAAAAAAB//+AAAAAAAD//4AAAAAAAP//g
+ AAAAAMAf//AAAAAB4A//8AAAAAPgD//4AAAAB/AH//wAAACP8AP//gAAAf/4A///AAAD//wB//+AAAf/
+ /AD//8AAD//+AP//4AAf//8Af//wAD///wA///gAf///gB///AD////AH//+Af///+Af//8D////8B//
+ ///////+H///////////KAAAADAAAABgAAAAAQAgAAAAAAAAJAAAIy4AACMuAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAADX7M0rjcpuoX/EW7yExmKynNGBh+bz4R4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAP///wd8w1jTP6cH/z+nB/8/pwf/P6cH/47LbqYAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK/amnVDqQz/P6cH/z+nB/8/pwf/P6cH/2m6P/H/
+ //8OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwAAAB0AAAAfwAAAFEAAAANAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8fjuHmS4OPI/pwf/P6cH/z+nB/8/
+ pwf/P6cH/0SpDv/F5LdWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuAAAAywAAAP8AAAD/AAAA/wAAAP8A
+ AADpAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8Bj8txsT+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+JyGiuAAAAAAAAAAAAAAAAAAAAAAAAADcAAADtAAAA/wYGBv87
+ Ozv/RkZG/xISEv8AAAD/AAAA/QAAAHYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/
+ 4a5aS6wX/j+nB/8/pwf/P6cH/0mrFP8/pwf/P6cH/z+nB/9jtzf29frzFgAAAAAAAAAAAAAANwAAAPAA
+ AAD/GRkZ/8XFxf/r6+v/6+vr/+Hh4f9WVlb/AAAA/wAAAP4AAAB3AAAAAQAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAOz25xxpuj/qP6cH/z+nB/8/pwf/RKkN/77graxMrRj/P6cH/z+nB/9BqAn/tNyhagAAAAAA
+ AAA4AAAA7gAAAP8aGhr/xsbG/+vr6//r6+v/6+vr/+vr6//n5+f/W1tb/wAAAP8AAAD9AAAAdwAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAA////Ao7Lb7k/pwf/P6cH/z+nB/8/pwf/gsVgy////wh3wFDbP6cH/z+nB/8/
+ pwf/gMRcyQAAADcAAADuAAAA/xkZGf/Gxsb/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6Ojo/1dXV/8A
+ AAD/AAAA/gAAAHYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8Ar9qafESpDv8/pwf/P6cH/z+nB/9asyv42+7SMgAAAACl
+ 1Y19QKcI/z+nB/8/pwf/UrAh/y8xL/MAAAD/GRkZ/8jIyP/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+jo6P9YWFj/AAAA/wAAAP4AAAB3AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADG5LdKVbEl+j+nB/8/pwf/P6cH/0OpDP+n
+ 1o+E////AAAAAADx+O0iW7Ms+j+nB/8/pwf/P6cH/1p5Sv8aGhr/xsbG/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//n5+f/WVlZ/wAAAP8AAAD9AAAAdwAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODw2SlmuTvsP6cH/z+nB/8/
+ pwf/P6cH/3/EXM3+//4IAAAAAAAAAAD///8AhMZivD+nB/8/pwf/P6cH/2iwQv/IyMj/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6Ojo/1dXV/8AAAD/AAAA/gAAAHYA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9PnxF3W/T90/
+ pwf/P6cH/z+nB/8/pwf/XbQv9+Lx3C0AAAAAAAAAAAAAAAAAAAAAnbOTcESpDf8/pwf/P6cH/0OpDP/Y
+ 5tH/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+jo6P9Z
+ WVn/AAAA/wAAAP4AAAB3AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD3
+ +/YQgsVfyz+nB/8/pwf/P6cH/z+nB/9HqxL/sNqacwAAAAAAAAAAAAAAAAAAAAAAAAA4BwcH7mquRv8/
+ pwf/P6cH/z+nB/+Ty3b/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//n5+f/W1tb/wAAAP8AAAD9AAAAZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAP3+/QqLyWq/QKcI/z+nB/8/pwf/P6cH/z+nCP+Qy3Gz////AwAAAAAAAAAAAAAAAAAAADcA
+ AADuAAAA/1hxS/8/pwf/P6cH/z+nB/9Prh3/5+vk/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6Ojo/1hYWP8AAAD/AAAA8wAAABcAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAA////BpPNdrNAqAn/P6cH/z+nB/8/pwf/P6cH/3fAUNr4/PcTAAAAAAAAAAAA
+ AAAAAAAANwAAAPAAAAD/GRkZ/8jJx/9itjX/P6cH/z+nB/8/pwf/qtSU/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+Tk5P8iIiL/AAAA/wAAAG4A
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8DnNGCokKoC/8/pwf/P6cH/z+nB/8/pwf/ZLg5797v1iwA
+ AAAAAAAAAAAAAAAAAAA4AAAA7gAAAP8aGhr/xsbG/+vr6/+q1JT/P6cH/z+nB/8/pwf/XLQu/+zt7P/r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/9l
+ ZWX/AAAA/wAAAJ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACq15N8RqoQ/z+nB/8/pwf/P6cH/z+nB/9b
+ syz4yOW6RQAAAAAAAAAAAAAAAAAAADcAAADuAAAA/xkZGf/FxcX/6+vr/+vr6//l6+P/Tq4b/z+nB/8/
+ pwf/P6cH/7zbrP/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6/9lZWX/AAAA/wAAAJ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACExmLCP6cH/z+nB/8/
+ pwf/P6cH/1eyJ/nA4rBUAAAAAAAAAAAAAAAAAAAANwAAAPAAAAD/GBgY/8fHx//r6+v/6+vr/+vr6//r
+ 6+v/l817/z+nB/8/pwf/P6cH/2q6QP/s7Oz/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/8TExP8VFRX/AAAA/wAAAG0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADd
+ 79UnichotmW4OfhRrx7/ZLc49r3gq1cAAAAAAAAAAAAAAAAAAAA4AAAA7gAAAP8ZGRn/xcXF/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/3+na/0SpDv8/pwf/P6cH/0CnCP/G37n/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/xcXF/xgYGP8AAAD/AAAA8wAAABYAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAA////AP7//hDt9uks8vjvGwAAAAAAAAAAAAAAAAAAADcAAADuAAAA/xgYGP/F
+ xcX/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/4XGZP8/pwf/P6cH/z+nB/90vkz/7Ozs/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//FxcX/GRkZ/wAAAP8AAAD+AAAAZAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAAPAA
+ AAD/GBgY/8fHx//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/9Lkyf9BqAr/P6cH/z+nB/9A
+ pwn/yuG+/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/8XFxf8YGBj/AAAA/wAAAP0A
+ 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
+
+
+
\ No newline at end of file
diff --git a/MediaTester/App.config b/MediaTester/App.config
index fe68427..3f87f55 100644
--- a/MediaTester/App.config
+++ b/MediaTester/App.config
@@ -1,6 +1,6 @@
-
+
-
+
-
\ No newline at end of file
+
diff --git a/MediaTester/FodyWeavers.xml b/MediaTester/FodyWeavers.xml
index c6e1b7c..a5dcf04 100644
--- a/MediaTester/FodyWeavers.xml
+++ b/MediaTester/FodyWeavers.xml
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/MediaTester/FodyWeavers.xsd b/MediaTester/FodyWeavers.xsd
new file mode 100644
index 0000000..05e92c1
--- /dev/null
+++ b/MediaTester/FodyWeavers.xsd
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+
+
+
+
+
+ A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks
+
+
+
+
+ A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks.
+
+
+
+
+ A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks
+
+
+
+
+ A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks.
+
+
+
+
+ A list of unmanaged 32 bit assembly names to include, delimited with line breaks.
+
+
+
+
+ A list of unmanaged 64 bit assembly names to include, delimited with line breaks.
+
+
+
+
+ The order of preloaded assemblies, delimited with line breaks.
+
+
+
+
+
+ This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file.
+
+
+
+
+ Controls if .pdbs for reference assemblies are also embedded.
+
+
+
+
+ Controls if runtime assemblies are also embedded.
+
+
+
+
+ Controls whether the runtime assemblies are embedded with their full path or only with their assembly name.
+
+
+
+
+ Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option.
+
+
+
+
+ As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off.
+
+
+
+
+ Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code.
+
+
+
+
+ Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior.
+
+
+
+
+ A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with |
+
+
+
+
+ A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |.
+
+
+
+
+ A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with |
+
+
+
+
+ A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with |.
+
+
+
+
+ A list of unmanaged 32 bit assembly names to include, delimited with |.
+
+
+
+
+ A list of unmanaged 64 bit assembly names to include, delimited with |.
+
+
+
+
+ The order of preloaded assemblies, delimited with |.
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
diff --git a/MediaTester/Main.Designer.cs b/MediaTester/Main.Designer.cs
index 6227a18..a1dba18 100644
--- a/MediaTester/Main.Designer.cs
+++ b/MediaTester/Main.Designer.cs
@@ -28,572 +28,548 @@ protected override void Dispose(bool disposing)
///
private void InitializeComponent()
{
- this.components = new System.ComponentModel.Container();
- this.TargetLabel = new System.Windows.Forms.Label();
- this.TargetTextBox = new System.Windows.Forms.TextBox();
- this.ChooseTargetButton = new System.Windows.Forms.Button();
- this.StopProcessingOnFailureCheckBox = new System.Windows.Forms.CheckBox();
- this.TotalBytesToTestLabel = new System.Windows.Forms.Label();
- this.MaxBytesToTestComboBox = new System.Windows.Forms.ComboBox();
- this.QuickTestAfterEachFileCheckBox = new System.Windows.Forms.CheckBox();
- this.QuickFirstFailingByteMethodCheckBox = new System.Windows.Forms.CheckBox();
- this.WriteAndVerifyButton = new System.Windows.Forms.Button();
- this.VerifyOnlyButton = new System.Windows.Forms.Button();
- this.TestOptionsGgroupBox = new System.Windows.Forms.GroupBox();
- this.SaveTestResultsFileToMediaCheckBox = new System.Windows.Forms.CheckBox();
- this.RemoveTempDataFilesUponCompletionCheckBox = new System.Windows.Forms.CheckBox();
- this.TargetAvailableBytesLabel = new System.Windows.Forms.Label();
- this.TargetTotalBytesLabel = new System.Windows.Forms.Label();
- this.TargetAvailableBytesLabelLabel = new System.Windows.Forms.Label();
- this.TargetTotalBytesLabelLabel = new System.Windows.Forms.Label();
- this.ActivityLogTextBox = new System.Windows.Forms.TextBox();
- this.StatusStrip = new System.Windows.Forms.StatusStrip();
- this.ProgressBar = new System.Windows.Forms.ToolStripProgressBar();
- this.ReadBytesPerSecondStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
- this.WriteBytesPerSecondStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
- this.AboutLinkLabel = new System.Windows.Forms.LinkLabel();
- this.SaveOptionsButton = new System.Windows.Forms.Button();
- this.DefaultOptionsButton = new System.Windows.Forms.Button();
- this.AbortButton = new System.Windows.Forms.Button();
- this.StatisticsGroupBox = new System.Windows.Forms.GroupBox();
- this.TotalTimeRemainingLabel = new System.Windows.Forms.Label();
- this.label9 = new System.Windows.Forms.Label();
- this.ElapsedTimeLabel = new System.Windows.Forms.Label();
- this.label7 = new System.Windows.Forms.Label();
- this.FailedBytesLabel = new System.Windows.Forms.Label();
- this.VerifiedBytesLabel = new System.Windows.Forms.Label();
- this.WrittenBytesLabel = new System.Windows.Forms.Label();
- this.ReadSpeedLabel = new System.Windows.Forms.Label();
- this.WriteSpeedLabel = new System.Windows.Forms.Label();
- this.label5 = new System.Windows.Forms.Label();
- this.label4 = new System.Windows.Forms.Label();
- this.label3 = new System.Windows.Forms.Label();
- this.label2 = new System.Windows.Forms.Label();
- this.label1 = new System.Windows.Forms.Label();
- this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
- this.RemoveTempDataFilesButton = new System.Windows.Forms.Button();
- this.TestOptionsGgroupBox.SuspendLayout();
- this.StatusStrip.SuspendLayout();
- this.StatisticsGroupBox.SuspendLayout();
- this.SuspendLayout();
- //
- // TargetLabel
- //
- this.TargetLabel.AutoSize = true;
- this.TargetLabel.Location = new System.Drawing.Point(4, 23);
- this.TargetLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
- this.TargetLabel.Name = "TargetLabel";
- this.TargetLabel.Size = new System.Drawing.Size(38, 13);
- this.TargetLabel.TabIndex = 0;
- this.TargetLabel.Text = "Target";
- this.TargetLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
- //
- // TargetTextBox
- //
- this.TargetTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main));
+ this.TargetLabel = new System.Windows.Forms.Label();
+ this.TargetTextBox = new System.Windows.Forms.TextBox();
+ this.ChooseTargetButton = new System.Windows.Forms.Button();
+ this.StopProcessingOnFailureCheckBox = new System.Windows.Forms.CheckBox();
+ this.TotalBytesToTestLabel = new System.Windows.Forms.Label();
+ this.MaxBytesToTestComboBox = new System.Windows.Forms.ComboBox();
+ this.QuickTestAfterEachFileCheckBox = new System.Windows.Forms.CheckBox();
+ this.QuickFirstFailingByteMethodCheckBox = new System.Windows.Forms.CheckBox();
+ this.WriteAndVerifyButton = new System.Windows.Forms.Button();
+ this.VerifyOnlyButton = new System.Windows.Forms.Button();
+ this.TestOptionsGgroupBox = new System.Windows.Forms.GroupBox();
+ this.SaveTestResultsFileToMediaCheckBox = new System.Windows.Forms.CheckBox();
+ this.RemoveTempDataFilesUponCompletionCheckBox = new System.Windows.Forms.CheckBox();
+ this.TargetAvailableBytesLabel = new System.Windows.Forms.Label();
+ this.TargetTotalBytesLabel = new System.Windows.Forms.Label();
+ this.TargetAvailableBytesLabelLabel = new System.Windows.Forms.Label();
+ this.TargetTotalBytesLabelLabel = new System.Windows.Forms.Label();
+ this.ActivityLogTextBox = new System.Windows.Forms.TextBox();
+ this.StatusStrip = new System.Windows.Forms.StatusStrip();
+ this.ProgressBar = new System.Windows.Forms.ToolStripProgressBar();
+ this.StatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
+ this.SaveOptionsButton = new System.Windows.Forms.Button();
+ this.DefaultOptionsButton = new System.Windows.Forms.Button();
+ this.AbortButton = new System.Windows.Forms.Button();
+ this.StatisticsGroupBox = new System.Windows.Forms.GroupBox();
+ this.TotalTimeRemainingLabel = new System.Windows.Forms.Label();
+ this.label9 = new System.Windows.Forms.Label();
+ this.ElapsedTimeLabel = new System.Windows.Forms.Label();
+ this.label7 = new System.Windows.Forms.Label();
+ this.FailedBytesLabel = new System.Windows.Forms.Label();
+ this.VerifiedBytesLabel = new System.Windows.Forms.Label();
+ this.WrittenBytesLabel = new System.Windows.Forms.Label();
+ this.VerifySpeedLabel = new System.Windows.Forms.Label();
+ this.WriteSpeedLabel = new System.Windows.Forms.Label();
+ this.label5 = new System.Windows.Forms.Label();
+ this.label4 = new System.Windows.Forms.Label();
+ this.label3 = new System.Windows.Forms.Label();
+ this.label2 = new System.Windows.Forms.Label();
+ this.label1 = new System.Windows.Forms.Label();
+ this.AboutButton = new System.Windows.Forms.Button();
+ this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
+ this.RemoveTempDataFilesButton = new System.Windows.Forms.Button();
+ this.TestOptionsGgroupBox.SuspendLayout();
+ this.StatusStrip.SuspendLayout();
+ this.StatisticsGroupBox.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // TargetLabel
+ //
+ this.TargetLabel.AutoSize = true;
+ this.TargetLabel.Location = new System.Drawing.Point(5, 35);
+ this.TargetLabel.Name = "TargetLabel";
+ this.TargetLabel.Size = new System.Drawing.Size(50, 20);
+ this.TargetLabel.TabIndex = 0;
+ this.TargetLabel.Text = "Target";
+ this.TargetLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // TargetTextBox
+ //
+ this.TargetTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
- this.TargetTextBox.Location = new System.Drawing.Point(46, 22);
- this.TargetTextBox.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
- this.TargetTextBox.Name = "TargetTextBox";
- this.TargetTextBox.Size = new System.Drawing.Size(167, 20);
- this.TargetTextBox.TabIndex = 1;
- this.TargetTextBox.TextChanged += new System.EventHandler(this.TargetTextBox_TextChanged);
- //
- // ChooseTargetButton
- //
- this.ChooseTargetButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.ChooseTargetButton.Location = new System.Drawing.Point(217, 21);
- this.ChooseTargetButton.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
- this.ChooseTargetButton.Name = "ChooseTargetButton";
- this.ChooseTargetButton.Size = new System.Drawing.Size(21, 20);
- this.ChooseTargetButton.TabIndex = 2;
- this.ChooseTargetButton.Text = "...";
- this.ChooseTargetButton.UseVisualStyleBackColor = true;
- this.ChooseTargetButton.Click += new System.EventHandler(this.ChooseTargetButton_Click);
- //
- // StopProcessingOnFailureCheckBox
- //
- this.StopProcessingOnFailureCheckBox.AutoSize = true;
- this.StopProcessingOnFailureCheckBox.Location = new System.Drawing.Point(7, 97);
- this.StopProcessingOnFailureCheckBox.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
- this.StopProcessingOnFailureCheckBox.Name = "StopProcessingOnFailureCheckBox";
- this.StopProcessingOnFailureCheckBox.Size = new System.Drawing.Size(167, 17);
- this.StopProcessingOnFailureCheckBox.TabIndex = 3;
- this.StopProcessingOnFailureCheckBox.Text = "Stop processing on first failure";
- this.toolTip1.SetToolTip(this.StopProcessingOnFailureCheckBox, "Stop the test process after a single failure.\n(recommended)");
- this.StopProcessingOnFailureCheckBox.UseVisualStyleBackColor = true;
- //
- // TotalBytesToTestLabel
- //
- this.TotalBytesToTestLabel.AutoSize = true;
- this.TotalBytesToTestLabel.Location = new System.Drawing.Point(4, 76);
- this.TotalBytesToTestLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
- this.TotalBytesToTestLabel.Name = "TotalBytesToTestLabel";
- this.TotalBytesToTestLabel.Size = new System.Drawing.Size(100, 13);
- this.TotalBytesToTestLabel.TabIndex = 5;
- this.TotalBytesToTestLabel.Text = "Total Bytes To Test";
- this.TotalBytesToTestLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
- //
- // MaxBytesToTestComboBox
- //
- this.MaxBytesToTestComboBox.FormattingEnabled = true;
- this.MaxBytesToTestComboBox.Items.AddRange(new object[] {
+ this.TargetTextBox.Location = new System.Drawing.Point(61, 34);
+ this.TargetTextBox.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.TargetTextBox.Name = "TargetTextBox";
+ this.TargetTextBox.Size = new System.Drawing.Size(234, 27);
+ this.TargetTextBox.TabIndex = 1;
+ this.TargetTextBox.TextChanged += new System.EventHandler(this.TargetTextBox_TextChanged);
+ //
+ // ChooseTargetButton
+ //
+ this.ChooseTargetButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.ChooseTargetButton.Location = new System.Drawing.Point(301, 32);
+ this.ChooseTargetButton.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.ChooseTargetButton.Name = "ChooseTargetButton";
+ this.ChooseTargetButton.Size = new System.Drawing.Size(33, 31);
+ this.ChooseTargetButton.TabIndex = 2;
+ this.ChooseTargetButton.Text = "...";
+ this.ChooseTargetButton.UseVisualStyleBackColor = true;
+ this.ChooseTargetButton.Click += new System.EventHandler(this.ChooseTargetButton_Click);
+ //
+ // StopProcessingOnFailureCheckBox
+ //
+ this.StopProcessingOnFailureCheckBox.AutoSize = true;
+ this.StopProcessingOnFailureCheckBox.Location = new System.Drawing.Point(9, 149);
+ this.StopProcessingOnFailureCheckBox.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.StopProcessingOnFailureCheckBox.Name = "StopProcessingOnFailureCheckBox";
+ this.StopProcessingOnFailureCheckBox.Size = new System.Drawing.Size(233, 24);
+ this.StopProcessingOnFailureCheckBox.TabIndex = 3;
+ this.StopProcessingOnFailureCheckBox.Text = "Stop processing on first failure";
+ this.toolTip1.SetToolTip(this.StopProcessingOnFailureCheckBox, "Stop the test process after a single failure.\n(recommended)");
+ this.StopProcessingOnFailureCheckBox.UseVisualStyleBackColor = true;
+ //
+ // TotalBytesToTestLabel
+ //
+ this.TotalBytesToTestLabel.AutoSize = true;
+ this.TotalBytesToTestLabel.Location = new System.Drawing.Point(5, 118);
+ this.TotalBytesToTestLabel.Name = "TotalBytesToTestLabel";
+ this.TotalBytesToTestLabel.Size = new System.Drawing.Size(131, 20);
+ this.TotalBytesToTestLabel.TabIndex = 5;
+ this.TotalBytesToTestLabel.Text = "Total Bytes To Test";
+ this.TotalBytesToTestLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // MaxBytesToTestComboBox
+ //
+ this.MaxBytesToTestComboBox.FormattingEnabled = true;
+ this.MaxBytesToTestComboBox.Items.AddRange(new object[] {
"All Available Bytes"});
- this.MaxBytesToTestComboBox.Location = new System.Drawing.Point(110, 74);
- this.MaxBytesToTestComboBox.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
- this.MaxBytesToTestComboBox.Name = "MaxBytesToTestComboBox";
- this.MaxBytesToTestComboBox.Size = new System.Drawing.Size(117, 21);
- this.MaxBytesToTestComboBox.TabIndex = 6;
- //
- // QuickTestAfterEachFileCheckBox
- //
- this.QuickTestAfterEachFileCheckBox.AutoSize = true;
- this.QuickTestAfterEachFileCheckBox.Location = new System.Drawing.Point(7, 116);
- this.QuickTestAfterEachFileCheckBox.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
- this.QuickTestAfterEachFileCheckBox.Name = "QuickTestAfterEachFileCheckBox";
- this.QuickTestAfterEachFileCheckBox.Size = new System.Drawing.Size(234, 17);
- this.QuickTestAfterEachFileCheckBox.TabIndex = 7;
- this.QuickTestAfterEachFileCheckBox.Text = "Quick test after writing each GiB of test data";
- this.toolTip1.SetToolTip(this.QuickTestAfterEachFileCheckBox, "Performs brief spot checks as data is written.\nEnabling this will detect common f" +
+ this.MaxBytesToTestComboBox.Location = new System.Drawing.Point(147, 114);
+ this.MaxBytesToTestComboBox.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.MaxBytesToTestComboBox.Name = "MaxBytesToTestComboBox";
+ this.MaxBytesToTestComboBox.Size = new System.Drawing.Size(155, 28);
+ this.MaxBytesToTestComboBox.TabIndex = 6;
+ //
+ // QuickTestAfterEachFileCheckBox
+ //
+ this.QuickTestAfterEachFileCheckBox.AutoSize = true;
+ this.QuickTestAfterEachFileCheckBox.Location = new System.Drawing.Point(9, 178);
+ this.QuickTestAfterEachFileCheckBox.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.QuickTestAfterEachFileCheckBox.Name = "QuickTestAfterEachFileCheckBox";
+ this.QuickTestAfterEachFileCheckBox.Size = new System.Drawing.Size(323, 24);
+ this.QuickTestAfterEachFileCheckBox.TabIndex = 7;
+ this.QuickTestAfterEachFileCheckBox.Text = "Quick test after writing each GiB of test data";
+ this.toolTip1.SetToolTip(this.QuickTestAfterEachFileCheckBox, "Performs brief spot checks as data is written.\nEnabling this will detect common f" +
"ailures much faster.\n(recommended)");
- this.QuickTestAfterEachFileCheckBox.UseVisualStyleBackColor = true;
- //
- // QuickFirstFailingByteMethodCheckBox
- //
- this.QuickFirstFailingByteMethodCheckBox.AutoSize = true;
- this.QuickFirstFailingByteMethodCheckBox.Location = new System.Drawing.Point(7, 136);
- this.QuickFirstFailingByteMethodCheckBox.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
- this.QuickFirstFailingByteMethodCheckBox.Name = "QuickFirstFailingByteMethodCheckBox";
- this.QuickFirstFailingByteMethodCheckBox.Size = new System.Drawing.Size(146, 17);
- this.QuickFirstFailingByteMethodCheckBox.TabIndex = 8;
- this.QuickFirstFailingByteMethodCheckBox.Text = "Quick find first failing byte";
- this.toolTip1.SetToolTip(this.QuickFirstFailingByteMethodCheckBox, "If a failure is encountered, skip testing all written files from the beginning.\n" +
- "Search for the last successful byte in reverse instead.\n(recommended)");
- this.QuickFirstFailingByteMethodCheckBox.UseVisualStyleBackColor = true;
- //
- // WriteAndVerifyButton
- //
- this.WriteAndVerifyButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.WriteAndVerifyButton.Location = new System.Drawing.Point(257, 222);
- this.WriteAndVerifyButton.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
- this.WriteAndVerifyButton.Name = "WriteAndVerifyButton";
- this.WriteAndVerifyButton.Size = new System.Drawing.Size(97, 28);
- this.WriteAndVerifyButton.TabIndex = 9;
- this.WriteAndVerifyButton.Text = "Write and Verify";
- this.toolTip1.SetToolTip(this.WriteAndVerifyButton, "Write test data to media then read back to verify data was stored correctly.\nOnly" +
- " available space will be used.\nNon-destructive.");
- this.WriteAndVerifyButton.UseVisualStyleBackColor = true;
- this.WriteAndVerifyButton.Click += new System.EventHandler(this.WriteAndVerifyButton_Click);
- //
- // VerifyOnlyButton
- //
- this.VerifyOnlyButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.VerifyOnlyButton.Location = new System.Drawing.Point(358, 222);
- this.VerifyOnlyButton.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
- this.VerifyOnlyButton.Name = "VerifyOnlyButton";
- this.VerifyOnlyButton.Size = new System.Drawing.Size(97, 28);
- this.VerifyOnlyButton.TabIndex = 10;
- this.VerifyOnlyButton.Text = "Verify Only";
- this.toolTip1.SetToolTip(this.VerifyOnlyButton, "Verify previous written test data.\nWill not write anything to media.");
- this.VerifyOnlyButton.UseVisualStyleBackColor = true;
- this.VerifyOnlyButton.Click += new System.EventHandler(this.VerifyOnlyButton_Click);
- //
- // TestOptionsGgroupBox
- //
- this.TestOptionsGgroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ this.QuickTestAfterEachFileCheckBox.UseVisualStyleBackColor = true;
+ //
+ // QuickFirstFailingByteMethodCheckBox
+ //
+ this.QuickFirstFailingByteMethodCheckBox.AutoSize = true;
+ this.QuickFirstFailingByteMethodCheckBox.Location = new System.Drawing.Point(9, 209);
+ this.QuickFirstFailingByteMethodCheckBox.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.QuickFirstFailingByteMethodCheckBox.Name = "QuickFirstFailingByteMethodCheckBox";
+ this.QuickFirstFailingByteMethodCheckBox.Size = new System.Drawing.Size(206, 24);
+ this.QuickFirstFailingByteMethodCheckBox.TabIndex = 8;
+ this.QuickFirstFailingByteMethodCheckBox.Text = "Quick find first failing byte";
+ this.toolTip1.SetToolTip(this.QuickFirstFailingByteMethodCheckBox, "If a failure is encountered, skip testing all written files from the beginning.\nS" +
+ "earch for the last successful byte in reverse instead.\n(recommended)");
+ this.QuickFirstFailingByteMethodCheckBox.UseVisualStyleBackColor = true;
+ //
+ // WriteAndVerifyButton
+ //
+ this.WriteAndVerifyButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.WriteAndVerifyButton.Location = new System.Drawing.Point(361, 320);
+ this.WriteAndVerifyButton.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.WriteAndVerifyButton.Name = "WriteAndVerifyButton";
+ this.WriteAndVerifyButton.Size = new System.Drawing.Size(129, 42);
+ this.WriteAndVerifyButton.TabIndex = 9;
+ this.WriteAndVerifyButton.Text = "Write and Verify";
+ this.toolTip1.SetToolTip(this.WriteAndVerifyButton, "Write test data to media then read back to verify data was stored correctly.\nOnly" +
+ " available space will be used.\nNon-destructive.");
+ this.WriteAndVerifyButton.UseVisualStyleBackColor = true;
+ this.WriteAndVerifyButton.Click += new System.EventHandler(this.WriteAndVerifyButton_Click);
+ //
+ // VerifyOnlyButton
+ //
+ this.VerifyOnlyButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.VerifyOnlyButton.Location = new System.Drawing.Point(495, 320);
+ this.VerifyOnlyButton.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.VerifyOnlyButton.Name = "VerifyOnlyButton";
+ this.VerifyOnlyButton.Size = new System.Drawing.Size(129, 42);
+ this.VerifyOnlyButton.TabIndex = 10;
+ this.VerifyOnlyButton.Text = "Verify Only";
+ this.toolTip1.SetToolTip(this.VerifyOnlyButton, "Verify previous written test data.\nWill not write anything to media.");
+ this.VerifyOnlyButton.UseVisualStyleBackColor = true;
+ this.VerifyOnlyButton.Click += new System.EventHandler(this.VerifyOnlyButton_Click);
+ //
+ // TestOptionsGgroupBox
+ //
+ this.TestOptionsGgroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
- this.TestOptionsGgroupBox.Controls.Add(this.SaveTestResultsFileToMediaCheckBox);
- this.TestOptionsGgroupBox.Controls.Add(this.RemoveTempDataFilesUponCompletionCheckBox);
- this.TestOptionsGgroupBox.Controls.Add(this.TargetAvailableBytesLabel);
- this.TestOptionsGgroupBox.Controls.Add(this.TargetTotalBytesLabel);
- this.TestOptionsGgroupBox.Controls.Add(this.TargetAvailableBytesLabelLabel);
- this.TestOptionsGgroupBox.Controls.Add(this.TargetTotalBytesLabelLabel);
- this.TestOptionsGgroupBox.Controls.Add(this.TotalBytesToTestLabel);
- this.TestOptionsGgroupBox.Controls.Add(this.StopProcessingOnFailureCheckBox);
- this.TestOptionsGgroupBox.Controls.Add(this.MaxBytesToTestComboBox);
- this.TestOptionsGgroupBox.Controls.Add(this.QuickFirstFailingByteMethodCheckBox);
- this.TestOptionsGgroupBox.Controls.Add(this.TargetTextBox);
- this.TestOptionsGgroupBox.Controls.Add(this.ChooseTargetButton);
- this.TestOptionsGgroupBox.Controls.Add(this.TargetLabel);
- this.TestOptionsGgroupBox.Controls.Add(this.QuickTestAfterEachFileCheckBox);
- this.TestOptionsGgroupBox.Location = new System.Drawing.Point(9, 24);
- this.TestOptionsGgroupBox.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
- this.TestOptionsGgroupBox.Name = "TestOptionsGgroupBox";
- this.TestOptionsGgroupBox.Padding = new System.Windows.Forms.Padding(2, 2, 2, 2);
- this.TestOptionsGgroupBox.Size = new System.Drawing.Size(243, 193);
- this.TestOptionsGgroupBox.TabIndex = 11;
- this.TestOptionsGgroupBox.TabStop = false;
- this.TestOptionsGgroupBox.Text = "Test Options";
- //
- // SaveTestResultsFileToMediaCheckBox
- //
- this.SaveTestResultsFileToMediaCheckBox.AutoSize = true;
- this.SaveTestResultsFileToMediaCheckBox.Location = new System.Drawing.Point(7, 173);
- this.SaveTestResultsFileToMediaCheckBox.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
- this.SaveTestResultsFileToMediaCheckBox.Name = "SaveTestResultsFileToMediaCheckBox";
- this.SaveTestResultsFileToMediaCheckBox.Size = new System.Drawing.Size(184, 17);
- this.SaveTestResultsFileToMediaCheckBox.TabIndex = 14;
- this.SaveTestResultsFileToMediaCheckBox.Text = "Save test results file to media root";
- this.toolTip1.SetToolTip(this.SaveTestResultsFileToMediaCheckBox, "Save test results file to media with full test log output.\nMediaTesterResults_YYY" +
+ this.TestOptionsGgroupBox.Controls.Add(this.SaveTestResultsFileToMediaCheckBox);
+ this.TestOptionsGgroupBox.Controls.Add(this.RemoveTempDataFilesUponCompletionCheckBox);
+ this.TestOptionsGgroupBox.Controls.Add(this.TargetAvailableBytesLabel);
+ this.TestOptionsGgroupBox.Controls.Add(this.TargetTotalBytesLabel);
+ this.TestOptionsGgroupBox.Controls.Add(this.TargetAvailableBytesLabelLabel);
+ this.TestOptionsGgroupBox.Controls.Add(this.TargetTotalBytesLabelLabel);
+ this.TestOptionsGgroupBox.Controls.Add(this.TotalBytesToTestLabel);
+ this.TestOptionsGgroupBox.Controls.Add(this.StopProcessingOnFailureCheckBox);
+ this.TestOptionsGgroupBox.Controls.Add(this.MaxBytesToTestComboBox);
+ this.TestOptionsGgroupBox.Controls.Add(this.QuickFirstFailingByteMethodCheckBox);
+ this.TestOptionsGgroupBox.Controls.Add(this.TargetTextBox);
+ this.TestOptionsGgroupBox.Controls.Add(this.ChooseTargetButton);
+ this.TestOptionsGgroupBox.Controls.Add(this.TargetLabel);
+ this.TestOptionsGgroupBox.Controls.Add(this.QuickTestAfterEachFileCheckBox);
+ this.TestOptionsGgroupBox.Location = new System.Drawing.Point(13, 15);
+ this.TestOptionsGgroupBox.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.TestOptionsGgroupBox.Name = "TestOptionsGgroupBox";
+ this.TestOptionsGgroupBox.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.TestOptionsGgroupBox.Size = new System.Drawing.Size(341, 298);
+ this.TestOptionsGgroupBox.TabIndex = 11;
+ this.TestOptionsGgroupBox.TabStop = false;
+ this.TestOptionsGgroupBox.Text = "Test Options";
+ //
+ // SaveTestResultsFileToMediaCheckBox
+ //
+ this.SaveTestResultsFileToMediaCheckBox.AutoSize = true;
+ this.SaveTestResultsFileToMediaCheckBox.Location = new System.Drawing.Point(9, 266);
+ this.SaveTestResultsFileToMediaCheckBox.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.SaveTestResultsFileToMediaCheckBox.Name = "SaveTestResultsFileToMediaCheckBox";
+ this.SaveTestResultsFileToMediaCheckBox.Size = new System.Drawing.Size(257, 24);
+ this.SaveTestResultsFileToMediaCheckBox.TabIndex = 14;
+ this.SaveTestResultsFileToMediaCheckBox.Text = "Save test results file to media root";
+ this.toolTip1.SetToolTip(this.SaveTestResultsFileToMediaCheckBox, "Save test results file to media with full test log output.\nMediaTesterResults_YYY" +
"Y-MM-DD_hh-mm-ss.txt\nTemp test data files will be removed, if necessary, to crea" +
"te space for the test results file.");
- this.SaveTestResultsFileToMediaCheckBox.UseVisualStyleBackColor = true;
- //
- // RemoveTempDataFilesUponCompletionCheckBox
- //
- this.RemoveTempDataFilesUponCompletionCheckBox.AutoSize = true;
- this.RemoveTempDataFilesUponCompletionCheckBox.Location = new System.Drawing.Point(7, 154);
- this.RemoveTempDataFilesUponCompletionCheckBox.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
- this.RemoveTempDataFilesUponCompletionCheckBox.Name = "RemoveTempDataFilesUponCompletionCheckBox";
- this.RemoveTempDataFilesUponCompletionCheckBox.Size = new System.Drawing.Size(218, 17);
- this.RemoveTempDataFilesUponCompletionCheckBox.TabIndex = 13;
- this.RemoveTempDataFilesUponCompletionCheckBox.Text = "Remove temp data files upon completion";
- this.toolTip1.SetToolTip(this.RemoveTempDataFilesUponCompletionCheckBox, "Remove temporary data files after verification completion (pass or fail).");
- this.RemoveTempDataFilesUponCompletionCheckBox.UseVisualStyleBackColor = true;
- //
- // TargetAvailableBytesLabel
- //
- this.TargetAvailableBytesLabel.AutoSize = true;
- this.TargetAvailableBytesLabel.Location = new System.Drawing.Point(107, 59);
- this.TargetAvailableBytesLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
- this.TargetAvailableBytesLabel.Name = "TargetAvailableBytesLabel";
- this.TargetAvailableBytesLabel.Size = new System.Drawing.Size(16, 13);
- this.TargetAvailableBytesLabel.TabIndex = 12;
- this.TargetAvailableBytesLabel.Text = "---";
- //
- // TargetTotalBytesLabel
- //
- this.TargetTotalBytesLabel.AutoSize = true;
- this.TargetTotalBytesLabel.Location = new System.Drawing.Point(107, 44);
- this.TargetTotalBytesLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
- this.TargetTotalBytesLabel.Name = "TargetTotalBytesLabel";
- this.TargetTotalBytesLabel.Size = new System.Drawing.Size(16, 13);
- this.TargetTotalBytesLabel.TabIndex = 11;
- this.TargetTotalBytesLabel.Text = "---";
- //
- // TargetAvailableBytesLabelLabel
- //
- this.TargetAvailableBytesLabelLabel.AutoSize = true;
- this.TargetAvailableBytesLabelLabel.Location = new System.Drawing.Point(4, 59);
- this.TargetAvailableBytesLabelLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
- this.TargetAvailableBytesLabelLabel.Name = "TargetAvailableBytesLabelLabel";
- this.TargetAvailableBytesLabelLabel.Size = new System.Drawing.Size(84, 13);
- this.TargetAvailableBytesLabelLabel.TabIndex = 10;
- this.TargetAvailableBytesLabelLabel.Text = "Available Space";
- //
- // TargetTotalBytesLabelLabel
- //
- this.TargetTotalBytesLabelLabel.AutoSize = true;
- this.TargetTotalBytesLabelLabel.Location = new System.Drawing.Point(4, 42);
- this.TargetTotalBytesLabelLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
- this.TargetTotalBytesLabelLabel.Name = "TargetTotalBytesLabelLabel";
- this.TargetTotalBytesLabelLabel.Size = new System.Drawing.Size(54, 13);
- this.TargetTotalBytesLabelLabel.TabIndex = 9;
- this.TargetTotalBytesLabelLabel.Text = "Total Size";
- //
- // ActivityLogTextBox
- //
- this.ActivityLogTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ this.SaveTestResultsFileToMediaCheckBox.UseVisualStyleBackColor = true;
+ //
+ // RemoveTempDataFilesUponCompletionCheckBox
+ //
+ this.RemoveTempDataFilesUponCompletionCheckBox.AutoSize = true;
+ this.RemoveTempDataFilesUponCompletionCheckBox.Location = new System.Drawing.Point(9, 238);
+ this.RemoveTempDataFilesUponCompletionCheckBox.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.RemoveTempDataFilesUponCompletionCheckBox.Name = "RemoveTempDataFilesUponCompletionCheckBox";
+ this.RemoveTempDataFilesUponCompletionCheckBox.Size = new System.Drawing.Size(307, 24);
+ this.RemoveTempDataFilesUponCompletionCheckBox.TabIndex = 13;
+ this.RemoveTempDataFilesUponCompletionCheckBox.Text = "Remove temp data files upon completion";
+ this.toolTip1.SetToolTip(this.RemoveTempDataFilesUponCompletionCheckBox, "Remove temporary data files after verification completion (pass or fail).");
+ this.RemoveTempDataFilesUponCompletionCheckBox.UseVisualStyleBackColor = true;
+ //
+ // TargetAvailableBytesLabel
+ //
+ this.TargetAvailableBytesLabel.AutoSize = true;
+ this.TargetAvailableBytesLabel.Location = new System.Drawing.Point(143, 91);
+ this.TargetAvailableBytesLabel.Name = "TargetAvailableBytesLabel";
+ this.TargetAvailableBytesLabel.Size = new System.Drawing.Size(27, 20);
+ this.TargetAvailableBytesLabel.TabIndex = 12;
+ this.TargetAvailableBytesLabel.Text = "---";
+ //
+ // TargetTotalBytesLabel
+ //
+ this.TargetTotalBytesLabel.AutoSize = true;
+ this.TargetTotalBytesLabel.Location = new System.Drawing.Point(143, 68);
+ this.TargetTotalBytesLabel.Name = "TargetTotalBytesLabel";
+ this.TargetTotalBytesLabel.Size = new System.Drawing.Size(27, 20);
+ this.TargetTotalBytesLabel.TabIndex = 11;
+ this.TargetTotalBytesLabel.Text = "---";
+ //
+ // TargetAvailableBytesLabelLabel
+ //
+ this.TargetAvailableBytesLabelLabel.AutoSize = true;
+ this.TargetAvailableBytesLabelLabel.Location = new System.Drawing.Point(5, 91);
+ this.TargetAvailableBytesLabelLabel.Name = "TargetAvailableBytesLabelLabel";
+ this.TargetAvailableBytesLabelLabel.Size = new System.Drawing.Size(115, 20);
+ this.TargetAvailableBytesLabelLabel.TabIndex = 10;
+ this.TargetAvailableBytesLabelLabel.Text = "Available Space";
+ //
+ // TargetTotalBytesLabelLabel
+ //
+ this.TargetTotalBytesLabelLabel.AutoSize = true;
+ this.TargetTotalBytesLabelLabel.Location = new System.Drawing.Point(5, 65);
+ this.TargetTotalBytesLabelLabel.Name = "TargetTotalBytesLabelLabel";
+ this.TargetTotalBytesLabelLabel.Size = new System.Drawing.Size(73, 20);
+ this.TargetTotalBytesLabelLabel.TabIndex = 9;
+ this.TargetTotalBytesLabelLabel.Text = "Total Size";
+ //
+ // ActivityLogTextBox
+ //
+ this.ActivityLogTextBox.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.ActivityLogTextBox.Location = new System.Drawing.Point(9, 254);
- this.ActivityLogTextBox.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
- this.ActivityLogTextBox.Multiline = true;
- this.ActivityLogTextBox.Name = "ActivityLogTextBox";
- this.ActivityLogTextBox.ReadOnly = true;
- this.ActivityLogTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Both;
- this.ActivityLogTextBox.Size = new System.Drawing.Size(447, 112);
- this.ActivityLogTextBox.TabIndex = 12;
- this.ActivityLogTextBox.WordWrap = false;
- //
- // StatusStrip
- //
- this.StatusStrip.ImageScalingSize = new System.Drawing.Size(20, 20);
- this.StatusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.ActivityLogTextBox.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.ActivityLogTextBox.Location = new System.Drawing.Point(13, 369);
+ this.ActivityLogTextBox.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.ActivityLogTextBox.Multiline = true;
+ this.ActivityLogTextBox.Name = "ActivityLogTextBox";
+ this.ActivityLogTextBox.ReadOnly = true;
+ this.ActivityLogTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Both;
+ this.ActivityLogTextBox.Size = new System.Drawing.Size(612, 186);
+ this.ActivityLogTextBox.TabIndex = 12;
+ this.ActivityLogTextBox.WordWrap = false;
+ //
+ // StatusStrip
+ //
+ this.StatusStrip.ImageScalingSize = new System.Drawing.Size(20, 20);
+ this.StatusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ProgressBar,
- this.ReadBytesPerSecondStatusLabel,
- this.WriteBytesPerSecondStatusLabel});
- this.StatusStrip.Location = new System.Drawing.Point(0, 374);
- this.StatusStrip.Name = "StatusStrip";
- this.StatusStrip.Padding = new System.Windows.Forms.Padding(1, 0, 10, 0);
- this.StatusStrip.Size = new System.Drawing.Size(465, 22);
- this.StatusStrip.TabIndex = 13;
- //
- // ProgressBar
- //
- this.ProgressBar.Maximum = 1000;
- this.ProgressBar.Name = "ProgressBar";
- this.ProgressBar.Size = new System.Drawing.Size(150, 16);
- //
- // ReadBytesPerSecondStatusLabel
- //
- this.ReadBytesPerSecondStatusLabel.Name = "ReadBytesPerSecondStatusLabel";
- this.ReadBytesPerSecondStatusLabel.Size = new System.Drawing.Size(16, 17);
- this.ReadBytesPerSecondStatusLabel.Text = "...";
- //
- // WriteBytesPerSecondStatusLabel
- //
- this.WriteBytesPerSecondStatusLabel.Name = "WriteBytesPerSecondStatusLabel";
- this.WriteBytesPerSecondStatusLabel.Size = new System.Drawing.Size(16, 17);
- this.WriteBytesPerSecondStatusLabel.Text = "...";
- //
- // AboutLinkLabel
- //
- this.AboutLinkLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.AboutLinkLabel.AutoSize = true;
- this.AboutLinkLabel.Location = new System.Drawing.Point(412, 7);
- this.AboutLinkLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
- this.AboutLinkLabel.Name = "AboutLinkLabel";
- this.AboutLinkLabel.Size = new System.Drawing.Size(44, 13);
- this.AboutLinkLabel.TabIndex = 15;
- this.AboutLinkLabel.TabStop = true;
- this.AboutLinkLabel.Text = "About...";
- this.AboutLinkLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
- this.AboutLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.AboutLinkLabel_LinkClicked);
- //
- // SaveOptionsButton
- //
- this.SaveOptionsButton.Location = new System.Drawing.Point(9, 222);
- this.SaveOptionsButton.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
- this.SaveOptionsButton.Name = "SaveOptionsButton";
- this.SaveOptionsButton.Size = new System.Drawing.Size(97, 28);
- this.SaveOptionsButton.TabIndex = 16;
- this.SaveOptionsButton.Text = "Save Options";
- this.SaveOptionsButton.UseVisualStyleBackColor = true;
- this.SaveOptionsButton.Click += new System.EventHandler(this.SaveOptions_Click);
- //
- // DefaultOptionsButton
- //
- this.DefaultOptionsButton.Location = new System.Drawing.Point(110, 222);
- this.DefaultOptionsButton.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
- this.DefaultOptionsButton.Name = "DefaultOptionsButton";
- this.DefaultOptionsButton.Size = new System.Drawing.Size(97, 28);
- this.DefaultOptionsButton.TabIndex = 17;
- this.DefaultOptionsButton.Text = "Default Options";
- this.DefaultOptionsButton.UseVisualStyleBackColor = true;
- this.DefaultOptionsButton.Click += new System.EventHandler(this.DefaultOptionsButton_Click);
- //
- // AbortButton
- //
- this.AbortButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.AbortButton.Location = new System.Drawing.Point(257, 222);
- this.AbortButton.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
- this.AbortButton.Name = "AbortButton";
- this.AbortButton.Size = new System.Drawing.Size(198, 28);
- this.AbortButton.TabIndex = 18;
- this.AbortButton.Text = "Abort Operation";
- this.AbortButton.UseVisualStyleBackColor = true;
- this.AbortButton.Visible = false;
- this.AbortButton.Click += new System.EventHandler(this.AbortButton_Click);
- //
- // StatisticsGroupBox
- //
- this.StatisticsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.StatisticsGroupBox.Controls.Add(this.TotalTimeRemainingLabel);
- this.StatisticsGroupBox.Controls.Add(this.label9);
- this.StatisticsGroupBox.Controls.Add(this.ElapsedTimeLabel);
- this.StatisticsGroupBox.Controls.Add(this.label7);
- this.StatisticsGroupBox.Controls.Add(this.FailedBytesLabel);
- this.StatisticsGroupBox.Controls.Add(this.VerifiedBytesLabel);
- this.StatisticsGroupBox.Controls.Add(this.WrittenBytesLabel);
- this.StatisticsGroupBox.Controls.Add(this.ReadSpeedLabel);
- this.StatisticsGroupBox.Controls.Add(this.WriteSpeedLabel);
- this.StatisticsGroupBox.Controls.Add(this.label5);
- this.StatisticsGroupBox.Controls.Add(this.label4);
- this.StatisticsGroupBox.Controls.Add(this.label3);
- this.StatisticsGroupBox.Controls.Add(this.label2);
- this.StatisticsGroupBox.Controls.Add(this.label1);
- this.StatisticsGroupBox.Location = new System.Drawing.Point(257, 24);
- this.StatisticsGroupBox.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
- this.StatisticsGroupBox.Name = "StatisticsGroupBox";
- this.StatisticsGroupBox.Padding = new System.Windows.Forms.Padding(2, 2, 2, 2);
- this.StatisticsGroupBox.Size = new System.Drawing.Size(198, 160);
- this.StatisticsGroupBox.TabIndex = 19;
- this.StatisticsGroupBox.TabStop = false;
- this.StatisticsGroupBox.Text = "Statistics";
- //
- // TotalTimeRemainingLabel
- //
- this.TotalTimeRemainingLabel.AutoSize = true;
- this.TotalTimeRemainingLabel.Location = new System.Drawing.Point(59, 139);
- this.TotalTimeRemainingLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
- this.TotalTimeRemainingLabel.Name = "TotalTimeRemainingLabel";
- this.TotalTimeRemainingLabel.Size = new System.Drawing.Size(16, 13);
- this.TotalTimeRemainingLabel.TabIndex = 13;
- this.TotalTimeRemainingLabel.Text = "---";
- //
- // label9
- //
- this.label9.AutoSize = true;
- this.label9.Location = new System.Drawing.Point(5, 139);
- this.label9.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
- this.label9.Name = "label9";
- this.label9.Size = new System.Drawing.Size(57, 13);
- this.label9.TabIndex = 12;
- this.label9.Text = "Remaining";
- //
- // ElapsedTimeLabel
- //
- this.ElapsedTimeLabel.AutoSize = true;
- this.ElapsedTimeLabel.Location = new System.Drawing.Point(59, 119);
- this.ElapsedTimeLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
- this.ElapsedTimeLabel.Name = "ElapsedTimeLabel";
- this.ElapsedTimeLabel.Size = new System.Drawing.Size(16, 13);
- this.ElapsedTimeLabel.TabIndex = 11;
- this.ElapsedTimeLabel.Text = "---";
- //
- // label7
- //
- this.label7.AutoSize = true;
- this.label7.Location = new System.Drawing.Point(5, 119);
- this.label7.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
- this.label7.Name = "label7";
- this.label7.Size = new System.Drawing.Size(45, 13);
- this.label7.TabIndex = 10;
- this.label7.Text = "Elapsed";
- //
- // FailedBytesLabel
- //
- this.FailedBytesLabel.AutoSize = true;
- this.FailedBytesLabel.Location = new System.Drawing.Point(59, 100);
- this.FailedBytesLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
- this.FailedBytesLabel.Name = "FailedBytesLabel";
- this.FailedBytesLabel.Size = new System.Drawing.Size(16, 13);
- this.FailedBytesLabel.TabIndex = 9;
- this.FailedBytesLabel.Text = "---";
- //
- // VerifiedBytesLabel
- //
- this.VerifiedBytesLabel.AutoSize = true;
- this.VerifiedBytesLabel.Location = new System.Drawing.Point(59, 80);
- this.VerifiedBytesLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
- this.VerifiedBytesLabel.Name = "VerifiedBytesLabel";
- this.VerifiedBytesLabel.Size = new System.Drawing.Size(16, 13);
- this.VerifiedBytesLabel.TabIndex = 8;
- this.VerifiedBytesLabel.Text = "---";
- //
- // WrittenBytesLabel
- //
- this.WrittenBytesLabel.AutoSize = true;
- this.WrittenBytesLabel.Location = new System.Drawing.Point(59, 41);
- this.WrittenBytesLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
- this.WrittenBytesLabel.Name = "WrittenBytesLabel";
- this.WrittenBytesLabel.Size = new System.Drawing.Size(16, 13);
- this.WrittenBytesLabel.TabIndex = 7;
- this.WrittenBytesLabel.Text = "---";
- //
- // ReadSpeedLabel
- //
- this.ReadSpeedLabel.AutoSize = true;
- this.ReadSpeedLabel.Location = new System.Drawing.Point(59, 61);
- this.ReadSpeedLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
- this.ReadSpeedLabel.Name = "ReadSpeedLabel";
- this.ReadSpeedLabel.Size = new System.Drawing.Size(16, 13);
- this.ReadSpeedLabel.TabIndex = 6;
- this.ReadSpeedLabel.Text = "---";
- //
- // WriteSpeedLabel
- //
- this.WriteSpeedLabel.AutoSize = true;
- this.WriteSpeedLabel.Location = new System.Drawing.Point(59, 22);
- this.WriteSpeedLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
- this.WriteSpeedLabel.Name = "WriteSpeedLabel";
- this.WriteSpeedLabel.Size = new System.Drawing.Size(16, 13);
- this.WriteSpeedLabel.TabIndex = 5;
- this.WriteSpeedLabel.Text = "---";
- //
- // label5
- //
- this.label5.AutoSize = true;
- this.label5.Location = new System.Drawing.Point(5, 100);
- this.label5.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
- this.label5.Name = "label5";
- this.label5.Size = new System.Drawing.Size(35, 13);
- this.label5.TabIndex = 4;
- this.label5.Text = "Failed";
- //
- // label4
- //
- this.label4.AutoSize = true;
- this.label4.Location = new System.Drawing.Point(5, 80);
- this.label4.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
- this.label4.Name = "label4";
- this.label4.Size = new System.Drawing.Size(42, 13);
- this.label4.TabIndex = 3;
- this.label4.Text = "Verified";
- //
- // label3
- //
- this.label3.AutoSize = true;
- this.label3.Location = new System.Drawing.Point(5, 42);
- this.label3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
- this.label3.Name = "label3";
- this.label3.Size = new System.Drawing.Size(41, 13);
- this.label3.TabIndex = 2;
- this.label3.Text = "Written";
- //
- // label2
- //
- this.label2.AutoSize = true;
- this.label2.Location = new System.Drawing.Point(5, 62);
- this.label2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
- this.label2.Name = "label2";
- this.label2.Size = new System.Drawing.Size(55, 13);
- this.label2.TabIndex = 1;
- this.label2.Text = "Read Avg";
- //
- // label1
- //
- this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point(5, 22);
- this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(54, 13);
- this.label1.TabIndex = 0;
- this.label1.Text = "Write Avg";
- //
- // RemoveTempDataFilesButton
- //
- this.RemoveTempDataFilesButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.RemoveTempDataFilesButton.Location = new System.Drawing.Point(257, 188);
- this.RemoveTempDataFilesButton.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
- this.RemoveTempDataFilesButton.Name = "RemoveTempDataFilesButton";
- this.RemoveTempDataFilesButton.Size = new System.Drawing.Size(198, 28);
- this.RemoveTempDataFilesButton.TabIndex = 20;
- this.RemoveTempDataFilesButton.Text = "Remove temp data files";
- this.RemoveTempDataFilesButton.UseVisualStyleBackColor = true;
- this.RemoveTempDataFilesButton.Click += new System.EventHandler(this.RemoveTempDataFilesButton_Click);
- //
- // Main
- //
- this.AcceptButton = this.WriteAndVerifyButton;
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(465, 396);
- this.Controls.Add(this.RemoveTempDataFilesButton);
- this.Controls.Add(this.StatisticsGroupBox);
- this.Controls.Add(this.DefaultOptionsButton);
- this.Controls.Add(this.SaveOptionsButton);
- this.Controls.Add(this.AboutLinkLabel);
- this.Controls.Add(this.StatusStrip);
- this.Controls.Add(this.ActivityLogTextBox);
- this.Controls.Add(this.TestOptionsGgroupBox);
- this.Controls.Add(this.VerifyOnlyButton);
- this.Controls.Add(this.WriteAndVerifyButton);
- this.Controls.Add(this.AbortButton);
- this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
- this.MinimumSize = new System.Drawing.Size(481, 371);
- this.Name = "Main";
- this.Text = "MediaTester";
- this.Load += new System.EventHandler(this.Main_Load);
- this.TestOptionsGgroupBox.ResumeLayout(false);
- this.TestOptionsGgroupBox.PerformLayout();
- this.StatusStrip.ResumeLayout(false);
- this.StatusStrip.PerformLayout();
- this.StatisticsGroupBox.ResumeLayout(false);
- this.StatisticsGroupBox.PerformLayout();
- this.ResumeLayout(false);
- this.PerformLayout();
+ this.StatusLabel});
+ this.StatusStrip.Location = new System.Drawing.Point(0, 558);
+ this.StatusStrip.Name = "StatusStrip";
+ this.StatusStrip.Padding = new System.Windows.Forms.Padding(1, 0, 13, 0);
+ this.StatusStrip.Size = new System.Drawing.Size(637, 30);
+ this.StatusStrip.TabIndex = 13;
+ //
+ // ProgressBar
+ //
+ this.ProgressBar.Maximum = 1000;
+ this.ProgressBar.Name = "ProgressBar";
+ this.ProgressBar.Size = new System.Drawing.Size(200, 22);
+ //
+ // StatusLabel
+ //
+ this.StatusLabel.Name = "StatusLabel";
+ this.StatusLabel.Size = new System.Drawing.Size(18, 24);
+ this.StatusLabel.Text = "...";
+ //
+ // SaveOptionsButton
+ //
+ this.SaveOptionsButton.Location = new System.Drawing.Point(13, 320);
+ this.SaveOptionsButton.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.SaveOptionsButton.Name = "SaveOptionsButton";
+ this.SaveOptionsButton.Size = new System.Drawing.Size(129, 42);
+ this.SaveOptionsButton.TabIndex = 16;
+ this.SaveOptionsButton.Text = "Save Options";
+ this.SaveOptionsButton.UseVisualStyleBackColor = true;
+ this.SaveOptionsButton.Click += new System.EventHandler(this.SaveOptions_Click);
+ //
+ // DefaultOptionsButton
+ //
+ this.DefaultOptionsButton.Location = new System.Drawing.Point(148, 320);
+ this.DefaultOptionsButton.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.DefaultOptionsButton.Name = "DefaultOptionsButton";
+ this.DefaultOptionsButton.Size = new System.Drawing.Size(129, 42);
+ this.DefaultOptionsButton.TabIndex = 17;
+ this.DefaultOptionsButton.Text = "Default Options";
+ this.DefaultOptionsButton.UseVisualStyleBackColor = true;
+ this.DefaultOptionsButton.Click += new System.EventHandler(this.DefaultOptionsButton_Click);
+ //
+ // AbortButton
+ //
+ this.AbortButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.AbortButton.Location = new System.Drawing.Point(361, 320);
+ this.AbortButton.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.AbortButton.Name = "AbortButton";
+ this.AbortButton.Size = new System.Drawing.Size(264, 42);
+ this.AbortButton.TabIndex = 18;
+ this.AbortButton.Text = "Abort Operation";
+ this.AbortButton.UseVisualStyleBackColor = true;
+ this.AbortButton.Visible = false;
+ this.AbortButton.Click += new System.EventHandler(this.AbortButton_Click);
+ //
+ // StatisticsGroupBox
+ //
+ this.StatisticsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.StatisticsGroupBox.Controls.Add(this.TotalTimeRemainingLabel);
+ this.StatisticsGroupBox.Controls.Add(this.label9);
+ this.StatisticsGroupBox.Controls.Add(this.ElapsedTimeLabel);
+ this.StatisticsGroupBox.Controls.Add(this.label7);
+ this.StatisticsGroupBox.Controls.Add(this.FailedBytesLabel);
+ this.StatisticsGroupBox.Controls.Add(this.VerifiedBytesLabel);
+ this.StatisticsGroupBox.Controls.Add(this.WrittenBytesLabel);
+ this.StatisticsGroupBox.Controls.Add(this.VerifySpeedLabel);
+ this.StatisticsGroupBox.Controls.Add(this.WriteSpeedLabel);
+ this.StatisticsGroupBox.Controls.Add(this.label5);
+ this.StatisticsGroupBox.Controls.Add(this.label4);
+ this.StatisticsGroupBox.Controls.Add(this.label3);
+ this.StatisticsGroupBox.Controls.Add(this.label2);
+ this.StatisticsGroupBox.Controls.Add(this.label1);
+ this.StatisticsGroupBox.Location = new System.Drawing.Point(361, 15);
+ this.StatisticsGroupBox.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.StatisticsGroupBox.Name = "StatisticsGroupBox";
+ this.StatisticsGroupBox.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.StatisticsGroupBox.Size = new System.Drawing.Size(264, 246);
+ this.StatisticsGroupBox.TabIndex = 19;
+ this.StatisticsGroupBox.TabStop = false;
+ this.StatisticsGroupBox.Text = "Statistics";
+ //
+ // TotalTimeRemainingLabel
+ //
+ this.TotalTimeRemainingLabel.AutoSize = true;
+ this.TotalTimeRemainingLabel.Location = new System.Drawing.Point(85, 214);
+ this.TotalTimeRemainingLabel.Name = "TotalTimeRemainingLabel";
+ this.TotalTimeRemainingLabel.Size = new System.Drawing.Size(27, 20);
+ this.TotalTimeRemainingLabel.TabIndex = 13;
+ this.TotalTimeRemainingLabel.Text = "---";
+ //
+ // label9
+ //
+ this.label9.AutoSize = true;
+ this.label9.Location = new System.Drawing.Point(7, 214);
+ this.label9.Name = "label9";
+ this.label9.Size = new System.Drawing.Size(80, 20);
+ this.label9.TabIndex = 12;
+ this.label9.Text = "Remaining";
+ //
+ // ElapsedTimeLabel
+ //
+ this.ElapsedTimeLabel.AutoSize = true;
+ this.ElapsedTimeLabel.Location = new System.Drawing.Point(85, 184);
+ this.ElapsedTimeLabel.Name = "ElapsedTimeLabel";
+ this.ElapsedTimeLabel.Size = new System.Drawing.Size(27, 20);
+ this.ElapsedTimeLabel.TabIndex = 11;
+ this.ElapsedTimeLabel.Text = "---";
+ //
+ // label7
+ //
+ this.label7.AutoSize = true;
+ this.label7.Location = new System.Drawing.Point(7, 184);
+ this.label7.Name = "label7";
+ this.label7.Size = new System.Drawing.Size(61, 20);
+ this.label7.TabIndex = 10;
+ this.label7.Text = "Elapsed";
+ //
+ // FailedBytesLabel
+ //
+ this.FailedBytesLabel.AutoSize = true;
+ this.FailedBytesLabel.Location = new System.Drawing.Point(85, 154);
+ this.FailedBytesLabel.Name = "FailedBytesLabel";
+ this.FailedBytesLabel.Size = new System.Drawing.Size(27, 20);
+ this.FailedBytesLabel.TabIndex = 9;
+ this.FailedBytesLabel.Text = "---";
+ //
+ // VerifiedBytesLabel
+ //
+ this.VerifiedBytesLabel.AutoSize = true;
+ this.VerifiedBytesLabel.Location = new System.Drawing.Point(85, 124);
+ this.VerifiedBytesLabel.Name = "VerifiedBytesLabel";
+ this.VerifiedBytesLabel.Size = new System.Drawing.Size(27, 20);
+ this.VerifiedBytesLabel.TabIndex = 8;
+ this.VerifiedBytesLabel.Text = "---";
+ //
+ // WrittenBytesLabel
+ //
+ this.WrittenBytesLabel.AutoSize = true;
+ this.WrittenBytesLabel.Location = new System.Drawing.Point(85, 64);
+ this.WrittenBytesLabel.Name = "WrittenBytesLabel";
+ this.WrittenBytesLabel.Size = new System.Drawing.Size(27, 20);
+ this.WrittenBytesLabel.TabIndex = 7;
+ this.WrittenBytesLabel.Text = "---";
+ //
+ // VerifySpeedLabel
+ //
+ this.VerifySpeedLabel.AutoSize = true;
+ this.VerifySpeedLabel.Location = new System.Drawing.Point(85, 94);
+ this.VerifySpeedLabel.Name = "VerifySpeedLabel";
+ this.VerifySpeedLabel.Size = new System.Drawing.Size(27, 20);
+ this.VerifySpeedLabel.TabIndex = 6;
+ this.VerifySpeedLabel.Text = "---";
+ //
+ // WriteSpeedLabel
+ //
+ this.WriteSpeedLabel.AutoSize = true;
+ this.WriteSpeedLabel.Location = new System.Drawing.Point(85, 34);
+ this.WriteSpeedLabel.Name = "WriteSpeedLabel";
+ this.WriteSpeedLabel.Size = new System.Drawing.Size(27, 20);
+ this.WriteSpeedLabel.TabIndex = 5;
+ this.WriteSpeedLabel.Text = "---";
+ //
+ // label5
+ //
+ this.label5.AutoSize = true;
+ this.label5.Location = new System.Drawing.Point(7, 154);
+ this.label5.Name = "label5";
+ this.label5.Size = new System.Drawing.Size(48, 20);
+ this.label5.TabIndex = 4;
+ this.label5.Text = "Failed";
+ //
+ // label4
+ //
+ this.label4.AutoSize = true;
+ this.label4.Location = new System.Drawing.Point(7, 124);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(60, 20);
+ this.label4.TabIndex = 3;
+ this.label4.Text = "Verified";
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(7, 64);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(58, 20);
+ this.label3.TabIndex = 2;
+ this.label3.Text = "Written";
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(7, 94);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(76, 20);
+ this.label2.TabIndex = 1;
+ this.label2.Text = "Verify Avg";
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(7, 34);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(75, 20);
+ this.label1.TabIndex = 0;
+ this.label1.Text = "Write Avg";
+ //
+ // AboutButton
+ //
+ this.AboutButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.AboutButton.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
+ this.AboutButton.Image = global::KrahmerSoft.MediaTester.Properties.Resources.info;
+ this.AboutButton.Location = new System.Drawing.Point(564, 9);
+ this.AboutButton.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.AboutButton.Name = "AboutButton";
+ this.AboutButton.Size = new System.Drawing.Size(50, 32);
+ this.AboutButton.TabIndex = 21;
+ this.toolTip1.SetToolTip(this.AboutButton, "About");
+ this.AboutButton.UseVisualStyleBackColor = true;
+ this.AboutButton.Click += new System.EventHandler(this.OpenAboutWindow);
+ //
+ // RemoveTempDataFilesButton
+ //
+ this.RemoveTempDataFilesButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.RemoveTempDataFilesButton.Location = new System.Drawing.Point(361, 268);
+ this.RemoveTempDataFilesButton.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.RemoveTempDataFilesButton.Name = "RemoveTempDataFilesButton";
+ this.RemoveTempDataFilesButton.Size = new System.Drawing.Size(264, 42);
+ this.RemoveTempDataFilesButton.TabIndex = 20;
+ this.RemoveTempDataFilesButton.Text = "Remove temp data files";
+ this.RemoveTempDataFilesButton.UseVisualStyleBackColor = true;
+ this.RemoveTempDataFilesButton.Click += new System.EventHandler(this.RemoveTempDataFilesButton_Click);
+ //
+ // Main
+ //
+ this.AcceptButton = this.WriteAndVerifyButton;
+ this.AutoScaleDimensions = new System.Drawing.SizeF(120F, 120F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
+ this.ClientSize = new System.Drawing.Size(637, 588);
+ this.Controls.Add(this.AboutButton);
+ this.Controls.Add(this.RemoveTempDataFilesButton);
+ this.Controls.Add(this.StatisticsGroupBox);
+ this.Controls.Add(this.DefaultOptionsButton);
+ this.Controls.Add(this.SaveOptionsButton);
+ this.Controls.Add(this.StatusStrip);
+ this.Controls.Add(this.ActivityLogTextBox);
+ this.Controls.Add(this.TestOptionsGgroupBox);
+ this.Controls.Add(this.VerifyOnlyButton);
+ this.Controls.Add(this.WriteAndVerifyButton);
+ this.Controls.Add(this.AbortButton);
+ this.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.MinimumSize = new System.Drawing.Size(655, 535);
+ this.Name = "Main";
+ this.Text = "MediaTester";
+ this.Load += new System.EventHandler(this.Main_Load);
+ this.TestOptionsGgroupBox.ResumeLayout(false);
+ this.TestOptionsGgroupBox.PerformLayout();
+ this.StatusStrip.ResumeLayout(false);
+ this.StatusStrip.PerformLayout();
+ this.StatisticsGroupBox.ResumeLayout(false);
+ this.StatisticsGroupBox.PerformLayout();
+ this.ResumeLayout(false);
+ this.PerformLayout();
}
@@ -612,7 +588,6 @@ private void InitializeComponent()
private System.Windows.Forms.GroupBox TestOptionsGgroupBox;
private System.Windows.Forms.TextBox ActivityLogTextBox;
private System.Windows.Forms.StatusStrip StatusStrip;
- private System.Windows.Forms.LinkLabel AboutLinkLabel;
private System.Windows.Forms.Label TargetTotalBytesLabelLabel;
private System.Windows.Forms.Label TargetAvailableBytesLabelLabel;
private System.Windows.Forms.Label TargetAvailableBytesLabel;
@@ -621,8 +596,7 @@ private void InitializeComponent()
private System.Windows.Forms.Button DefaultOptionsButton;
private System.Windows.Forms.Button AbortButton;
private System.Windows.Forms.ToolStripProgressBar ProgressBar;
- private System.Windows.Forms.ToolStripStatusLabel ReadBytesPerSecondStatusLabel;
- private System.Windows.Forms.ToolStripStatusLabel WriteBytesPerSecondStatusLabel;
+ private System.Windows.Forms.ToolStripStatusLabel StatusLabel;
private System.Windows.Forms.GroupBox StatisticsGroupBox;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label3;
@@ -631,7 +605,7 @@ private void InitializeComponent()
private System.Windows.Forms.Label FailedBytesLabel;
private System.Windows.Forms.Label VerifiedBytesLabel;
private System.Windows.Forms.Label WrittenBytesLabel;
- private System.Windows.Forms.Label ReadSpeedLabel;
+ private System.Windows.Forms.Label VerifySpeedLabel;
private System.Windows.Forms.Label WriteSpeedLabel;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label TotalTimeRemainingLabel;
@@ -642,6 +616,7 @@ private void InitializeComponent()
private System.Windows.Forms.CheckBox RemoveTempDataFilesUponCompletionCheckBox;
private System.Windows.Forms.Button RemoveTempDataFilesButton;
private System.Windows.Forms.CheckBox SaveTestResultsFileToMediaCheckBox;
+ private System.Windows.Forms.Button AboutButton;
}
}
diff --git a/MediaTester/Main.cs b/MediaTester/Main.cs
index 860d363..f53d94d 100644
--- a/MediaTester/Main.cs
+++ b/MediaTester/Main.cs
@@ -1,7 +1,7 @@
using KrahmerSoft.MediaTesterLib;
using System;
+using System.Diagnostics;
using System.IO;
-using System.Reflection;
using System.Threading;
using System.Windows.Forms;
@@ -10,9 +10,9 @@ namespace KrahmerSoft.MediaTester
public partial class Main : Form
{
private Options _mediaTesterOptions = Options.Deserialize();
- private KrahmerSoft.MediaTesterLib.MediaTester _mediaTester;
+ private MediaTesterLib.MediaTester _mediaTester;
private Thread _mediaTesterThread;
- private const string PALCEHOLDER_VALUE = "---";
+ private const string PLACEHOLDER_VALUE = "---";
private const string BYTES = " Bytes";
private const string BYTES_PER_SECOND = BYTES + "/sec";
private const string TEST_RESULTS_FILENAME_TEMPLATE = "MediaTesterResults_{0}_{1}.txt";
@@ -24,6 +24,8 @@ public Main()
InitializeComponent();
UpdateUiFromOptions();
EnableControls();
+
+ FormClosing += Main_FormClosing;
}
private void UpdateUiFromOptions()
@@ -87,8 +89,8 @@ private void TargetTextBox_TextChanged(object sender, EventArgs e)
private void UpdateTargetInformation()
{
- string targetTotalBytes = PALCEHOLDER_VALUE;
- string targetAvailableBytes = PALCEHOLDER_VALUE;
+ string targetTotalBytes = PLACEHOLDER_VALUE;
+ string targetAvailableBytes = PLACEHOLDER_VALUE;
string targetDirectory = TargetTextBox.Text;
if (!string.IsNullOrWhiteSpace(targetDirectory))
@@ -122,18 +124,18 @@ private void DefaultOptionsButton_Click(object sender, EventArgs e)
UpdateUiFromOptions();
}
- private delegate void EnableControlsDelegate(bool enable);
private void EnableControls(bool enable = true)
{
if (TestOptionsGgroupBox.InvokeRequired)
{
- EnableControlsDelegate d = new EnableControlsDelegate(EnableControls);
- Invoke(d, new object[] { enable });
+ BeginInvoke((MethodInvoker) delegate
+ { EnableControls(enable); });
return;
}
UpdateTargetInformation();
UpdateStatus(0, 0);
+ UpdateStatusLabel("");
TestOptionsGgroupBox.Enabled = enable;
RemoveTempDataFilesButton.Enabled = enable;
@@ -143,11 +145,12 @@ private void EnableControls(bool enable = true)
VerifyOnlyButton.Visible = enable;
AbortButton.Visible = !enable;
ProgressBar.Enabled = !enable;
+ AbortButton.Enabled = true;
if (!enable)
{
- WriteSpeedLabel.Text = PALCEHOLDER_VALUE;
- ReadSpeedLabel.Text = PALCEHOLDER_VALUE;
+ WriteSpeedLabel.Text = PLACEHOLDER_VALUE;
+ VerifySpeedLabel.Text = PLACEHOLDER_VALUE;
}
}
@@ -156,18 +159,6 @@ private void DisableControls()
EnableControls(false);
}
- private void RemoveTempDataFilesButton_Click(object sender, EventArgs e)
- {
- if (!ValidateGui())
- return;
-
- DisableControls();
- SaveOptions();
- InitializeMediaTester();
- _mediaTesterThread = new Thread(new ThreadStart(RemoveTempDataFilesGui));
- _mediaTesterThread.Start();
- }
-
private void WriteAndVerifyButton_Click(object sender, EventArgs e)
{
if (!ValidateGui())
@@ -178,6 +169,7 @@ private void WriteAndVerifyButton_Click(object sender, EventArgs e)
DisableControls();
SaveOptions();
+ ResetAverageCounters();
InitializeMediaTester();
_mediaTesterThread = new Thread(new ThreadStart(MediaTesterFullTest));
_mediaTesterThread.Start();
@@ -190,6 +182,7 @@ private void VerifyOnlyButton_Click(object sender, EventArgs e)
DisableControls();
SaveOptions();
+ ResetAverageCounters();
InitializeMediaTester();
_mediaTesterThread = new Thread(new ThreadStart(MediaTesterVerifyTestFiles));
_mediaTesterThread.Start();
@@ -206,31 +199,88 @@ private bool ValidateGui()
return true;
}
+ private void RemoveTempDataFilesButton_Click(object sender, EventArgs e)
+ {
+ if (!ValidateGui())
+ return;
+
+ DisableControls();
+ AbortButton.Enabled = false;
+ SaveOptions();
+ InitializeMediaTester();
+ _mediaTesterThread = new Thread(new ThreadStart(RemoveTempDataFilesGui));
+ _mediaTesterThread.Start();
+ }
+
+ ///
+ /// Remove test file and show the progress bar.
+ ///
private void RemoveTempDataFilesGui()
{
try
{
- RemoveTempDataFiles();
+ WriteLog($"Removing temp data files...");
+ UpdateStatusLabel("Removing files...");
+ _mediaTester.FileDeleted += FileDeletedProgressBar;
+
+ int filesDeleted = 0;
+
+ ProgressBar.Value = 0;
+ filesDeleted = _mediaTester.RemoveTempDataFiles();
+
+ WriteLog($"Removed {filesDeleted} temp data file{(filesDeleted == 1 ? string.Empty : "s")}.");
+ }
+ catch (IOException)
+ {
+ WriteLog("An error raised during the cancellation of test files.");
+ WriteLog("Check the file permission, reconnect the drive and retry.");
+ }
+ catch (Exception ex)
+ {
+ LogException(_mediaTester, ex);
}
finally
{
+ _mediaTester.FileDeleted -= FileDeletedProgressBar;
ThreadCompleteEnableControls();
}
}
- private void RemoveTempDataFiles()
+ private void FileDeletedProgressBar(object sender, FileDeletedEventArgs e)
{
- WriteLog(_mediaTester, $"Removing temp data files...");
- int filesDeleted = _mediaTester.RemoveTempDataFiles();
- WriteLog(_mediaTester, $"Removed {filesDeleted} temp data file{(filesDeleted == 1 ? string.Empty : "s")}.");
+ if (ActivityLogTextBox.InvokeRequired)
+ {
+ BeginInvoke((MethodInvoker) delegate
+ { FileDeletedProgressBar(sender, e); });
+ return;
+ }
+ ProgressBar.Value = (int) (1000 * ((float) e.removedFiles / e.totalFiles));
}
+ private enum ResultMediaTest
+ { PASS, FAIL, USER_CANCEL, ERROR };
+
private void MediaTesterFullTest()
{
try
{
- bool success = _mediaTester.FullTest();
- LogTestCompletion(success);
+ ResultMediaTest result = ResultMediaTest.FAIL;
+ try
+ {
+ if (_mediaTester.FullTest())
+ {
+ result = ResultMediaTest.PASS;
+ }
+ }
+ catch (ThreadInterruptedException)
+ {
+ result = ResultMediaTest.USER_CANCEL;
+ }
+ catch (IOException)
+ {
+ result = ResultMediaTest.ERROR;
+ }
+ ElaborateTestResult(result);
}
finally
{
@@ -242,8 +292,23 @@ private void MediaTesterVerifyTestFiles()
{
try
{
- bool success = _mediaTester.VerifyTestFiles();
- LogTestCompletion(success);
+ ResultMediaTest result = ResultMediaTest.FAIL;
+ try
+ {
+ if (_mediaTester.VerifyTestFiles())
+ {
+ result = ResultMediaTest.PASS;
+ }
+ }
+ catch (ThreadInterruptedException)
+ {
+ result = ResultMediaTest.USER_CANCEL;
+ }
+ catch (IOException)
+ {
+ result = ResultMediaTest.ERROR;
+ }
+ ElaborateTestResult(result);
}
finally
{
@@ -251,34 +316,53 @@ private void MediaTesterVerifyTestFiles()
}
}
+ private void ElaborateTestResult(ResultMediaTest result)
+ {
+ if (result == ResultMediaTest.USER_CANCEL)
+ {
+ ClearLog();
+ WriteLog("The test was manually stopped by the user.");
+ }
+ else if (result == ResultMediaTest.ERROR)
+ {
+ ClearLog();
+ WriteLog("An error raised during the test and it was interrupted.");
+ WriteLog("Check the file permission, reconnect the drive and retry.");
+ }
+ else
+ {
+ LogTestCompletion(result == ResultMediaTest.PASS);
+ }
+ }
+
private void LogTestCompletion(bool success)
{
if (_averageWriteBytesPerSecond > 0)
- WriteLog(_mediaTester, $"Averge write speed: {_averageWriteBytesPerSecond.ToString("#,##0")}{BYTES_PER_SECOND}");
+ WriteLog($"Average write speed: {_averageWriteBytesPerSecond.ToString("#,##0")}{BYTES_PER_SECOND}");
- if (_averageReadBytesPerSecond > 0)
- WriteLog(_mediaTester, $"Averge read speed: {_averageReadBytesPerSecond.ToString("#,##0")}{BYTES_PER_SECOND}");
+ if (_averageVerifyBytesPerSecond > 0)
+ WriteLog($"Average verify speed: {_averageVerifyBytesPerSecond.ToString("#,##0")}{BYTES_PER_SECOND}");
if (_mediaTesterOptions.RemoveTempDataFilesUponCompletion)
{
- RemoveTempDataFiles();
+ RemoveTempDataFilesNoProgressBar();
}
if (success)
{
long lTargetAvailableBytes = MediaTesterLib.MediaTester.GetAvailableBytes(_mediaTester.GetTestDirectory(), out long lTargetTotalBytes, actual: true);
- WriteLog(_mediaTester, $"Verified {_mediaTester.TotalBytesVerified.ToString("#,##0")}{BYTES} of {lTargetTotalBytes.ToString("#,##0")}{BYTES} total.");
- WriteLog(_mediaTester, $"Media test PASSED!");
+ WriteLog($"Verified {_mediaTester.TotalBytesVerified.ToString("#,##0")}{BYTES} of {lTargetTotalBytes.ToString("#,##0")}{BYTES} total.");
+ WriteLog($"Media test PASSED!");
// WriteLog(_mediaTester, $"Information: Not all bytes are directly testable because directory and filenames take up additional space on the media.");
if (!_mediaTesterOptions.RemoveTempDataFilesUponCompletion)
{
- WriteLog(_mediaTester, $"Notice: Be sure to delete the temporary directory before using the media. '{_mediaTester.GetTestDirectory()}'");
+ WriteLog($"Notice: Be sure to delete the temporary directory before using the media. '{_mediaTester.GetTestDirectory()}'");
}
}
else
{
- WriteLog(_mediaTester, $"Media test FAILED! First failing byte: {_mediaTester.FirstFailingByteIndex.ToString("#,##0")}. Verified {_mediaTester.TotalBytesVerified.ToString("#,##0")}{BYTES}.");
+ WriteLog($"Media test FAILED! First failing byte: {_mediaTester.FirstFailingByteIndex.ToString("#,##0")}. Verified {_mediaTester.TotalBytesVerified.ToString("#,##0")}{BYTES}.");
}
if (_mediaTesterOptions.SaveTestResultsFileToMedia && (success || _mediaTesterOptions.RemoveTempDataFilesUponCompletion))
@@ -286,43 +370,88 @@ private void LogTestCompletion(bool success)
string dateTime = DateTime.Now.ToString(TEST_RESULTS_FILENAME_DATETIME_FORMAT);
string testResultsFilePath = Path.Combine(_mediaTester.Options.TestDirectory, string.Format(TEST_RESULTS_FILENAME_TEMPLATE, dateTime, success ? "PASS" : "FAIL"));
string testResultsLog = ActivityLogTextBox.Text;
- long lTargetAvailableBytes = MediaTesterLib.MediaTester.GetAvailableBytes(_mediaTester.GetTestDirectory(), out long lTargetTotalBytes, actual: true);
int spaceNeeded = testResultsLog.Length + (int) Math.Pow(2, 16);
bool enoughSpace = true;
- while (spaceNeeded > MediaTesterLib.MediaTester.GetAvailableBytes(_mediaTester.GetTestDirectory(), out lTargetTotalBytes, actual: true))
+ while (spaceNeeded > MediaTesterLib.MediaTester.GetAvailableBytes(_mediaTester.GetTestDirectory(), out _, actual: true))
{
- if (_mediaTester.RemoveTempDataFiles(1) < 1)
+ // Try to remove just one file, so the remainings can be reused for further tests
+ if (_mediaTester.RemoveTempDataFiles(1) == 0)
{
enoughSpace = false;
- break; // No files deleted
+ break;
}
}
if (enoughSpace)
{
File.WriteAllText(testResultsFilePath, testResultsLog);
- WriteLog(_mediaTester, $"Wrote test results file '{testResultsFilePath}'");
+ WriteLog($"Wrote test results file '{testResultsFilePath}'");
}
else
{
- WriteLog(_mediaTester, $"Not enough free space to write test results file '{testResultsFilePath}'");
+ WriteLog($"Not enough free space to write test results file '{testResultsFilePath}'");
}
}
}
+ ///
+ /// Remove test files after write+verify. This method do no update the progress bar!
+ ///
+ private void RemoveTempDataFilesNoProgressBar()
+ {
+ WriteLog($"Removing temp data files...");
+ UpdateStatusLabel("Cleaning up...");
+
+ int filesDeleted = 0;
+ try
+ {
+ filesDeleted = _mediaTester.RemoveTempDataFiles();
+ }
+ catch (Exception ex)
+ {
+ LogException(_mediaTester, ex);
+ }
+
+ WriteLog($"Removed {filesDeleted} temp data file{(filesDeleted == 1 ? string.Empty : "s")}.");
+ }
+
+ private void UpdateStatusLabel(string text)
+ {
+ if (StatusStrip.InvokeRequired)
+ {
+ BeginInvoke((MethodInvoker) delegate
+ { StatusLabel.Text = text; });
+ return;
+ }
+ StatusLabel.Text = text;
+ }
+
private void InitializeMediaTester()
{
UpdateOptionsFromUi();
_mediaTester = new MediaTesterLib.MediaTester(_mediaTesterOptions);
- _mediaTester.OnException += OnMediaTesterException;
- _mediaTester.AfterQuickTest += AfterQuickTest;
- _mediaTester.AfterVerifyBlock += AfterVerifyBlock;
- _mediaTester.AfterWriteBlock += AfterWriteBlock;
-
- ClearLog(null, null);
- WriteLog(_mediaTester, $"MediaTester v{Assembly.GetEntryAssembly().GetName().Version}");
- WriteLog(_mediaTester, $"Temporary data path: '{_mediaTester.GetTestDirectory()}'");
+ _mediaTester.ExceptionThrown += (s, e) => { LogException(s as MediaTesterLib.MediaTester, e.Exception); };
+ _mediaTester.QuickTestCompleted += (s, e) =>
+ {
+ AfterVerifyBlock(s as MediaTesterLib.MediaTester, e.AbsoluteDataBlockIndex, e.AbsoluteDataByteIndex, e.TestFilePath, e.VerifyBytesPerSecond, e.BytesVerified, e.BytesFailed, true);
+ };
+ _mediaTester.BlockVerified += (s, e) =>
+ {
+ AfterVerifyBlock(s as MediaTesterLib.MediaTester, e.AbsoluteDataBlockIndex, e.AbsoluteDataByteIndex, e.TestFilePath, e.VerifyBytesPerSecond, e.BytesVerified, e.BytesFailed, false);
+ };
+ _mediaTester.BlockWritten += (s, e) =>
+ {
+ AfterWriteBlock(s as MediaTesterLib.MediaTester, e.AbsoluteDataBlockIndex, e.AbsoluteDataByteIndex, e.TestFilePath, e.WriteBytesPerSecond, e.BytesWritten, e.BytesFailedWrite);
+ };
+
+ long lTargetAvailableBytes = MediaTesterLib.MediaTester.GetAvailableBytes(_mediaTester.GetTestDirectory(), out long lTargetTotalBytes, actual: true);
+
+ ClearLog();
+ WriteLog($"MediaTester v{GetVersion()}");
+ WriteLog($"Total reported media size: {lTargetTotalBytes.ToString("#,##0")}{BYTES}");
+ WriteLog($"Total reported available space: {lTargetAvailableBytes.ToString("#,##0")}{BYTES}");
+ WriteLog($"Temporary data path: '{_mediaTester.GetTestDirectory()}'");
_startDateTime = DateTime.Now;
}
@@ -337,8 +466,8 @@ private void ThreadCompleteEnableControls()
private void AfterWriteBlock(MediaTesterLib.MediaTester mediaTester, long absoluteDataBlockIndex, long absoluteDataByteIndex, string testFilePath, long writeBytesPerSecond, int bytesWritten, int bytesFailedWrite)
{
UpdateStatus(writeBytesPerSecond: writeBytesPerSecond,
- writeBytesRemaining: mediaTester.Options.MaxBytesToTest - mediaTester.TotalBytesWritten,
- readBytesRemaining: mediaTester.Options.MaxBytesToTest);
+ writeBytesRemaining: mediaTester.TotalTargetBytes - mediaTester.TotalBytesWritten,
+ verifyBytesRemaining: mediaTester.TotalTargetBytes);
if (bytesFailedWrite == 0)
{
@@ -346,59 +475,54 @@ private void AfterWriteBlock(MediaTesterLib.MediaTester mediaTester, long absolu
}
else
{
- WriteLog(mediaTester, $"FAILED writing block {absoluteDataBlockIndex.ToString("#,##0")}. Byte index: {absoluteDataByteIndex.ToString("#,##0")}.");
+ WriteLog($"FAILED writing block {absoluteDataBlockIndex.ToString("#,##0")}. Byte index: {absoluteDataByteIndex.ToString("#,##0")}.");
}
}
- private void AfterVerifyBlock(MediaTesterLib.MediaTester mediaTester, long absoluteDataBlockIndex, long absoluteDataByteIndex, string testFilePath, long readBytesPerSecond, int bytesVerified, int bytesFailed, long verifyBytesPerSecond)
- {
- AfterVerifyBlock(mediaTester, absoluteDataBlockIndex, absoluteDataByteIndex, testFilePath, readBytesPerSecond, bytesVerified, bytesFailed, verifyBytesPerSecond, false);
- }
-
- private void AfterVerifyBlock(MediaTesterLib.MediaTester mediaTester, long absoluteDataBlockIndex, long absoluteDataByteIndex, string testFilePath, long readBytesPerSecond, int bytesVerified, int bytesFailed, long verifyBytesPerSecond, bool isQuickTest = false)
+ private void AfterVerifyBlock(MediaTesterLib.MediaTester mediaTester, long absoluteDataBlockIndex, long absoluteDataByteIndex, string testFilePath, long verifyBytesPerSecond, int bytesVerified, int bytesFailed, bool isQuickTest = false)
{
if (!isQuickTest)
- UpdateStatus(readBytesPerSecond: readBytesPerSecond,
- verifyBytesPerSecond: verifyBytesPerSecond,
+ {
+ UpdateStatus(verifyBytesPerSecond: verifyBytesPerSecond,
writeBytesRemaining: 0,
- readBytesRemaining: mediaTester.Options.MaxBytesToTest - mediaTester.TotalBytesVerified - mediaTester.TotalBytesFailed);
+ verifyBytesRemaining: mediaTester.TotalTargetBytes - mediaTester.TotalBytesVerified - mediaTester.TotalBytesFailed);
+ }
if (bytesFailed == 0)
{
if (isQuickTest)
- WriteLog(mediaTester, $"{(isQuickTest ? "Quick test: " : string.Empty)}Verified block {absoluteDataBlockIndex.ToString("#,##0")}. Byte index: {absoluteDataByteIndex.ToString("#,##0")}");
+ WriteLog($"{(isQuickTest ? "Quick test: " : string.Empty)}Verified block {absoluteDataBlockIndex.ToString("#,##0")}. Byte index: {absoluteDataByteIndex.ToString("#,##0")}");
}
else
{
- WriteLog(mediaTester, $"{(isQuickTest ? "Quick test: " : string.Empty)}FAILED block {absoluteDataBlockIndex.ToString("#,##0")}! Byte index: {absoluteDataByteIndex.ToString("#,##0")}");
+ WriteLog($"{(isQuickTest ? "Quick test: " : string.Empty)}FAILED block {absoluteDataBlockIndex.ToString("#,##0")}! Byte index: {absoluteDataByteIndex.ToString("#,##0")}");
if (isQuickTest)
{
- WriteLog(mediaTester, "Identifying first failing byte...");
+ WriteLog("Identifying first failing byte...");
}
}
}
- private void AfterQuickTest(MediaTesterLib.MediaTester mediaTester, long absoluteDataBlockIndex, long absoluteDataByteIndex, string testFilePath, long readBytesPerSecond, int bytesVerified, int bytesFailed, long verifyBytesPerSecond)
- {
- AfterVerifyBlock(mediaTester, absoluteDataBlockIndex, absoluteDataByteIndex, testFilePath, readBytesPerSecond, bytesVerified, bytesFailed, verifyBytesPerSecond, true);
- }
-
- private void OnMediaTesterException(MediaTesterLib.MediaTester mediaTester, Exception exception)
+ ///
+ /// Write Exception message on log. Since exception may be nested, this function is recursive.
+ ///
+ ///
+ ///
+ private void LogException(MediaTesterLib.MediaTester mediaTester, Exception exception)
{
- WriteLog(mediaTester, $"{exception.Message}");
+ WriteLog($"{exception.Message}");
if (exception.InnerException != null)
{
- OnMediaTesterException(mediaTester, exception.InnerException);
+ LogException(mediaTester, exception.InnerException);
}
}
- private delegate void WriteLogDelegate(MediaTesterLib.MediaTester mediaTester, string message);
- private void WriteLog(MediaTesterLib.MediaTester mediaTester, string message)
+ private void WriteLog(string message)
{
if (ActivityLogTextBox.InvokeRequired)
{
- WriteLogDelegate d = new WriteLogDelegate(WriteLog);
- Invoke(d, new object[] { mediaTester, message });
+ BeginInvoke((MethodInvoker) delegate
+ { WriteLog(message); });
return;
}
@@ -411,23 +535,24 @@ private void WriteLog(MediaTesterLib.MediaTester mediaTester, string message)
ActivityLogTextBox.AppendText((ActivityLogTextBox.Text.Length == 0 ? string.Empty : "\r\n") + message);
}
}
- private void ClearLog(object p1, object p2)
+
+ private void ClearLog()
{
- WriteLog(null, null);
+ WriteLog(null);
}
- private delegate void UpdateStatusDelegate(long readBytesPerSecond, long writeBytesPerSecond, long writeBytesRemaining, long readBytesRemaining, long verifyBytesPerSecond);
- private void UpdateStatus(long readBytesPerSecond = -1, long writeBytesPerSecond = -1, long writeBytesRemaining = 0, long readBytesRemaining = 0, long verifyBytesPerSecond = 0)
+ private void UpdateStatus(long verifyBytesPerSecond = -1, long writeBytesPerSecond = -1, long writeBytesRemaining = 0, long verifyBytesRemaining = 0)
{
+ // e.g. 2 means that read is 2 times faster that write
const decimal EstimatedReadVsWriteSpeedRatio = 2M;
if (ActivityLogTextBox.InvokeRequired)
{
- UpdateStatusDelegate d = new UpdateStatusDelegate(UpdateStatus);
- Invoke(d, new object[] { readBytesPerSecond, writeBytesPerSecond, writeBytesRemaining, readBytesRemaining, verifyBytesPerSecond });
+ BeginInvoke((MethodInvoker) delegate
+ { UpdateStatus(verifyBytesPerSecond, writeBytesPerSecond, writeBytesRemaining, verifyBytesRemaining); });
return;
}
- UpdateSpeedAverage(readBytesPerSecond, writeBytesPerSecond);
+ UpdateSpeedAverage(verifyBytesPerSecond, writeBytesPerSecond);
decimal bytesPerSecond = 0;
@@ -435,109 +560,123 @@ private void UpdateStatus(long readBytesPerSecond = -1, long writeBytesPerSecond
{
bytesPerSecond = _averageWriteBytesPerSecond;
}
- else if (readBytesPerSecond > 0)
+ else if (verifyBytesPerSecond > 0)
{
- bytesPerSecond = _averageReadBytesPerSecond;
+ bytesPerSecond = _averageVerifyBytesPerSecond;
}
TimeSpan? elapsedTime = null;
TimeSpan? writeTimeRemaining = null;
- TimeSpan? readTimeRemaining = null;
+ TimeSpan? verifyTimeRemaining = null;
TimeSpan? totalTimeRemaining = null;
if (_startDateTime != null)
{
elapsedTime = new TimeSpan(0, 0, (int) (DateTime.Now - _startDateTime.Value).TotalSeconds);
- writeTimeRemaining = new TimeSpan(0, 0, bytesPerSecond < .01M ? 0 : (int) ((decimal) writeBytesRemaining / bytesPerSecond));
+
+ int seconds = bytesPerSecond < 0.01M ? 0 : (int) (writeBytesRemaining / bytesPerSecond);
+ writeTimeRemaining = new TimeSpan(0, 0, seconds);
+
+ // Assume read speed is the same as write speed since we do not know for sure
if (verifyBytesPerSecond > 1000)
{
- readTimeRemaining = new TimeSpan(0, 0, bytesPerSecond < .01M ? 0 : (int) ((decimal) readBytesRemaining / verifyBytesPerSecond)); // Assume read speed is the same as write speed since we do not know for sure.
+ int remaingReadseconds = bytesPerSecond < 0.01M ? 0 : (int) ((decimal) verifyBytesRemaining / verifyBytesPerSecond);
+ verifyTimeRemaining = new TimeSpan(0, 0, remaingReadseconds);
}
else
{
- readTimeRemaining = new TimeSpan(0, 0, bytesPerSecond < .01M ? 0 : (int) ((writeBytesPerSecond > 0 ? EstimatedReadVsWriteSpeedRatio : 1M)
- * (decimal) readBytesRemaining / bytesPerSecond)); // Assume read speed is the same as write speed since we do not know for sure.
+ decimal ratio = writeBytesPerSecond > 0 ? EstimatedReadVsWriteSpeedRatio : 1;
+ int remaingVerifySeconds = bytesPerSecond < 0.01M ? 0 : (int) (
+ verifyBytesRemaining / bytesPerSecond / ratio);
+ verifyTimeRemaining = new TimeSpan(0, 0, remaingVerifySeconds);
}
- totalTimeRemaining = writeTimeRemaining + readTimeRemaining;
+ totalTimeRemaining = writeTimeRemaining + verifyTimeRemaining;
}
// Display to the user...
- ElapsedTimeLabel.Text = elapsedTime?.ToString() ?? PALCEHOLDER_VALUE;
- TotalTimeRemainingLabel.Text = totalTimeRemaining?.ToString() ?? PALCEHOLDER_VALUE;
+ ElapsedTimeLabel.Text = elapsedTime?.ToString() ?? PLACEHOLDER_VALUE;
+ TotalTimeRemainingLabel.Text = totalTimeRemaining?.ToString() ?? PLACEHOLDER_VALUE;
if (_mediaTester != null)
{
- WrittenBytesLabel.Text = (_mediaTester?.TotalBytesWritten.ToString("#,##0") ?? PALCEHOLDER_VALUE) + BYTES;
- VerifiedBytesLabel.Text = (_mediaTester?.TotalBytesVerified.ToString("#,##0") ?? PALCEHOLDER_VALUE) + BYTES;
- FailedBytesLabel.Text = (_mediaTester?.TotalBytesFailed.ToString("#,##0") ?? PALCEHOLDER_VALUE) + BYTES;
+ WrittenBytesLabel.Text = (_mediaTester?.TotalBytesWritten.ToString("#,##0") ?? PLACEHOLDER_VALUE) + BYTES;
+ VerifiedBytesLabel.Text = (_mediaTester?.TotalBytesVerified.ToString("#,##0") ?? PLACEHOLDER_VALUE) + BYTES;
+ FailedBytesLabel.Text = (_mediaTester?.TotalBytesFailed.ToString("#,##0") ?? PLACEHOLDER_VALUE) + BYTES;
}
ProgressBar.Value = _mediaTester == null ? 0 : (int) (10M * _mediaTester.ProgressPercent);
}
- private long _totalReadSpeedSamples = 0;
- private long _totalWriteSpeedSamples = 0;
- private decimal _averageReadBytesPerSecond = 0;
- private decimal _averageWriteBytesPerSecond = 0;
+ private long _totalVerifySpeedSamples;
+ private long _totalWriteSpeedSamples;
+ private decimal _averageVerifyBytesPerSecond;
+ private decimal _averageWriteBytesPerSecond;
+
+ private void ResetAverageCounters()
+ {
+ _totalVerifySpeedSamples = 0;
+ _totalWriteSpeedSamples = 0;
+ _averageVerifyBytesPerSecond = 0;
+ _averageWriteBytesPerSecond = 0;
+ }
- private void UpdateSpeedAverage(long readBytesPerSecond = -1, long writeBytesPerSecond = -1)
+ private void UpdateSpeedAverage(long verifyBytesPerSecond = -1, long writeBytesPerSecond = -1)
{
if (writeBytesPerSecond > 0)
{
- WriteBytesPerSecondStatusLabel.Text = "Write: " + writeBytesPerSecond.ToString("#,##0") + BYTES_PER_SECOND;
+ StatusLabel.Text = $"Write: {writeBytesPerSecond:#,##0}{BYTES_PER_SECOND}";
Helpers.UpdateAverage(ref _averageWriteBytesPerSecond, ref _totalWriteSpeedSamples, ref writeBytesPerSecond);
WriteSpeedLabel.Text = _averageWriteBytesPerSecond.ToString("#,##0") + BYTES_PER_SECOND;
}
- else
+ else if (verifyBytesPerSecond > 0)
{
- WriteBytesPerSecondStatusLabel.Text = string.Empty;
- _totalWriteSpeedSamples = 0;
+ StatusLabel.Text = $"Verify: {verifyBytesPerSecond:#,##0}{BYTES_PER_SECOND}";
+ Helpers.UpdateAverage(ref _averageVerifyBytesPerSecond, ref _totalVerifySpeedSamples, ref verifyBytesPerSecond);
+ VerifySpeedLabel.Text = _averageVerifyBytesPerSecond.ToString("#,##0") + BYTES_PER_SECOND;
}
+ }
- if (readBytesPerSecond > 0)
+ private void AbortButton_Click(object sender, EventArgs e)
+ {
+ try
{
- ReadBytesPerSecondStatusLabel.Text = "Read: " + readBytesPerSecond.ToString("#,##0") + BYTES_PER_SECOND;
- Helpers.UpdateAverage(ref _averageReadBytesPerSecond, ref _totalReadSpeedSamples, ref readBytesPerSecond);
- ReadSpeedLabel.Text = _averageReadBytesPerSecond.ToString("#,##0") + BYTES_PER_SECOND;
+ _mediaTesterThread?.Interrupt();
+ _startDateTime = null;
}
- else
+ catch
{
- ReadBytesPerSecondStatusLabel.Text = string.Empty;
- _totalReadSpeedSamples = 0;
}
}
- private void AbortButton_Click(object sender, EventArgs e)
+ private void Main_FormClosing(object sender, FormClosingEventArgs e)
{
try
{
- _mediaTesterThread?.Abort();
- _startDateTime = null;
+ _mediaTesterThread?.Interrupt();
+ _mediaTesterThread?.Join();
}
- catch //(Exception ex)
+ catch
{
}
}
- private void AboutLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ private void Main_Load(object sender, EventArgs e)
{
- string aboutMessage = $"MediaTester can test any media (SD, microSD, thumb, etc) \n"
- + $"and verify it stores the expected number of bytes. \n"
- + $"If you buy any storage media, you should use MediaTester \n"
- + $"to verify it or risk losing your data.\n"
- + $"\n"
- + $"Written by Doug Krahmer\n"
- + $"Released as plublic domain open source.\n"
- + $"https://github.com/dkrahmer/MediaTester (Click Help to view)\n\n"
- + $"\n"
- + $"Version: v{Assembly.GetEntryAssembly().GetName().Version}";
+ Text += $" v{GetVersion()}";
+ }
- MessageBox.Show(aboutMessage, "About MediaTester", MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1, 0, "https://github.com/dkrahmer/MediaTester/releases");
+ private void OpenAboutWindow(object sender, EventArgs e)
+ {
+ AboutForm form = new AboutForm();
+ form.versionLabel.Text = $"v{GetVersion()}";
+ form.ShowDialog();
}
- private void Main_Load(object sender, EventArgs e)
+ private static string GetVersion()
{
- Text += $" v{Assembly.GetEntryAssembly().GetName().Version}";
+ string filePath = System.Reflection.Assembly.GetExecutingAssembly().Location;
+ FileVersionInfo info = FileVersionInfo.GetVersionInfo(filePath);
+ return info.FileVersion;
}
}
-}
+}
\ No newline at end of file
diff --git a/MediaTester/Main.resx b/MediaTester/Main.resx
index a861640..3aeea89 100644
--- a/MediaTester/Main.resx
+++ b/MediaTester/Main.resx
@@ -123,7 +123,1914 @@
17, 17
-
- 147, 17
-
+
+
+
+ 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
+ daMNAgvDABRRNCD4cOuyjfLG1H1QTQzgkSqdeKhGN4B3NU77bRACGOsAFCOlHAB8/P2BX80jt0xmd9Zx
+ r8tsWbIG3SvdRPdKt1A+qkwhzqW0w433fwN3MQxAB6SU7YHxDumovjl1J6tT/2T7+YPsO3eIkzlppOdf
+ 4HRBBvnSQbQpjDhrFDGWSKKsdq4LL0ml6HLUia5EnRKJXB9TgTL2eIA9ON/5Zwkhdvi6jQaBiWEAOlGU
+ UbgDcBdQD6gDRP/1ORKHw4HZdNmDR04Cu4CdRf9dCmwUwvj1GXiH8RfkI4oOHq0AxOM0gmicm14yLvlJ
+ E0Kc83V9DQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKJ/wcvh6sPdp+BLAAAAABJRU5ErkJggigAAACA
+ AAAAAAEAAAEAIAAAAAAAAAABACMuAAAjLgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ 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
+ AAAAAAAAAAAAAAD///8U////WP///4T///+b/v79pv///5////+T////fv///1b///8p////AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////aMLis/V/w1z/XbQw/0mrGP9A
+ pwj/RakS/1CuIf9htjX/fsNc/6TUjP/e79fX////a////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAP///0Cr2Jb9P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+b
+ 0IH/////UgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8F4/Hc1UaqEv8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0irFP/0+fOwAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAP///3R8wln/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/73grfj///8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8bxeS48j+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/fsNa/////18AAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAPf79qdbsy3/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/9GqhL/8vjwtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAASQAAAHkA
+ AACaAAAAvwAAAL0AAACHAAAAZAAAACoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9BotOK/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+53qj6////EwAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAABGAAAArwAAAPgAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAANsA
+ AAB8AAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA////BuPx3NVHqhL/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/3nBVf////9lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuAAAAwgAAAP4AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADxAAAAdgAAAAQAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///99eMBU/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/RKkP/+/37LwA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAagAAAPcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAAxAAAABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA////J7zfq/g/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/tdyi/P///xcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAIsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA3wAAACgA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wHu9+vBUa8g/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9z
+ vk3/////bgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
+ AACSAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA////ZIrIa/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0GoC//m8uHMAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAkgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8B
+ AQH/Q0ND/4yMjP+3t7f/zc3N/8DAwP+oqKj/ZmZm/xgYGP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xjM58DuQKcJ/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/6fWkP////8qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAJIA
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/IiIi/7u7u//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/4eHh/3t7e/8EBAT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/
+ //8A9PnysluzLf8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/YLU1/////4cAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAACSAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yMjI//T
+ 09P/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/62trf8MDAz/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///2KQy3L/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/rNiY/1myK/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/1evM4v///wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAkgAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8jIyP/09PT/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/7a2tv8MDAz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/
+ //8fyOW78UCnCf8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/3S/T//+
+ //6totOK/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+UzXj/////QwAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAQAAAJIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/IyMj/9PT0//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7a2tv8M
+ DAz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Au/37L1VsCX/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9HqhP/4vHb1////wfj8t7QQagK/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/1GuIP/6/PmgAAAAAAAAAAAAAAAAAAAAAAAAAAEAAACSAAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/yMjI//T09P/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7a2tv8MDAz/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/
+ //9whsdm/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/6jWk/7/
+ //89AAAAAP///29zvk7/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/8Xjt/L/
+ //8LAAAAAAAAAAAAAAABAAAAkgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8jIyP/09PT/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/7W1tf8KCgr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M7reqfg/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9muDz/+/36mAAAAAAAAAAA////FLreqfk/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/gMRd/////14AAAAAAAAAAQAAAJIAAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/IyMj/9PT0//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7CwsP8KCgr/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///w7f
+ 79jcSasV/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/QqgM/9bszeX/
+ //8PAAAAAAAAAAAAAAAA9fr0rUusGf8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9E
+ qQ//6/XowgAAAAEAAACSAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yMjI//T09P/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/7CwsP8KCgr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A9vv1qWS3Of8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+Yz33/////UgAAAAAAAAAAAAAAAAAAAAD///9Mjcpv/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+q15P/Pz8/qQAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8jIyP/09PT/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7CwsP8K
+ Cgr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///2iP
+ y3L/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/WrMs//X6867/
+ //8AAAAAAAAAAAAAAAAAAAAAAP///wTS6cjnP6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/1+1M/+SkpL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/IyMj/9PT0//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7CwsP8KCgr/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///83vN+s9z+nCP8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/0CnCP/J5bzw////GwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///opf
+ tTP/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/8LZuf8JCQn/AAAA/wAAAP8A
+ AAD/AAAA/yMjI//T09P/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/7CwsP8KCgr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////GNfsz+RH
+ qhP/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/j8px/////2MA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////KajWkf8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/iMho/1tbW/8AAAD/AAAA/wAAAP8iIiL/0tLS/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7CwsP8KCgr/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAP///wbs9ujEWLIp/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/1qzLf/z+fGz////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA6PTkx0KoDf8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9IqhT/tbu0/wAAAP8A
+ AAD/IiIi/9LS0v/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/7CwsP8KCgr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+v36mXK9TP8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9BqAv/z+jE7P///xgA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9necFV/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+w2Zz/JSUl/yIiIv/S0tL/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7CwsP8K
+ Cgr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAP///22UzXj/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/5nPfv////9VAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAP///w/A4bH2P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/2a4PP+l
+ paX/0tLS/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7Gxsf8KCgr/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9Mrtma/D+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9htjb/9/v2pQAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPn8+KRPrh7/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/9Ppyv/s7Oz/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/7Gxsf8KCgr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAA////MsXjtvNCqAz/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/RKkO/9fszuT///8RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAA////QJjPff8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/hMZj//Ly8v/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7Gxsf8KCgr/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA5gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///x3X7M7lSKsU/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+j1Iz+////SAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGhoYB0eDL5kGoCv8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9FqRD/6vPn/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/7Gxsf8KCgr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACkA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAD///8S5fLf01SwJP8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/abpB//v9+pcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAQAAAJJ0dHT/d8BS/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/+k1Iz/7+/v/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7Gxsf8M
+ DAz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5gAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////DOv158ddtDD/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0mrFv/f8Njb////DAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAACSAAAA/xMTE/++
+ 27H/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/1axJv/19vT/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7e3t/8MDAz/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA4AAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAP///wfx+O66Zrg8/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/ut+q+P///zMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAABAAAAkgAAAP8AAAD/AAAA/5ydnP9Ysir/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/8Lis//s7Oz/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/7e3t/8NDQ3/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAyAAAAAUAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8D9fr0rW+8SP8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/4rIbP////9uAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAJIAAAD/AAAA/wAAAP8A
+ AAD/NTU1/6bVj/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/cr5M//T09P/r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7e3t/8NDQ3/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA////Afn8+Z15wVT/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/9gtTT/9Przr////wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAEAAACSAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/u8K4/0WpEP8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9Apwj/3O3V/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/7i4uP8NDQ3/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD0AAAAGgAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD8/vyNhMZk/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/SasV/9vu1OD///8SAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAkgAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP9ra2v/hcdl/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+K
+ yWv/8vLy/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/7Gxsf8F
+ BQX/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA/v/+e5DLdP8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/0CnCf/A4bH1////MgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAQAAAJIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ISEh/9LS0v/U6cr/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0WqEf/q8+f/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/4GBgf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOUA
+ AAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///2qd0YT/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/n9KH/////1oAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAACSAAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/yEhIf/R0dH/6+vr//X19f9luDz/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/6DSh//v7+//6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/5eXl/x0dHf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/
+ //9aqdeT/T+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/3zCWP/9/v2KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAABAAAAkgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8hISH/0dHR/+vr6//r6+v/7e3t/7Tcof8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/UK4e//P18v/r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/cXFx/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAAcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////SbbdpPpApwn/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9itjf/8vjvuP///wMAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAJIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/ISEh/9HR0f/r6+v/6+vr/+vr6//r6+v/8vXw/0ysGf8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/tNyi/+3t7f/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6/+ysrL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACaAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///znD
+ 47T0QqgM/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/VbAl/+bz4NH///8OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
+ AACSAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yEhIf/R0dH/6+vr/+vr6//r6+v/6+vr/+vr6//w
+ 8PD/lM14/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9gtTT/9fb1/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/9HR0f8BAQH/AAAA/wAAAP8A
+ AAD/AAAA/wAAAL4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8rzujC7UaqEf8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0usGP/Z7dHi////GwAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAkgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8h
+ ISH/0dHR/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//h79v/QagK/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB//J5bz/7Ozs/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/3t7e/wQEBP8AAAD/AAAA/wAAAP8AAAD/AAAAuwAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Ct/v19xL
+ rBn/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9E
+ qQ7/yua98P///ywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAJIA
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ISEh/9HR0f/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr//Pz8/99wln/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/3G9S//0
+ 9PT/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//Hx8f/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAACvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+//6DbrxH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/QagL/7vfq/j///9CAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAACSAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yEhIf/R
+ 0dH/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/7Ozs/9LpyP8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/9XqzP/s7Oz/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/56env8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIoAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANrt09U/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0CnCf+0
+ 3KL6////TwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAkgAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8hISH/0dHR/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/9fX1/2u6Q/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/fcNb//Pz8//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//o6Oj/QEBA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5vPix0KoDP8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwj/rdmZ/P///1gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAQAAAJIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ISEh/9HR0f/r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//t7e3/weGy/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9BqAr/3+7Z/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6Ojo/1JSUv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAAhAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/
+ //9JsNqc/EGoC/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/6bVj/7/
+ //9hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAACSAAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/yEhIf/R0dH/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//19vX/WrMt/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/+JyGr/8vLy/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+jo6P9TU1P/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAAyQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9UzefB7me4Pv8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/0GoC/+s2Jf9////aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAABAAAAkgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8gICD/0dHR/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+7u7v+v
+ 2Zv/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0SpD//n8eL/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//o6Oj/U1NT/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABeAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAD///8W/v/+h8/oxOmUzXj/Zbg7/0OoDf8/pwf/P6cH/z+nB/9OrRz/wOGx9v///1EA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAJIAAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/ICAg/9HR0f/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr//H18P9OrRv/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/5bOev/x8fH/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6Ojo/1NTU/8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA2AAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////A////z7/
+ //96+/37p+n05sDV683Z0+rJ3PX686v///8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAEAAACSAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yAgIP/R0dH/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/8PDw/53RhP8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/SasV/+zz6v/r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+jo6P9TU1P/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAABEAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAkgAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8gICD/0dHR/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6fLm/0WpEP8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/nNGC//Dw8P/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//o6Oj/U1NT/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAAiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAQAAAJIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ICAg/9DQ0P/r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//y8vL/i8lr/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9K
+ rBf/7fTr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6Ojo/1RUVP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKcAAAACAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAACSAAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/yAgIP/Q0ND/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//e7tf/QKcJ/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+f0ob/8PDw/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+jo6P9UVFT/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAACrAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAABAAAAkgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8gICD/0NDQ/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr//T09P94wFT/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/0usGP/u9O3/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//o
+ 6Oj/VFRU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAqwAAAAUAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/ICAg/9DQ0P/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/7Ozs/9Doxf8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/6HTif/w8PD/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6Ojo/1RUVP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAKsAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AABdAAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yAgIP/Q0ND/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/9fX1/2+8SP8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/Ta0a/+/07v/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+jo6P9U
+ VFT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACrAAAABQAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8g
+ ICD/0NDQ/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//s
+ 7Oz/zObA/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/pNSM/+/v7//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//o6Oj/VFRU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAAqwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAUAAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/ICAg/9DQ0P/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//19fX/bLpE/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9MrRr/7vTs/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6Ojo/1RUVP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKsAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8n
+ Jyf/1tbW/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+zs7P/J5bz/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+d
+ 0YT/8PDw/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+jo6P9UVFT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AACrAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAQAAAOMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8oKCj/1tbW/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr//X19f9ouT//P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0mrFv/r8+j/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//o6Oj/VVVV/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAqwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcwAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8nJyf/1tbW/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/7e3t/8XjuP8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/5bOe//x8fH/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6Ojo/1VVVf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKwA
+ AAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAACAAAAqgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8nJyf/1tbW/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/9fb1/2W4O/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/RqoS/+fy4//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+jo6P9VVVX/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACsAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAAA/QAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8nJyf/1tbW/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//t7e3/wuKz/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/j8tx//Ly8v/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//o6Oj/VVVV/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArAAAAAUA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAOQAAAPEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8n
+ Jyf/1tbW/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//1
+ 9vX/YrY3/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9EqQ7/4/De/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6Ojo/1VVVf8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAKwAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkAAADxAAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8nJyf/1tbW/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+3t7f+/4K//P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+ExmP/8/Pz/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+jo6P9VVVX/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACsAAAABQAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAA5AAAA8QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8nJyf/1tbW/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr//X29f9ftTP/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0CnCf/Y
+ 68//7Ozs/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//o6Oj/VVVV/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAArAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAPEAAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8RERH/Ghoa/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8nJyf/1tbW/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/7e3t/7vfq/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/3K+TP/19fX/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6Ojo/1VVVf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKwAAAAFAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAADkAAADxAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ERER/2RkZP9ra2v/Gxsb/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8nJyf/1tbW/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/9fb0/160Mv8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/8nlvP/t7e3/6+vr/+vr6//r6+v/6+vr/+np6f9VVVX/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAACsAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5AAAA8QAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/xEREf9kZGT/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8n
+ Jyf/1tbW/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//t7e3/v+Cw/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/YrY3//X29f/r6+v/6+vr/+vr6//p
+ 6en/VVVV/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArAAAAAUAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAOQAAAPEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8RERH/ZGRk/3Fxcf9xcXH/cXFx/3Fxcf9r
+ a2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8nJyf/1tbW/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//19vX/Zbg7/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/uN2m/+7u7v/r6+v/6enp/1ZWVv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAKwAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkAAADxAAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/ERER/2RkZP9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8nJyf/1tbW/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+3t7f/I
+ 5Lv/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9WsSf/8vXx/+np6f9W
+ Vlb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACsAAAABQAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAA5AAAA8QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xEREf9kZGT/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8mJib/1tbW/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr//X19f9tu0b/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+i1Ir/fn5+/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAArAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOQAAAPEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8R
+ ERH/ZGRk/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8mJib/1dXV/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/7Ozs/9Doxf8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0irFP/B
+ y73/BQUF/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKwAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkA
+ AADxAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ERER/2RkZP9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8m
+ Jib/1dXV/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/9PT0/3bAUv8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/4bHZv9sbGz/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AACsAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5AAAA8QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xEREf9k
+ ZGT/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9r
+ a2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8mJib/1dXV/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//s7Oz/2+zT/0GoC/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/QKcJ/8TZu/8SEhL/AAAA/wAAAP8AAAD/AAAArAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOQAAAPEA
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8RERH/ZGRk/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8mJib/1dXV/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//y8vL/iMho/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/a7pC/5GRkf8AAAD/AAAA/wAAAKwA
+ AAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAADkAAADxAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ERER/2RkZP9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8mJib/1dXV/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//m8eL/RqoS/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/t9un/yoqKv8AAACsAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6AAAA8QAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/xEREf9kZGT/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8mJib/1dXV/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr//Hx8f+a
+ 0ID/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9VsSb/xsrE3wAAAAUA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAOgAAAPEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8RERH/ZGRk/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8m
+ Jib/1dXV/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+/07f9Prh3/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+a0ID/////TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADoAAADxAAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/ERER/2RkZP9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9r
+ a2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8mJib/1dXV/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/7+/v/63YmP8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0SpDv/d
+ 79bd////CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAA6AAAA8QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xEREf9kZGT/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8mJib/1dXV/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//p6en/ycvI/120MP8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/3O+Tv////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOgAAAPEAAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8RERH/ZGRk/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf+mpqb/19fX/9PT0/+Z
+ mZn/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8lJSX/1dXV/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6enp/1dXV/8fHx//vtux/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/73grff///8jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAADoAAADxAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ERER/2RkZP9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9ycnL/ycnJ//////////////////////+fn5//cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8lJSX/1dXV/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+np6f9XV1f/AAAA/wAAAP+CgoL/dr9R/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/VbAl//P58bT///8AAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6AAAA8QAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/xEREf9kZGT/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cnJy/8nJyf//////////////////
+ /////////+Hh4f9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8l
+ JSX/1dXV/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//p
+ 6en/WFhY/wAAAP8AAAD/AAAA/wsLC//F1L7/Q6gN/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/mM99/////08AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAKQAAAO8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8RERH/ZGRk/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Jycv/Jycn/////////////////////////////////6+vr/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9r
+ a2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8lJSX/1dXV/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6enp/1hYWP8AAAD/AAAA/wAAAP8AAAD/AAAA/11dXf+S
+ zHX/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9DqQ3/2e3R4v///w0A
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAADIAAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/ERER/2RkZP9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ycnL/ycnJ////////////////////////
+ ///////////////CwsL/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8lJSX/1dXV/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+np6f9Y
+ WFj/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AgIC/7vBuP9NrRv/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9qukH//P38kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAQgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xEREf9kZGT/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/7Ozs///////////////////////////////////////4+Pj/3h4eP9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8lJSX/1NTU/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//p6en/WFhY/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/RkZGvbDanPw/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+u
+ 2Zr8////NgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJAAAA/wAAAP8AAAD/AAAA/wAAAP8R
+ ERH/ZGRk/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/8PDw////////////////////////
+ /////////+Pj4/97e3v/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8lJSX/1NTU/+vr6//r6+v/6+vr/+vr6//r6+v/6enp/1hYWP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKwAAAAF/P37lGa4PP8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0qsFv/m8+DQ////BAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAALEAAAD/AAAA/wAAAP8AAAD/AQEB/11dXf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf/39/f////////////////////////////j4+P/e3t7/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8l
+ JSX/1NTU/+vr6//r6+v/6+vr/+np6f9YWFj/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AACsAAAABQAAAAD///8R0urI6UCoCv8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/3zCWf////93AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqQAAAP8AAAD/AAAA/wAAAP8A
+ AAD/Tk5O/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/8rKyv//////////////////
+ ////4+Pj/3t7e/9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9r
+ a2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8lJSX/1NTU/+vr6//p6en/WVlZ/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArAAAAAUAAAAAAAAAAAAAAAD///9gi8ls/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/8DhsPb///8jAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAB8AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/enp6/9LS0v/+/v7//v7+/8/Pz/97e3v/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8lJSX/0tLS/1lZWf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKwA
+ AAAFAAAAAAAAAAAAAAAAAAAAAP///wHr9ujFTa0a/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/U7Ak//D37bz///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsAAAD9AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3l5ef94
+ eHj/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9ra2v/Gxsb/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8LCwv/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACsAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zCw
+ 2p38P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/ishr/////2cA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/25ubv8iIiL/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArAAAAAUA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz9+5JouT//P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwj/x+W68f///x4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAANMA
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3V1df9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9ubm7/IiIi/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAKwAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA////Dtjsz+RDqA3/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9W
+ sSf/8fjvuP///wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8F
+ BQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/42Njf/i4uL//v7+//Dw8P+jo6P/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/bm5u/yIiIv8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACsAAAABQAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////UZjPff8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+Nym//////YwAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf+T
+ k5P/+Pj4//////////////////7+/v+QkJD/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/25ubv8iIiL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAArAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAD///8A9PnysFiyKv8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/0CnCf/K5r3w////HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAANUAAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/k5OT//j4+P///////////////////////////7+/v/9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ubm7/IiIi/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP4AAABuAAAAqgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKsAAAAFAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8dxuS48j+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/1iyKv/z+fC1////AQAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/5OTk//4
+ +Pj/////////////////////////////////u7u7/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/bm5u/yIiIv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAAagAAAAAAAAACAAAAeAAAAOoA
+ AAD/AAAA/wAAAOkAAAB4AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9vgsVh/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/43Kb/////9lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAANUA
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf+RkZH/+Pj4//////////////////////////////////r6+v+H
+ h4f/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/25ubv8iIiL/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/gAAAGoAAAAAAAAAAAAAAAAAAAAAAAAAAwAAACoAAAAoAAAAAwAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wPp
+ 9eXJTq0c/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cI/8bkuPL/
+ //8iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8F
+ BQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/dnZ2/+7u7v//
+ ///////////////////////////////8/Pz/n5+f/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9u
+ bm7/IiIi/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAABqAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yy53qj5P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/U7Aj/+326sL///8CAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf+SkpL//////////////////////////////////Pz8/5+fn/9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/bm5u/yIiIv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD+AAAAagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAP///315wVb/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/gcRg/////3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAANUAAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/4uLi///
+ //////////////////////////z8/P+fn5//cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/25ubv8i
+ IiL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAGoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Bebz4c9LrBj/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/vN+r+P///ywAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cnJy/9vb2//////////////////8/Pz/n5+f/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ubm7/IiIi/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4A
+ AABqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAA////MbTbofo/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/9NrRv/5/Pizv///wYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAANUA
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/eXl5/7+/v//j4+P/1NTU/4+Pj/9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/bm5u/yIiIv8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAAagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+hHS+T/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/90vk///f79igAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8F
+ BQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/25ubv8iIiL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAGkA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8H5PLf00usGP8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+q15T9////QgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ubm7/IiIi/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAABpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/
+ //8xt92m+T+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/0WpD//Y
+ 7M/k////EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ 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
+ AAD/AAAA/wAAAP4AAABpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////GNPqyOlDqQ3/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/n9KG/////1MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/VFRU/3Fxcf9x
+ cXH/bm5u/yIiIv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAAaQAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA////SqTUjf4/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9B
+ qAv/y+a/7////yEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAANUA
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQX/UlJS/2tra/8iIiL/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD/AAAA/gAAAGkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/P37km+8Sf8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9TryL/6vXmyP///wUAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8B
+ AQH/AgIC/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAABpAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAD///8I5fLf0kytGv8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/91v1H//f79iwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8A
+ AAD+AAAAaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8sxOO29EKoC/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/+p15T9////PQAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAANUAAAD/AAAA/wAAAP8A
+ AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAGkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9Nut6q+UaqEP8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/0mrFv/y+fGyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAGAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0A
+ AABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/
+ //882u3S4XK9TP8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/87owuIA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAALAA
+ AAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADpAAAATwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8K////etTry+WPy3H/VbAl/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9CqAz/3/DZ0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADoAAACRAAAAugAAALoAAACvAAAAaAAAAA0A
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAA////Bf///0f+/v6T3+/azr7grfqj1Iv/j8tx/4XGZv+AxF7/j8tx/87ow/D/
+ //9JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA////B////yT///8/////Tf///1T///9C////CwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ 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
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////
+ ///////////////////////////////////////////////////////////4AP//////////////////
+ 8AA//////////////////+AAP//////////////////AAD//////////////////wAAf////////////
+ /////4AAH/////////////////+AAB///4Af////////////AAAP//wAB////////////gAAD//4AAH/
+ //////////4AAA//8AAA///////////8AAAH/8AAAH//////////+AAAB/+AAAA///////////gAAAf/
+ AAAAH//////////wAAAD/gAAAA//////////4AAAA/wAAAAH/////////+AAAAH4AAAAA//////////A
+ AAAB8AAAAAH/////////gAAAAeAAAAAA/////////4AAQADAAAAAAH////////8AAMAAgAAAAAA/////
+ ///+AADgAAAAAAAAH////////AAB4AAAAAAAAA////////wAAeAAAAAAAAAH///////4AAPwAAAAAAAA
+ A///////8AAH8AAAAAAAAAH//////+AAB/gAAAAAAAAA///////gAA/4AAAAAAAAAH//////wAAf+AAA
+ AAAAAAA//////4AAP/wAAAAAAAAAH/////8AAD/8AAAAAAAAAA/////+AAB//AAAAAAAAAAH/////AAA
+ //gAAAAAAAAAA/////gAAP/wAAAAAAAAAAH////wAAH/4AAAAAAAAAAA////4AAD/8AAAAAAAAAAAP//
+ /8AAA/+AAAAAAAAAAAB///+AAAf/AAAAAAAAAAAAf///gAAP/gAAAAAAAAAAAD///wAAH/wAAAAAAAAA
+ AAA///4AAD/4AAAAAAAAAAAAP//8AAA/8AAAAAAAAAAAAD//+AAAf+AAAAAAAAAAAAA///AAAP/AAAAA
+ AAAAAAAAP//gAAH/gAAAAAAAAAAAAD//4AAD/wAAAAAAAAAAAAA//+AAB/4AAAAAAAAAAAAAP//gAA/8
+ AAAAAAAAAAAAAD//4AAf+AAAAAAAAAAAAAB///AAP/AAAAAAAAAAAAAAf//4AH/gAAAAAAAAAAAAAH//
+ /gD/wAAAAAAAAAAAAAD//////4AAAAAAAAAAAAAB//////8AAAAAAAAAAAAAAf/////+AAAAAAAAAAAA
+ AAP//////AAAAAAAAAAAAAAH//////gAAAAAAAAAAAAAD//////4AAAAAAAAAAAAAB//////8AAAAAAA
+ AAAAAAA///////AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAP//////8AAAAAAAAAAAAAH///////gA
+ AAAAAAAAAAAD///////4AAAAAAAAAAAAB////////AAAAAAAAAAAAA////////gAAAAAAAAAAAAf////
+ ///wAAAAAAAAAAAAP///////4AAAAAAAAAAAAH///////8AAAAAAAAAAAAD///////+AAAAAAAAAAAAB
+ ////////AAAAAAAAAAAAA////////gAAAAAAAAAAAAf///////wAAAAAAAAAAAAP///////4AAAAAAAA
+ AAAAH///////8AAAAAAAAAAAAD///////+AAAAAAAAAAAAB////////AAAAAAAAAAAAA////////gAAA
+ AAAAAAAAAf///////wAAAAAAAAAAAAP///////4AAAAAAAAAAAAH///////8AAAAAAAAAAAAB///////
+ +AAAAAAAAAAAAAP///////AAAAAAAAAAAAAD///////gAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAD/
+ /////4AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAH/////+AAAAAAAAAAAAAAB//////gAAAAAAAAAA
+ AAAAP/////4AAAAAAAAAAAAAAB/////+AAAAAAAAAAAAIAAf/////gAAAAAAAAAAAHAAD/////4AAAAA
+ AAAAAADwAAf////+AAAAAAAAAAAB+AAH/////wAAAAAAAAAAA/wAA/////8AAAAAAAAAAAf8AAH/////
+ gAAAAAAAAAAP/gAB/////8AAAAAAAAAAH/4AAP/////gAAAAAAAAAD//AAB/////8AAAAAAAAIB//4AA
+ f/////gAAAAAAAHh//+AAD/////8AAAAAAAD////wAAf/////gAAAAAAB////+AAH/////8AAAAAAA//
+ ///gAA//////gAAAAAAf////8AAH/////8AAAAAAP/////gAB//////gAAAAAH/////4AAP/////8AAA
+ AAD//////AAB//////gAAAAB//////4AAP/////8AAAAA//////+AAD//////gAAAAf//////wAAf///
+ //8AAAAP//////+AAD//////gAAAH///////gAA//////8AAAD///////8AAH//////gAAB////////g
+ AA//////8AAA////////8AAH//////gAAf////////AAB//////8AAP////////4AAP//////gAH////
+ /////AAD//////8AD/////////4AA///////gB//////////AAP//////+A//////////8AD////////
+ ///////////8B/////////////////////////////////////////////////////////////////8o
+ AAAAQAAAAIAAAAABACAAAAAAAABAAAAjLgAAIy4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8F////N/7//lD///9N////Nf///woAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8QnNGB1laxJ/9CqAz/RakQ/1eyKP98
+ w1f1xuS3bwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvOCrk0GoCv8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/4XHY+n///8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA+Pv3MGa5O/w/pwf/P6cH/z+nB/8/pwf/P6cH/z+nB/9Qrx//9vv1RQAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAMAAAAFYAAABRAAAAJAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ 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
+ 6+v/6+vr/5aWlv8DAwP/AAAA/wAAAP8AAAC9AAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////B6XVjcJApwj/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/9Zsyr/4vHcTwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALzbrYo/pwj/P6cH/z+nB/8/
+ pwf/P6cH/6nVk//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/lpaW/wMDA/8AAAD/AAAA/wAAAL0AAAAKAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////A7XcoatE
+ qQ7/P6cH/z+nB/8/pwf/P6cH/z+nB/9CqAv/t92knwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUm
+ JibjbbpE/z+nB/8/pwf/P6cH/z+nB/9etTD/7u/u/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/+YmJj/AwMD/wAAAP8A
+ AAD/AAAAuwAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA////Ab3grJtJqxT/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/kcxz2f///w0AAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACUAAADjAAAA/3SWY/8/pwf/P6cH/z+nB/8/pwf/P6cH/8XguP/r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/5qamv8DAwP/AAAA/wAAAP8AAACTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAA////AMTjtYpNrRr/P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/bbxE9/X69DAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAADjAAAA/wAAAP9JS0n/Uq8h/z+nB/8/pwf/P6cH/z+nB/95
+ wVT/7e3t/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/mJiY/wEBAf8AAAD/AAAA/AAAACkAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMvnvnlTsCL/P6cH/z+nB/8/pwf/P6cH/z+nB/8/
+ pwf/V7In/9fszmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAADjAAAA/wAAAP8ICAj/rKys/5vPgf8/
+ pwf/P6cH/z+nB/8/pwf/QagJ/9no0v/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/9hYWH/AAAA/wAAAP8A
+ AACIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANPqyGdasyr/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/8/pwf/SKsT/8DisJEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAADjAAAA/wAAAP8I
+ CAj/rKys/+vr6//g6tv/QqgM/z+nB/8/pwf/P6cH/z+nB/+Nym7/7Ozs/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/vr6+/wAAAP8AAAD/AAAAwwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzv1FRi
+ tjX8P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/QqgL/6/amrP///8EAAAAAAAAAAAAAAAAAAAAAAAAACUA
+ AADjAAAA/wAAAP8ICAj/rKys/+vr6//r6+v/7Ozs/33DWf8/pwf/P6cH/z+nB/8/pwf/R6sS/+Xs4v/r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+Hh4f8BAQH/AAAA/wAAAN4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAP7//iNyvkv2P6cH/z+nB/8/pwf/P6cH/z+nB/8/pwf/QKcI/6DThsr///8LAAAAAAAAAAAA
+ AAAAAAAAAAAAACUAAADjAAAA/wAAAP8ICAj/rKys/+vr6//r6+v/6+vr/+vr6//L4sD/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/+f0YX/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//Pz8//AAAA/wAAAP8AAADOAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg8NpnQKcI/z+nB/8/pwf/P6cH/z+nB/8/pwf/P6cH/5fPe9P/
+ //8UAAAAAAAAAAAAAAAAAAAAAAAAACUAAADjAAAA/wAAAP8ICAj/q6ur/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/7u7u/2q6Qf8/pwf/P6cH/z+nB/8/pwf/T64d/+ru6P/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//q6ur/X19f/wAAAP8A
+ AAD/AAAAnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Ep7ShM9JqxX/P6cH/z+nB/8/
+ pwf/QKcI/5TNd9j///8YAAAAAAAAAAAAAAAAAAAAAAAAACUAAADjAAAA/wAAAP8ICAj/q6ur/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6/+73Kv/P6cH/z+nB/8/pwf/P6cH/z+nB/+p1ZP/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//q
+ 6ur/Y2Nj/wAAAP8AAAD/AAAA/wAAAEoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/
+ //8F4fHaXZ/Tha6KyWnZhMZh7ajXkbT///8UAAAAAAAAAAAAAAAAAAAAAAAAACUAAADjAAAA/wAAAP8I
+ CAj/q6ur/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/7u/t/1qzK/8/pwf/P6cH/z+nB/8/
+ pwf/V7In/+3u7P/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//q6ur/ZGRk/wAAAP8AAAD/AAAA/wAAAMYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUA
+ AADjAAAA/wAAAP8ICAj/q6ur/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/+r
+ 1pX/P6cH/z+nB/8/pwf/P6cH/z+nB/+x2J3/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//q6ur/ZGRk/wAAAP8AAAD/AAAA/wAAAOkAAAAjAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACUAAADjAAAA/wAAAP8ICAj/q6ur/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6u7o/06tG/8/pwf/P6cH/z+nB/8/pwf/WrMr/+3u7f/r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//q6ur/ZGRk/wAAAP8AAAD/AAAA/wAAAOoA
+ AAAtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAADjAAAA/wAAAP8ICAj/q6ur/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/+d0IL/P6cH/z+nB/8/pwf/P6cH/z+nB/+z
+ 2aD/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//q6ur/ZGRk/wAAAP8A
+ AAD/AAAA/wAAAOoAAAAtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6AAAA/wAAAP8ICAj/q6ur/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/5u3j/0qsFv8/
+ pwf/P6cH/z+nB/8/pwf/XLQt/+3u7P/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//q
+ 6ur/ZGRk/wAAAP8AAAD/AAAA/wAAAOoAAAAtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAP8A
+ AAD/CgoK/7CwsP/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6/+Zzn7/P6cH/z+nB/8/pwf/P6cH/z+nB/+w2Jz/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//q6ur/ZGRk/wAAAP8AAAD/AAAA/wAAAOoAAAAtAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAB0AAADqAAAA/wAAAP8KCgr/sLCw/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/5ezh/0mrFP8/pwf/P6cH/z+nB/8/pwf/V7En/+zu6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//q6ur/ZGRk/wAAAP8AAAD/AAAA/wAAAOoAAAAuAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAywAAAP8AAAD/AAAA/woKCv+wsLD/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/+WzXr/P6cH/z+nB/8/
+ pwf/P6cH/z+nB/+q1ZT/6+vr/+vr6//r6+v/6+vr/+vr6//q6ur/ZWVl/wAAAP8AAAD/AAAA/wAAAOoA
+ AAAuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAxgAAAP8AAAD/AAAA/wAAAP8A
+ AAD/CgoK/6+vr//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/4+vf/0eqEv8/pwf/P6cH/z+nB/8/pwf/Ua8f/+jt5v/r6+v/6+vr/+vr6//q6ur/ZWVl/wAAAP8A
+ AAD/AAAA/wAAAOoAAAAuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAxgAAAP8A
+ AAD/BAQE/z8/P/8HBwf/AAAA/wAAAP8KCgr/r6+v/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+zs7P+TzHb/P6cH/z+nB/8/pwf/P6cH/z+nB/+cz4H/6+vr/+vr6//q
+ 6ur/ZWVl/wAAAP8AAAD/AAAA/wAAAOoAAAAuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAOAAAAxgAAAP8AAAD/BAQE/1NTU/9xcXH/WVlZ/wcHB/8AAAD/AAAA/woKCv+vr6//6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/4+zf/0mrFP8/pwf/P6cH/z+nB/8/
+ pwf/SKsT/+Hr3f/q6ur/ZWVl/wAAAP8AAAD/AAAA/wAAAOoAAAAuAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAOAAAAxgAAAP8AAAD/BAQE/1NTU/9xcXH/cXFx/3Fxcf9ZWVn/BwcH/wAAAP8A
+ AAD/CgoK/6+vr//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/+a
+ z3//P6cH/z+nB/8/pwf/P6cH/z+nB/+KyGr/b29v/wAAAP8AAAD/AAAA/wAAAOoAAAAuAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAxgAAAP8AAAD/BAQE/1NTU/9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/1lZWf8HBwf/AAAA/wAAAP8KCgr/r6+v/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/5+3k/02tGv8/pwf/P6cH/z+nB/8/pwf/QagK/26AZf8AAAD/AAAA/wAAAOoA
+ AAAuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAxgAAAP8AAAD/BAQE/1NTU/9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/WVlZ/wcHB/8AAAD/AAAA/woKCv+vr6//6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/+l047/P6cH/z+nB/8/pwf/P6cH/z+nB/9s
+ uEP/KSkp/wAAAOoAAAAuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAxgAAAP8A
+ AAD/BAQE/1NTU/9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ZWVn/BwcH/wAAAP8A
+ AAD/CQkJ/6+vr//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+7q/1iyKP8/
+ pwf/P6cH/z+nB/8/pwf/P6cH/32ebPcAAAAuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAOAAAAxwAAAP8AAAD/BAQE/1NTU/9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/1lZWf8HBwf/AAAA/wAAAP8JCQn/r6+v/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6/+22qT/P6cH/z+nB/8/pwf/P6cH/z+nB/9Xsif/5/PhTAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAOAAAAxwAAAP8AAAD/BAQE/1NTU/9xcXH/cXFx/3Fxcf+YmJj/k5OT/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/WVlZ/wcHB/8AAAD/AAAA/wkJCf+urq7/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//q6ur/ioqK/2a3PP8/pwf/P6cH/z+nB/8/pwf/P6cH/43Kbd3/
+ //8JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAxwAAAP8AAAD/BAQE/1NTU/9xcXH/cXFx/3Fxcf/B
+ wcH///////////+YmJj/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ZWVn/BwcH/wAAAP8A
+ AAD/CQkJ/66urv/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//q6ur/ZmZm/wAAAP9yiGf/QKcI/z+nB/8/
+ pwf/P6cH/z+nB/9EqQ//x+W5gQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuAAAAP8AAAD/BAQE/1NTU/9x
+ cXH/cXFx/3Fxcf/BwcH/////////////////pKSk/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/1lZWf8HBwf/AAAA/wAAAP8JCQn/rq6u/+vr6//r6+v/6+vr/+vr6//q6ur/ZmZm/wAAAP8A
+ AAD/GBgY/3a4VP8/pwf/P6cH/z+nB/8/pwf/P6cH/268Rvj8/vwnAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAAP8A
+ AAD/BAQE/1NTU/9xcXH/cXFx/3Fxcf+hoaH/////////////////0NDQ/3Nzc/9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/WVlZ/wcHB/8AAAD/AAAA/wkJCf+urq7/6+vr/+vr6//q
+ 6ur/ZmZm/wAAAP8AAAD/AAAA/wAAAOqfspeVSasU/z+nB/8/pwf/P6cH/z+nB/8/pwf/odSIwP///wEA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAFYAAAD/AAAA/ysrK/9xcXH/cXFx/3Fxcf9xcXH/qamp////////////0NDQ/3Nzc/9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9ZWVn/BwcH/wAAAP8A
+ AAD/CQkJ/66urv/r6+v/ZmZm/wAAAP8AAAD/AAAA/wAAAOoAAAAu////BJXOeNI/pwf/P6cH/z+nB/8/
+ pwf/P6cH/06uHP/Y7c9kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqAAAA/wAAAP8BAQH/SEhI/3Fxcf9xcXH/cXFx/3Nzc/+v
+ r6//rq6u/3Nzc/9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ 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
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8hut+pjIzKbNh3wFH+Zbg5/2O3N/+p15PDAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////C////yP/
+ //8l////AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////////////8D///////
+ //gH////////+AP////////wA/8D/////+AD/AD/////4AH4AH/////AAfAAP////4AB4AAf////gADA
+ AA////8AAIAAB////gCAAAAD///+AIAAAAH///wBwAAAAP//+AHAAAAAf//wA8AAAAA//+AH4AAAAB//
+ wA/AAAAAD/+AD4AAAAAP/wAfAAAAAAf/AD4AAAAAB/4AfAAAAAAH/AB4AAAAAAf4APAAAAAAB/gB4AAA
+ AAAH+APAAAAAAAf8B4AAAAAAB///AAAAAAAP//4AAAAAAB///AAAAAAAP//8AAAAAAB///wAAAAAAP//
+ /AAAAAAB///8AAAAAAP///gAAAAAB///8AAAAAAP///gAAAAAB///8AAAAAAP///gAAAAAB///8AAAAA
+ AP///gAAAAAB///8AAAAAAH///gAAAAAAP//8AAAAAAA///gAAAAAAB//+AAAAAAAD//4AAAAAAAP//g
+ AAAAAMAf//AAAAAB4A//8AAAAAPgD//4AAAAB/AH//wAAACP8AP//gAAAf/4A///AAAD//wB//+AAAf/
+ /AD//8AAD//+AP//4AAf//8Af//wAD///wA///gAf///gB///AD////AH//+Af///+Af//8D////8B//
+ ///////+H///////////KAAAADAAAABgAAAAAQAgAAAAAAAAJAAAIy4AACMuAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAADX7M0rjcpuoX/EW7yExmKynNGBh+bz4R4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAP///wd8w1jTP6cH/z+nB/8/pwf/P6cH/47LbqYAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ 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
+ 5tH/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+jo6P9Z
+ WVn/AAAA/wAAAP4AAAB3AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD3
+ +/YQgsVfyz+nB/8/pwf/P6cH/z+nB/9HqxL/sNqacwAAAAAAAAAAAAAAAAAAAAAAAAA4BwcH7mquRv8/
+ pwf/P6cH/z+nB/+Ty3b/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//n5+f/W1tb/wAAAP8AAAD9AAAAZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAP3+/QqLyWq/QKcI/z+nB/8/pwf/P6cH/z+nCP+Qy3Gz////AwAAAAAAAAAAAAAAAAAAADcA
+ AADuAAAA/1hxS/8/pwf/P6cH/z+nB/9Prh3/5+vk/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6Ojo/1hYWP8AAAD/AAAA8wAAABcAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAA////BpPNdrNAqAn/P6cH/z+nB/8/pwf/P6cH/3fAUNr4/PcTAAAAAAAAAAAA
+ AAAAAAAANwAAAPAAAAD/GRkZ/8jJx/9itjX/P6cH/z+nB/8/pwf/qtSU/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+Tk5P8iIiL/AAAA/wAAAG4A
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8DnNGCokKoC/8/pwf/P6cH/z+nB/8/pwf/ZLg5797v1iwA
+ AAAAAAAAAAAAAAAAAAA4AAAA7gAAAP8aGhr/xsbG/+vr6/+q1JT/P6cH/z+nB/8/pwf/XLQu/+zt7P/r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/9l
+ ZWX/AAAA/wAAAJ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACq15N8RqoQ/z+nB/8/pwf/P6cH/z+nB/9b
+ syz4yOW6RQAAAAAAAAAAAAAAAAAAADcAAADuAAAA/xkZGf/FxcX/6+vr/+vr6//l6+P/Tq4b/z+nB/8/
+ pwf/P6cH/7zbrP/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6/9lZWX/AAAA/wAAAJ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACExmLCP6cH/z+nB/8/
+ pwf/P6cH/1eyJ/nA4rBUAAAAAAAAAAAAAAAAAAAANwAAAPAAAAD/GBgY/8fHx//r6+v/6+vr/+vr6//r
+ 6+v/l817/z+nB/8/pwf/P6cH/2q6QP/s7Oz/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/8TExP8VFRX/AAAA/wAAAG0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADd
+ 79UnichotmW4OfhRrx7/ZLc49r3gq1cAAAAAAAAAAAAAAAAAAAA4AAAA7gAAAP8ZGRn/xcXF/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/3+na/0SpDv8/pwf/P6cH/0CnCP/G37n/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/xcXF/xgYGP8AAAD/AAAA8wAAABYAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAA////AP7//hDt9uks8vjvGwAAAAAAAAAAAAAAAAAAADcAAADuAAAA/xgYGP/F
+ xcX/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/4XGZP8/pwf/P6cH/z+nB/90vkz/7Ozs/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//FxcX/GRkZ/wAAAP8AAAD+AAAAZAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAAPAA
+ AAD/GBgY/8fHx//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/9Lkyf9BqAr/P6cH/z+nB/9A
+ pwn/yuG+/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/8XFxf8YGBj/AAAA/wAAAP0A
+ AABzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAANAAAA5wAAAP8ZGRn/xcXF/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+zs7P95
+ wFT/P6cH/z+nB/8/pwf/db9O/+zs7P/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/xsbG/xgYGP8A
+ AAD/AAAA/gAAAHMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAjAAAA/gAAAP9eXl7/6urq/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//M4sH/QagK/z+nB/8/pwf/QKcI/8rhvv/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//G
+ xsb/GRkZ/wAAAP8AAAD+AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAArgAAAP8AAAD/bm5u/+rq6v/r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//s7Oz/dr9Q/z+nB/8/pwf/P6cH/3C8R//s7Oz/6+vr/+vr6//r
+ 6+v/6+vr/8XFxf8YGBj/AAAA/wAAAP0AAABzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiAAAA3QAAAP8AAAD/AAAA/29vb//q
+ 6ur/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/y+HA/z+nCP8/pwf/P6cH/0CnCP/C
+ 3rT/6+vr/+vr6//r6+v/xsbG/xgYGP8AAAD/AAAA/gAAAHMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAADdAAAA/wwMDP8d
+ HR3/AAAA/wEBAf9vb2//6urq/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/7Ozs/3K+S/8/
+ pwf/P6cH/z+nB/9muDr/6+zq/+vr6//Gxsb/GRkZ/wAAAP8AAAD+AAAAdAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAN8A
+ AAD/DAwM/2BgYP9tbW3/ISEh/wAAAP8AAAD/bW1t/+rq6v/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/8vhwP9BqAr/P6cH/z+nB/8/pwf/s9ig/8XFxf8YGBj/AAAA/wAAAP0AAABzAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAiAAAA3QAAAP8MDAz/X19f/3Fxcf9xcXH/bW1t/yEhIf8AAAD/AAAA/25ubv/q6ur/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+zs7P96wVT/P6cH/z+nB/8/pwf/V7Em/0VIQ/8AAAD/AAAA/gAAAHMA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACEAAADdAAAA/wwMDP9fX1//cXFx/3Fxcf9xcXH/cXFx/21tbf8hISH/AAAA/wEBAf9u
+ bm7/6urq/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//S5Mn/Q6kM/z+nB/8/pwf/P6cH/2iaTv8D
+ AwP+AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAIQAAAN8AAAD/DAwM/2BgYP9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9t
+ bW3/ISEh/wAAAP8AAAD/bW1t/+rq6v/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//s7Oz/iMdo/z+nB/8/
+ pwf/P6cH/0mrFP9zh2qaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiAAAA3QAAAP8MDAz/X19f/3Fxcf9ycnL/dnZ2/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/bW1t/yEhIf8AAAD/AAAA/25ubv/q6ur/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/y9XG/0irFP8/pwf/P6cH/z+nB/9xvUnj9vv0EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAADdAAAA/wwMDP9fX1//cXFx/3h4eP/X
+ 19f/9PT0/4eHh/9xcXH/cXFx/3Fxcf9xcXH/cXFx/21tbf8hISH/AAAA/wEBAf9ubm7/6urq/+vr6//r
+ 6+v/6+vr/+vr6//Gxsb/Gxsb/2mbT/8/pwf/P6cH/z+nB/9AqAn/otSIjAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAANcAAAD/DAwM/2BgYP9x
+ cXH/dnZ2/9zc3P///////v7+/4+Pj/9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9tbW3/ISEh/wAAAP8A
+ AAD/bGxs/+rq6v/r6+v/6+vr/8bGxv8ZGRn/AAAA/zA0Lv5WsCb9P6cH/z+nB/8/pwf/WbMq+97v1jEA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAP8F
+ BQX/Xl5e/3Fxcf9xcXH/n5+f///////9/f3/qqqq/3Fxcf9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/bW1t/yEhIf8AAAD/AAAA/25ubv/q6ur/x8fH/xkZGf8AAAD/AAAA/gAAAHOZz32aQKcI/z+nB/8/
+ pwf/P6cH/4LFX8j///8FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAJwAAAP8BAQH/RERE/3Fxcf9xcXH/enp6/8XFxf+ioqL/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/cXFx/21tbf8hISH/AAAA/wEBAf9cXFz/Ghoa/wAAAP8AAAD+AAAAdAAAAAD0
+ +vIWartA6z+nB/8/pwf/P6cH/0WqD/+y251xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJwAAAD/AQEB/0RERP9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9x
+ cXH/cXFx/4WFhf+EhIT/cXFx/3Fxcf9xcXH/cXFx/25ubv8kJCT/AAAA/wAAAP8AAAD/AAAA/wAAAP0A
+ AABzAAAAAAAAAAAAAAAAvOCqZEaqEf8/pwf/P6cH/z+nB/9htjT04vHbJwAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAACjAAAA/wICAv9DQ0P/cXFx/3Fxcf9x
+ cXH/cXFx/3Fxcf9xcXH/m5ub//r6+v/29vb/eHh4/3Fxcf9xcXH/bm5u/yQkJP8AAAD/AAAA+wAAAMUA
+ AAD/AAAA/QAAAHMAAAAAAAAAAAAAAAAAAAAA////AofIZsE/pwf/P6cH/z+nB/8/pwf/iMhnwf///wMA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAApAAAAP8C
+ AgL/RERE/3Fxcf9xcXH/cXFx/3Fxcf+VlZX/+vr6///////l5eX/dHR0/3Fxcf9ubm7/JCQk/wAAAP8A
+ AAD7AAAAXAAAAAQAAABBAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/w1ytetTD2P6cH/z+nB/8/
+ pwf/RaoP/7Pcn3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAwAAAKQAAAD/AQEB/0RERP9xcXH/cXFx/3Fxcf++vr7//////+fn5/9/f3//cXFx/25ubv8k
+ JCT/AAAA/wAAAPoAAABbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACt
+ 2Zd5RKkN/z+nB/8/pwf/P6cH/161MPbc79QtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAACjAAAA/wICAv9DQ0P/cXFx/3Fxcf97e3v/qamp/3x8fP9x
+ cXH/bm5u/yQkJP8AAAD/AAAA+wAAAFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAD///8GgcVeyj+nB/8/pwf/P6cH/z+nB/+AxFzM/P38CQAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAApAAAAP8CAgL/RERE/3Fxcf9x
+ cXH/cXFx/3Fxcf9ubm7/JCQk/wAAAP8AAAD7AAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4fHaLF61MPc/pwf/P6cH/z+nB/9CqAv/pNWMiwAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAKQA
+ AAD/AQEB/0RERP9xcXH/cXFx/25ubv8kJCT/AAAA/wAAAPoAAABbAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALHanHJGqhH/P6cH/z+nB/8/
+ pwf/U7Ai/crmvUcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAUAAACjAAAA/wICAv9DQ0P/bm5u/yQkJP8AAAD/AAAA+wAAAFsAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wSL
+ yWu6P6cH/z+nB/8/pwf/P6cH/2y7Q+ft9ukbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAApAAAAP8CAgL/ERER/wAAAP8AAAD7AAAAXAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAADr9ucca7tB6j+nB/8/pwf/P6cH/z+nB/+Mymy6////AwAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAKIAAAD+AAAA/wAAAPcA
+ AABaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0+rINnjBUttHqxL/P6cH/z+nB/9SryD/6/bnLQAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIA
+ AABEAAAAZAAAACcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wfT6shIntKEgY7Lb5uh
+ 04iG+vz5CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////wAA//8D////AAD//gP///8AAP/+Afgf
+ /wAA//wB8Af/AAD/+AHgA/8AAP/4AMAB/wAA//AAgAD/AAD/4AAAAH8AAP/AIAAAPwAA/8AgAAAfAAD/
+ gGAAAA8AAP8A8AAABwAA/gHgAAAHAAD8AcAAAAMAAPgDgAAAAwAA8AcAAAADAADwDgAAAAMAAPAcAAAA
+ AwAA8DgAAAADAAD4cAAAAAcAAP/gAAAABwAA/8AAAAAPAAD/wAAAAB8AAP/AAAAAPwAA/8AAAAB/AAD/
+ gAAAAP8AAP8AAAAB/wAA/gAAAAP/AAD8AAAAB/8AAPgAAAAP/wAA8AAAAA//AADgAAAAD/8AAMAAAAAH
+ /wAAwAAAAAP/AADAAAAAA/8AAOAAAAMB/wAA4AAABwD/AADwAAAPgP8AAPgAAf/AfwAA/AAD/8A/AAD+
+ AAf/4D8AAP8AD//wHwAA/4Af//APAAD/wD//+AcAAP/gf//8BwAA//D///4HAAD///////8AACgAAAAg
+ AAAAQAAAAAEAIAAAAAAAABAAACMuAAAjLgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAP///w////8n////EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADD47MpWrMr9UGoCv9UsCP8m9F/VwAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AHG+SLw/pwf/P6cH/z+nB/9uvES4AAAAAAAAAAAA
+ AAAAAAAAAAAAACMAAACHAAAAqQAAAH4AAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACe0oNcQ6kM/z+nB/8/pwf/P6cH/1KwIfvw
+ 9+0VAAAAAAAAAAAAAABLAAAA9Q0NDf8vLy//CAgI/wAAAOsAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2+7TF1mzKus/pwf/P6cH/1qzKvo/
+ pwf/P6cH/47Lb20AAAAAAAAASwAAAPgwMDD/2tra/+vr6//R0dH/KCgo/wAAAO4AAAA0AAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wF2wE+zP6cH/z+nB/9b
+ tC3otdyhYUCnCP8/pwf/aro/ywAAAEsAAAD4MDAw/9vb2//r6+v/6+vr/+vr6//W1tb/Jycn/wAAAO4A
+ AAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAk810c0GoCv8/
+ pwf/RKkO/6DThlf///8FYLYy6T+nB/9IqxP/Jy0l+i8vL//b29v/6+vr/+vr6//r6+v/6+vr/+vr6//W
+ 1tb/Jycn/wAAAO4AAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKfWj0VM
+ rRn7P6cH/z+nB/95wVOr////AAAAAAB8w1eNP6cH/z+nB/9pklP/29vb/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//W1tb/Jycn/wAAAO4AAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5
+ 3qYtVbEk8D+nB/8/pwf/XLQt5+Lx3BQAAAAAAAAAAFZgUWRLrBf/P6cH/2G2NP/s7Oz/6+vr/+vr6//r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//W1tb/Jycn/wAAAO4AAAAzAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAxOS1I1u0LOY/pwf/P6cH/0qsFv2n1o9GAAAAAAAAAAAAAABLAAAA+FSONf8/pwf/P6cH/8beuf/r
+ 6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//X19f/Jycn/wAAAOMAAAAKAAAAAAAAAAAA
+ AAAAAAAAANPqyBpgtjLdP6cH/z+nB/9BqAr/j8twfAAAAAAAAAAAAAAASwAAAPgvLy//xNS8/0CnCP8/
+ pwf/esBU/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6/+9vb3/AAAA/wAAAFMA
+ AAAAAAAAAAAAAAD+//4JaLo90T+nB/8/pwf/P6cH/4HFXaL///8BAAAAAAAAAEsAAAD4Ly8v/9vb2//r
+ 6+v/cr1K/z+nB/9BqAr/1uXP/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+Hh4f8A
+ AAD/AAAAawAAAAAAAAAAAAAAAOXy4B5WsSbzP6cH/z+nB/96wlSx////BQAAAAAAAABLAAAA+C8vL//b
+ 29v/6+vr/+vr6//A3LH/P6cH/z+nB/+Ixmj/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/a2tr/wAAAP8AAAA6AAAAAAAAAAAAAAAAAAAAAOLx3BmTzXZilM12aP///wUAAAAAAAAASwAAAPgv
+ Ly//29vb/+vr6//r6+v/6+vr/+zs7P9htjT/P6cH/0WqD//d59j/6+vr/+vr6//r6+v/6+vr/+vr6//r
+ 6+v/6+vr/2xsbP8AAAD/AAAAtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgA
+ AAD4Ly8v/9vb2//r6+v/6+vr/+vr6//r6+v/6+vr/7DWnP8/pwf/P6cH/47IcP/r6+v/6+vr/+vr6//r
+ 6+v/6+vr/+vr6/9tbW3/AAAA/wAAAMAAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAvgQEBP/MzMz/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6uvp/1iyKf8/pwf/RqoQ/93n2P/r
+ 6+v/6+vr/+vr6//r6+v/bW1t/wAAAP8AAADAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAB4AAAA/zExMf/c3Nz/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/rNSX/z+nB/8/
+ pwf/i8dr/+vr6//r6+v/6+vr/21tbf8AAAD/AAAAwAAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAOQAAAPERERH/AgIC/zExMf/c3Nz/6+vr/+vr6//r6+v/6+vr/+vr6//p
+ 6+j/VrEl/z+nB/9DqQ3/1+XP/+vr6/9tbW3/AAAA/wAAAMAAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAADkAAADxFxcX/2lpaf9KSkr/AgIC/zExMf/c3Nz/6+vr/+vr6//r
+ 6+v/6+vr/+vr6/+s1Jf/P6cH/z+nB/99wVj/cHBw/wAAAP8AAADAAAAACwAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5AAAA8RcXF/9paWn/cXFx/3Fxcf9KSkr/AgIC/zExMf/c
+ 3Nz/6+vr/+vr6//r6+v/6+vr/+rr6f9ctC3/P6cH/0CnCP9AWDT/AAAAwAAAAAsAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOQAAAPEXFxf/aWlp/3Fxcf9xcXH/cXFx/3Fxcf9K
+ Skr/AgIC/zAwMP/c3Nz/6+vr/+vr6//r6+v/6+vr/7nZqP8/pwf/P6cH/1SoKP2QmI0eAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkAAADxFxcX/2lpaf+FhYX/ysrK/3t7e/9x
+ cXH/cXFx/3Fxcf9KSkr/AgIC/zAwMP/c3Nz/6+vr/+vr6//r6+v/d3d3/1ajLf8/pwf/P6cH/33DWJkA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAA7RcXF/9paWn/fX19/+/v7//z
+ 8/P/fn5+/3Fxcf9xcXH/cXFx/3Fxcf9KSkr/AgIC/zAwMP/c3Nz/6+vr/25ubv8AAAD/Q1k430GoCv8/
+ pwf/S6wW/bHbnDoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAD/OTk5/3Fxcf+A
+ gID/19fX/4qKiv9xcXH/cXFx/3Fxcf9xcXH/cXFx/3Fxcf9KSkr/AgIC/zAwMP9oaGj/AAAA/wAAAMAV
+ FRUMbrxFwz+nB/8/pwf/Z7k71P///wYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJYA
+ AAD/QEBA/3Fxcf9xcXH/cXFx/3Fxcf9zc3P/rq6u/39/f/9xcXH/cXFx/0xMTP8CAgL/AAAA/wAAAP8A
+ AADAAAAACwAAAAC94KwtTq4b+j+nB/8/pwf/ichogwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAQAAAJkAAAD/QEBA/3Fxcf9xcXH/cXFx/87Ozv//////mZmZ/3Fxcf9MTEz/AgIC/wAAALMA
+ AABIAAAAewAAAAsAAAAAAAAAAAAAAACGx2WHP6cH/z+nB/9Orhr6td2hNAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAQAAAJkAAAD/QEBA/3Fxcf91dXX/7Ozs/7CwsP9xcXH/TExM/wICAv8A
+ AACzAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///whluDnXP6cH/z+nB/9luDnW/f79CQAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAJkAAAD/QEBA/3Fxcf9xcXH/cXFx/0xMTP8C
+ AgL/AAAAswAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALHbnThMrRn8P6cH/z+nB/+C
+ xV+UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAJkAAAD/QEBA/3Fxcf9M
+ TEz/AgIC/wAAALMAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIrJaYQ/
+ pwf/P6cH/0irE/6i1IlOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAJkA
+ AAD/KSkp/wICAv8AAACzAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA////BW28Q8g/pwf/P6cH/1iyKO3P6MMdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAQAAAIsAAADrAAAAoQAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAA0+rIGHS/TalftTD1Ua8g/5fPe2oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wP///8S////AQAAAAAAAAAA/+P////B////
+ geD//4DAf/8AgD/+AAAf/gAAD/wIAAf4GAAD8DAAAeBgAAHAQAABwIAAAeEAAAH+AAAD/gAAB/4AAA/8
+ AAAf+AAAP/AAAH/gAAD/wAAA/4AAAH+AAAA/wAAIP8AAHB/gAPwP8AH+D/gD/wf8B/8D/g//g////+Mo
+ AAAAEAAAACAAAAABACAAAAAAAAAEAAAjLgAAIy4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABw
+ vUhLXLQtjZvRfxYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACe
+ 0oMXSqwV7j+nB/9luDhyAAAAAAAAAFkTExPMAwMDoAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/
+ //8AW7QsrUaqEPlUsSPWVLAjzgAAAGRPT0/95+fn/6+vr/8NDQ3EAAAADQAAAAAAAAAAAAAAAAAAAAAA
+ AAAAbbxEbUCnCP9luDmAbbxDX0GoCv9nc2H+5+fn/+vr6//r6+v/r6+v/w0NDcQAAAANAAAAAAAAAAAA
+ AAAAdL9NTkSpDvtUsCLK4vHcBRQXE2pHohb/lMp4/+vr6//r6+v/6+vr/+vr6/+wsLD/DQ0NwQAAAAMA
+ AAAAecFTPUaqEfdLrBfokMtxHwAAAGRPT0/9mMl+/06tG//m6eT/6+vr/+vr6//r6+v/6+vr/2hoaP8A
+ AAAvAAAAAHC9SEpXsieygcVeLwAAAGRPT0/95+fn/+Dn3f9HqxL/pdCO/+vr6//r6+v/6+vr/8vLy/8d
+ HR3sAAAADwAAAAAAAAAAAAAAAAAAAEFAQED95+fn/+vr6//r6+v/jMdt/1WwJP/n6ub/6+vr/8vLy/8d
+ HR3vAAAANgAAAAAAAAAAAAAAAAAAAAAAAABoERER/7W1tf/r6+v/6+vr/9vl1f9Fqg//pNCN/8vLy/8d
+ HR3vAAAANgAAAAAAAAAAAAAAAAAAAAAAAABZJiYm+2VlZf8gICD/tbW1/+vr6//r6+v/jMdt/0+uHP8v
+ NSzvAAAANgAAAAAAAAAAAAAAAAAAAAAAAABZJiYm+4qKiv9zc3P/Z2dn/x8fH/+1tbX/6+vr/8HJvf9F
+ phD/WK0rrQAAAAAAAAAAAAAAAAAAAAAAAAALFBQU+3Z2dv/R0dH/dHR0/3Fxcf9nZ2f/Hx8f/5iYmP8d
+ HR3vTpEqq0KoC/96wlRFAAAAAAAAAAAAAAAAAAAAAAAAAIw9PT3/cXFx/4mJif+xsbH/aGho/xYWFuwA
+ AACwAAAANr3grAtOrhvgTq4b37XdoQ0AAAAAAAAAAAAAAAAAAAAAAAAAjT09Pf+RkZH/eHh4/xYWFuwA
+ AAAwAAAAAAAAAAAAAAAAecFTRkKoC/5ftTGcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNNzc3/xYWFuwA
+ AAAwAAAAAAAAAAAAAAAAAAAAAAAAAABhtjOUQagK/3O+S1YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF0A
+ AAAqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0+rIBmi6PWhuvERfAAAAAPj/AADwhwAA4AMAAOABAADA
+ AAAAgAAAAIAAAADgAQAA4AMAAMAHAACADwAAAAcAAIADAACA4wAAwfEAAOPxAAA=
+
+
\ No newline at end of file
diff --git a/MediaTester/MediaTester.csproj b/MediaTester/MediaTester.csproj
index 0e0fb7d..c06f2c3 100644
--- a/MediaTester/MediaTester.csproj
+++ b/MediaTester/MediaTester.csproj
@@ -1,5 +1,6 @@
+
Debug
@@ -9,10 +10,11 @@
Properties
KrahmerSoft.MediaTester
MediaTester
- v4.5
+ v4.7.2
512
+
AnyCPU
@@ -33,13 +35,174 @@
prompt
4
+
+ app.manifest
+
+
+ MediaTesterLogo.ico
+
+
+ true
+
-
- ..\packages\Costura.Fody.1.6.2\lib\dotnet\Costura.dll
- False
+
+ ..\packages\Costura.Fody.5.7.0\lib\netstandard1.0\Costura.dll
+
+
+ ..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll
+
+
+ ..\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll
+ True
+ True
+
+ ..\packages\System.AppContext.4.3.0\lib\net463\System.AppContext.dll
+ True
+ True
+
+
+ ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll
+
+
+
+ ..\packages\System.Console.4.3.1\lib\net46\System.Console.dll
+ True
+ True
+
+
+ ..\packages\System.Diagnostics.DiagnosticSource.6.0.0\lib\net461\System.Diagnostics.DiagnosticSource.dll
+
+
+ ..\packages\System.Diagnostics.Tracing.4.3.0\lib\net462\System.Diagnostics.Tracing.dll
+ True
+ True
+
+
+ ..\packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll
+ True
+ True
+
+
+ ..\packages\System.IO.4.3.0\lib\net462\System.IO.dll
+ True
+ True
+
+
+ ..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll
+ True
+ True
+
+
+
+ ..\packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll
+ True
+ True
+
+
+ ..\packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll
+ True
+ True
+
+
+ ..\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll
+ True
+ True
+
+
+ ..\packages\System.Linq.4.3.0\lib\net463\System.Linq.dll
+ True
+ True
+
+
+ ..\packages\System.Linq.Expressions.4.3.0\lib\net463\System.Linq.Expressions.dll
+ True
+ True
+
+
+ ..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll
+
+
+ ..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll
+ True
+ True
+
+
+ ..\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll
+ True
+ True
+
+
+
+ ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll
+
+
+ ..\packages\System.Reflection.4.3.0\lib\net462\System.Reflection.dll
+ True
+ True
+
+
+ ..\packages\System.Runtime.4.3.1\lib\net462\System.Runtime.dll
+ True
+ True
+
+
+ ..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll
+
+
+ ..\packages\System.Runtime.Extensions.4.3.1\lib\net462\System.Runtime.Extensions.dll
+ True
+ True
+
+
+ ..\packages\System.Runtime.InteropServices.4.3.0\lib\net463\System.Runtime.InteropServices.dll
+ True
+ True
+
+
+ ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll
+ True
+ True
+
+
+ ..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net463\System.Security.Cryptography.Algorithms.dll
+ True
+ True
+
+
+ ..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll
+ True
+ True
+
+
+ ..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll
+ True
+ True
+
+
+ ..\packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net461\System.Security.Cryptography.X509Certificates.dll
+ True
+ True
+
+
+ ..\packages\System.Text.Encodings.Web.6.0.0\lib\net461\System.Text.Encodings.Web.dll
+
+
+ ..\packages\System.Text.Json.6.0.2\lib\net461\System.Text.Json.dll
+
+
+ ..\packages\System.Text.RegularExpressions.4.3.1\lib\net463\System.Text.RegularExpressions.dll
+ True
+ True
+
+
+ ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll
+
+
+ ..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll
+
@@ -48,8 +211,19 @@
+
+ ..\packages\System.Xml.ReaderWriter.4.3.1\lib\net46\System.Xml.ReaderWriter.dll
+ True
+ True
+
+
+ Form
+
+
+ AboutForm.cs
+
Form
@@ -58,6 +232,9 @@
+
+ AboutForm.cs
+
Main.cs
@@ -71,6 +248,7 @@
Resources.resx
True
+
SettingsSingleFileGenerator
@@ -92,18 +270,24 @@
-
+
+
-
+
This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
-
+
+
+
+
+
-
+
+
+
+
@@ -68,9 +69,10 @@
-
+
+
@@ -85,9 +87,10 @@
-
+
+
@@ -109,9 +112,16 @@
2.0
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ ..\Resources\MediaTesterLogo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\info.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
\ No newline at end of file
diff --git a/MediaTester/Properties/Settings.Designer.cs b/MediaTester/Properties/Settings.Designer.cs
index 23b45c8..f9bd996 100644
--- a/MediaTester/Properties/Settings.Designer.cs
+++ b/MediaTester/Properties/Settings.Designer.cs
@@ -12,7 +12,7 @@ namespace KrahmerSoft.MediaTester.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
diff --git a/MediaTester/Resources/MediaTesterLogo.png b/MediaTester/Resources/MediaTesterLogo.png
new file mode 100644
index 0000000..12864c5
Binary files /dev/null and b/MediaTester/Resources/MediaTesterLogo.png differ
diff --git a/MediaTester/Resources/info.png b/MediaTester/Resources/info.png
new file mode 100644
index 0000000..05799e6
Binary files /dev/null and b/MediaTester/Resources/info.png differ
diff --git a/MediaTester/app.manifest b/MediaTester/app.manifest
new file mode 100644
index 0000000..cb7f6ec
--- /dev/null
+++ b/MediaTester/app.manifest
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PerMonitorV2, unaware
+
+
+
+
diff --git a/MediaTester/packages.config b/MediaTester/packages.config
index a6467d8..5c94033 100644
--- a/MediaTester/packages.config
+++ b/MediaTester/packages.config
@@ -1,5 +1,60 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MediaTesterCli/App.config b/MediaTesterCli/App.config
deleted file mode 100644
index fe68427..0000000
--- a/MediaTesterCli/App.config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/MediaTesterCli/FodyWeavers.xml b/MediaTesterCli/FodyWeavers.xml
deleted file mode 100644
index c6e1b7c..0000000
--- a/MediaTesterCli/FodyWeavers.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/MediaTesterCli/MediaTesterCli.csproj b/MediaTesterCli/MediaTesterCli.csproj
index 9f0f05c..9283e89 100644
--- a/MediaTesterCli/MediaTesterCli.csproj
+++ b/MediaTesterCli/MediaTesterCli.csproj
@@ -1,83 +1,11 @@
-
-
-
+
- Debug
- AnyCPU
- {82DBB478-8EF7-45B1-8200-F28BEF178019}
+ net6.0
Exe
- Properties
KrahmerSoft.MediaTesterCli
- MediaTesterCli
- v4.5
- 512
-
-
+ false
-
- AnyCPU
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- AnyCPU
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
-
- ..\packages\Costura.Fody.1.6.2\lib\dotnet\Costura.dll
- False
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {d684acbc-9d01-4515-8cb1-969c15b22c4d}
- MediaTesterLib
-
-
-
+
-
-
-
-
- This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
-
-
-
-
-
\ No newline at end of file
diff --git a/MediaTesterCli/Program.cs b/MediaTesterCli/Program.cs
index a77a7d3..d5bef91 100644
--- a/MediaTesterCli/Program.cs
+++ b/MediaTesterCli/Program.cs
@@ -1,6 +1,7 @@
using KrahmerSoft.MediaTesterLib;
using System;
using System.IO;
+using System.Runtime.InteropServices;
namespace KrahmerSoft.MediaTesterCli
{
@@ -9,35 +10,62 @@ internal class Program
private static void Main(string[] args)
{
string testDirectory = null;
- if (args == null || args.Length < 1)
+ if (args == null || args.Length == 0)
{
while (string.IsNullOrEmpty(testDirectory))
{
Console.WriteLine();
Console.WriteLine();
- Console.Write("Please enter a drive letter or path to test: ");
+ Console.Write("Please enter a drive letter or path: ");
testDirectory = Console.ReadLine();
}
- if (!testDirectory.Contains(@":\"))
+ }
+ else
+ {
+ int pos = Array.IndexOf(args, "-d");
+ if (args.Length > pos)
+ {
+ testDirectory = args[pos + 1];
+ }
+
+ if (testDirectory == null)
{
- testDirectory = Path.Combine(testDirectory.Substring(0, 1).ToUpper() + @":\", MediaTester.TempSubDirectoryName);
+ Console.WriteLine("Path missing");
+ Environment.Exit(0);
}
}
- else
+
+ // Add :\ in case of single letter (e.g. C), since windows doesn't accept the drive letter as valid path
+ if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
+ {
+ if (testDirectory.Length == 1)
+ {
+ testDirectory += @":\";
+ }
+ }
+
+ DirectoryInfo info = new(testDirectory);
+ if (info.Exists)
+ {
+ testDirectory = info.FullName;
+ }
+
+ if (!Directory.Exists(testDirectory))
{
- testDirectory = args[0];
+ Console.WriteLine("Path doesn't exist or is invalid");
+ Environment.Exit(0);
}
- testDirectory = testDirectory.TrimEnd('\\');
+ testDirectory = Path.TrimEndingDirectorySeparator(testDirectory);
if (!testDirectory.EndsWith(MediaTester.TempSubDirectoryName))
{
testDirectory = Path.Combine(testDirectory, MediaTester.TempSubDirectoryName);
}
Console.WriteLine();
- Console.WriteLine($"Bytes per file: {MediaTester.FILE_SIZE.ToString("#,##0")}");
- Console.WriteLine($"Data block size: {MediaTester.DATA_BLOCK_SIZE.ToString("#,##0")}");
- Console.WriteLine($"Blocks per file: {MediaTester.DATA_BLOCKS_PER_FILE.ToString("#,##0")}");
+ Console.WriteLine($"Bytes per file: {MediaTester.FILE_SIZE:#,##0}");
+ Console.WriteLine($"Data block size: {MediaTester.DATA_BLOCK_SIZE:#,##0}");
+ Console.WriteLine($"Blocks per file: {MediaTester.DATA_BLOCKS_PER_FILE:#,##0}");
Console.WriteLine($"Writing temp files to: {testDirectory}...");
Console.WriteLine();
@@ -45,88 +73,79 @@ private static void Main(string[] args)
{
};
- mediaTester.AfterWriteBlock += AfterWriteBlock;
- mediaTester.AfterQuickTest += AfterQuickTest;
- mediaTester.AfterVerifyBlock += AfterVerifyBlock;
- mediaTester.OnException += OnMediaTesterException;
+ mediaTester.BlockWritten += AfterWriteBlock;
+ mediaTester.QuickTestCompleted += AfterQuickTest;
+ mediaTester.BlockVerified += AfterVerifyBlock;
- bool result = mediaTester.FullTest();
+ bool result = false;
+ try
+ {
+ result = mediaTester.FullTest();
+ }
+ catch (Exception ex)
+ {
+ LogException(mediaTester, ex);
+ }
Console.WriteLine();
Console.WriteLine("Media Test Summary...");
Console.WriteLine("------------------------------------------------");
Console.WriteLine("Result: " + (result ? "PASS" : "FAIL"));
Console.WriteLine($"Temp File Path: {mediaTester.Options.TestDirectory}");
- Console.WriteLine($"Total bytes attempted: {mediaTester.Options.MaxBytesToTest.ToString("#,##0")}");
+ Console.WriteLine($"Total bytes attempted: {mediaTester.TotalTargetBytes:#,##0}");
if (!mediaTester.Options.StopProcessingOnFailure || mediaTester.TotalBytesVerified > 0)
- Console.WriteLine($"Verified bytes: {mediaTester.TotalBytesVerified.ToString("#,##0")}");
+ Console.WriteLine($"Verified bytes: {mediaTester.TotalBytesVerified:#,##0}");
if (!mediaTester.Options.StopProcessingOnFailure || mediaTester.TotalBytesFailed > 0)
- Console.WriteLine($"Failed bytes: {mediaTester.TotalBytesFailed.ToString("#,##0")}");
+ Console.WriteLine($"Failed bytes: {mediaTester.TotalBytesFailed:#,##0}");
if (mediaTester.FirstFailingByteIndex > 0)
- Console.WriteLine($"First failing byte index: {mediaTester.FirstFailingByteIndex.ToString("#,##0")}{(mediaTester.Options.QuickFirstFailingByteMethod ? " (quick method)" : string.Empty)}");
+ Console.WriteLine($"First failing byte index: {mediaTester.FirstFailingByteIndex:#,##0}{(mediaTester.Options.QuickFirstFailingByteMethod ? " (quick method)" : string.Empty)}");
- if (!result)
- {
- Console.WriteLine();
- for (int i = 0; i < 20; i++)
- {
- Console.Write(i % 2 == 0 ? string.Empty : " ");
- for (int j = 0; j < 15; j++)
- {
- Console.Write("FAIL! ");
- }
- Console.WriteLine();
- }
- }
+ Console.WriteLine(result ? "SUCCESS!" : "FAIL!");
Console.WriteLine();
Console.WriteLine("Press enter to continue...");
Console.ReadLine();
}
- private static void AfterWriteBlock(MediaTester mediaTester, long absoluteDataBlockIndex, long absoluteDataByteIndex, string testFilePath, long writeBytesPerSecond, int bytesWritten, int bytesFailedWrite)
+ private static void AfterWriteBlock(object sender, WrittenBlockEventArgs e)
{
- if (bytesFailedWrite == 0)
+ MediaTester mediaTester = sender as MediaTester;
+ if (e.BytesFailedWrite == 0)
{
- WriteLog(mediaTester, $"Successfully wrote block {absoluteDataBlockIndex.ToString("#,##0")}. Byte index: {absoluteDataByteIndex.ToString("#,##0")} / {mediaTester.Options.MaxBytesToTest.ToString("#,##0")}. {writeBytesPerSecond.ToString("#,##0")} B/sec ({mediaTester.ProgressPercent.ToString("0.00")}%)");
+ WriteLog(mediaTester, $"Successfully wrote block {e.AbsoluteDataBlockIndex:#,##0}. Byte index: {e.AbsoluteDataByteIndex:#,##0} / {mediaTester.TotalTargetBytes:#,##0}. {e.WriteBytesPerSecond:#,##0} B/sec ({mediaTester.ProgressPercent:0.00}%)");
}
else
{
- WriteLog(mediaTester, $"FAILED writing block {absoluteDataBlockIndex.ToString("#,##0")}. Byte index: {absoluteDataByteIndex.ToString("#,##0")} / {mediaTester.Options.MaxBytesToTest.ToString("#,##0")}. ({mediaTester.ProgressPercent.ToString("0.00")}%)");
+ WriteLog(mediaTester, $"FAILED writing block {e.AbsoluteDataBlockIndex:#,##0}. Byte index: {e.AbsoluteDataByteIndex:#,##0} / {mediaTester.TotalTargetBytes:#,##0}. ({mediaTester.ProgressPercent:0.00}%)");
}
}
- private static void AfterVerifyBlock(MediaTester mediaTester, long absoluteDataBlockIndex, long absoluteDataByteIndex, string testFilePath, long readBytesPerSecond, int bytesVerified, int bytesFailed, long verifyBytesPerSecond)
+ private static void AfterVerifyBlock(object sender, VerifiedBlockEventArgs e)
{
- AfterVerifyBlock(mediaTester, absoluteDataBlockIndex, absoluteDataByteIndex, testFilePath, readBytesPerSecond, bytesVerified, bytesFailed, verifyBytesPerSecond, false);
+ MediaTester mediaTester = sender as MediaTester;
+ AfterVerifyBlock(mediaTester, e.AbsoluteDataBlockIndex, e.AbsoluteDataByteIndex, e.TestFilePath, e.VerifyBytesPerSecond, e.BytesVerified, e.BytesFailed, false);
}
- private static void AfterVerifyBlock(MediaTester mediaTester, long absoluteDataBlockIndex, long absoluteDataByteIndex, string testFilePathlong, long readBytesPerSecond, int bytesVerified, int bytesFailed, long verifyBytesPerSecond, bool isQuickTest = false)
+ private static void AfterVerifyBlock(MediaTester mediaTester, long absoluteDataBlockIndex, long absoluteDataByteIndex, string testFilePathlong, long verifyBytesPerSecond, int bytesVerified, int bytesFailed, bool isQuickTest = false)
{
- if (bytesFailed == 0)
- {
- WriteLog(mediaTester, $"Verified {(isQuickTest ? "quick test " : string.Empty)}block {absoluteDataBlockIndex.ToString("#,##0")}. Byte index: {absoluteDataByteIndex.ToString("#,##0")} / {mediaTester.Options.MaxBytesToTest.ToString("#,##0")}. {(isQuickTest ? string.Empty : readBytesPerSecond.ToString("#,##0") + "B/sec ")}({mediaTester.ProgressPercent.ToString("0.00")}%)");
- }
- else
- {
- WriteLog(mediaTester, $"FAILED {(isQuickTest ? "quick test " : string.Empty)}block {absoluteDataBlockIndex.ToString("#,##0")}! Byte index: {absoluteDataByteIndex.ToString("#,##0")} / {mediaTester.Options.MaxBytesToTest.ToString("#,##0")}. {(isQuickTest ? string.Empty : readBytesPerSecond.ToString("#,##0") + "B/sec ")}({mediaTester.ProgressPercent.ToString("0.00")}%)");
- }
+ WriteLog(mediaTester, $"{(bytesFailed == 0 ? "Verified" : "FAILED")} {(isQuickTest ? "quick test " : string.Empty)}block {absoluteDataBlockIndex,3:#,##0}. Byte index: {absoluteDataByteIndex,14:#,##0} / {mediaTester.TotalTargetBytes:#,##0}. {(isQuickTest ? string.Empty : verifyBytesPerSecond.ToString("#,##0") + "B/sec ")}({mediaTester.ProgressPercent:0.00}%)");
}
- private static void AfterQuickTest(MediaTester mediaTester, long absoluteDataBlockIndex, long absoluteDataByteIndex, string testFilePathlong, long readBytesPerSecond, int bytesVerified, int bytesFailed, long verifyBytesPerSecond)
+ private static void AfterQuickTest(object sender, VerifiedBlockEventArgs e)
{
- AfterVerifyBlock(mediaTester, absoluteDataBlockIndex, absoluteDataByteIndex, testFilePathlong, readBytesPerSecond, bytesVerified, bytesFailed, verifyBytesPerSecond, true);
+ MediaTester mediaTester = sender as MediaTester;
+ AfterVerifyBlock(mediaTester, e.AbsoluteDataBlockIndex, e.AbsoluteDataByteIndex, e.TestFilePath, e.VerifyBytesPerSecond, e.BytesVerified, e.BytesFailed, true);
}
- private static void OnMediaTesterException(MediaTester mediaTester, Exception exception)
+ private static void LogException(MediaTester mediaTester, Exception exception)
{
- WriteLog(mediaTester, $"{exception.Message}");
+ WriteLog(mediaTester, exception.Message);
if (exception.InnerException != null)
{
- OnMediaTesterException(mediaTester, exception.InnerException);
+ LogException(mediaTester, exception.InnerException);
}
}
@@ -136,4 +155,4 @@ private static void WriteLog(MediaTester mediaTester, string message)
Console.WriteLine(finalMessage);
}
}
-}
+}
\ No newline at end of file
diff --git a/MediaTesterCli/Properties/AssemblyInfo.cs b/MediaTesterCli/Properties/AssemblyInfo.cs
index 3589f08..4ec71c0 100644
--- a/MediaTesterCli/Properties/AssemblyInfo.cs
+++ b/MediaTesterCli/Properties/AssemblyInfo.cs
@@ -7,9 +7,9 @@
[assembly: AssemblyTitle("MediaTesterCli")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("KrahmerSoft")]
+[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("MediaTesterCli")]
-[assembly: AssemblyCopyright("Public Domain, Copyright KrahmerSoft 2020")]
+[assembly: AssemblyCopyright("KrahmerSoft 2020, Fabiano Riccardi 2022")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@@ -31,5 +31,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.1.0.0")]
-[assembly: AssemblyFileVersion("1.1.0.0")]
+[assembly: AssemblyVersion("1.2.1.0")]
+[assembly: AssemblyFileVersion("1.2.1")]
diff --git a/MediaTesterCli/packages.config b/MediaTesterCli/packages.config
deleted file mode 100644
index a6467d8..0000000
--- a/MediaTesterCli/packages.config
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/MediaTesterLib/Helpers.cs b/MediaTesterLib/Helpers.cs
index 9f12f7d..3bc7d0d 100644
--- a/MediaTesterLib/Helpers.cs
+++ b/MediaTesterLib/Helpers.cs
@@ -15,4 +15,4 @@ public static void UpdateAverage(ref decimal runningAverage, ref long totalSampl
}
}
}
-}
+}
\ No newline at end of file
diff --git a/MediaTesterLib/MediaTester.cs b/MediaTesterLib/MediaTester.cs
index 8ccf10e..b98977c 100644
--- a/MediaTesterLib/MediaTester.cs
+++ b/MediaTesterLib/MediaTester.cs
@@ -6,27 +6,110 @@
namespace KrahmerSoft.MediaTesterLib
{
- public delegate void WriteBlockCompleteHandler(MediaTester mediaTester, long absoluteDataBlockIndex, long absoluteDataByteIndex, string testFilePath, long writeBytesPerSecond, int bytesWritten, int bytesFailedWrite);
- public delegate void VerifyBlockCompleteHandler(MediaTester mediaTester, long absoluteDataBlockIndex, long absoluteDataByteIndex, string testFilePath, long readBytesPerSecond, int bytesVerified, int bytesFailed, long verifyBytesPerSecond);
- public delegate void ExceptionHandler(MediaTester mediaTester, Exception exception);
+
+
+
+
+ public class VerifiedBlockEventArgs : EventArgs
+ {
+ public VerifiedBlockEventArgs(long absoluteDataBlockIndex, long absoluteDataByteIndex, string testFilePath, long readBytesPerSecond, int bytesVerified, int bytesFailed)
+ {
+ AbsoluteDataBlockIndex = absoluteDataBlockIndex;
+ AbsoluteDataByteIndex = absoluteDataByteIndex;
+ TestFilePath = testFilePath;
+ VerifyBytesPerSecond = readBytesPerSecond;
+ BytesVerified = bytesVerified;
+ BytesFailed = bytesFailed;
+ }
+
+ public long AbsoluteDataBlockIndex;
+ public long AbsoluteDataByteIndex;
+ public string TestFilePath;
+ public long VerifyBytesPerSecond;
+ public int BytesVerified;
+ public int BytesFailed;
+ }
+
+ public class WrittenBlockEventArgs : EventArgs
+ {
+ public WrittenBlockEventArgs(long absoluteDataBlockIndex, long absoluteDataByteIndex, string testFilePath, long writeBytesPerSecond, int bytesWritten, int bytesFailedWrite)
+ {
+ AbsoluteDataBlockIndex = absoluteDataBlockIndex;
+ AbsoluteDataByteIndex = absoluteDataByteIndex;
+ TestFilePath = testFilePath;
+ WriteBytesPerSecond = writeBytesPerSecond;
+ BytesWritten = bytesWritten;
+ BytesFailedWrite = bytesFailedWrite;
+ }
+
+ public long AbsoluteDataBlockIndex;
+ public long AbsoluteDataByteIndex;
+ public string TestFilePath;
+ public long WriteBytesPerSecond;
+ public int BytesWritten;
+ public int BytesFailedWrite;
+ }
+
+ public class FileDeletedEventArgs : EventArgs
+ {
+ public FileDeletedEventArgs(int _totalFiles, int _removedFiles)
+ {
+ totalFiles = _totalFiles;
+ removedFiles = _removedFiles;
+ }
+
+ public int totalFiles;
+ public int removedFiles;
+ }
+
+ public class ExceptionEventArgs : EventArgs
+ {
+ public ExceptionEventArgs(Exception e)
+ {
+ Exception = e;
+ }
+
+ public Exception Exception;
+ }
public class MediaTester
{
- private const FileOptions FileFlagNoBuffering = (FileOptions)0x20000000;
+ ///
+ /// Specify the size of each block, in bytes.
+ ///
public const int DATA_BLOCK_SIZE = 8 * 1024 * 1024;
- public const int DATA_BLOCKS_PER_FILE = 1 * 1024 / 8;
- public const int FILE_SIZE = DATA_BLOCK_SIZE * DATA_BLOCKS_PER_FILE; // 1 GiB == 1024 * 1024 * 1024 == 1,073,741,824
+
+ ///
+ /// Specify the number of blocks per files.
+ ///
+ public const int DATA_BLOCKS_PER_FILE = 128;
+
+ ///
+ /// The total size of a test file, in bytes.
+ ///
+ public const int FILE_SIZE = DATA_BLOCK_SIZE * DATA_BLOCKS_PER_FILE;
+
public const string TempSubDirectoryName = "MediaTester";
- public WriteBlockCompleteHandler AfterWriteBlock;
- public VerifyBlockCompleteHandler AfterQuickTest;
- public VerifyBlockCompleteHandler AfterVerifyBlock;
- public ExceptionHandler OnException;
+ public event EventHandler QuickTestCompleted;
+
+ public event EventHandler BlockVerified;
+
+ public event EventHandler BlockWritten;
+
+ public event EventHandler FileDeleted;
+
+ public event EventHandler ExceptionThrown;
+ private const FileOptions FileFlagNoBuffering = (FileOptions) 0x20000000;
+
+ ///
+ /// Say if write+verify or only-verify mode
+ ///
private bool _isBatchMode = false;
+
private Options _options;
- private decimal _averageVerifyBytesPerSecond;
- private long _totalVerifySpeedSamples;
+ public int _totalTargetFiles = 0;
public Options Options
{
@@ -44,24 +127,11 @@ public Options Options
}
}
+ ///
+ /// Store the result of the test.
+ ///
public bool IsSuccess { get; protected set; } = true;
- private long GetTotalDataFileBytes()
- {
- long totalBytes = 0;
- for (int testFileIndex = 0; ; testFileIndex++)
- {
- string testFilePath = GetTestFilePath(testFileIndex);
- if (!File.Exists(testFilePath))
- break;
-
- FileInfo fileInfo = new FileInfo(testFilePath);
- totalBytes += fileInfo.Length;
- }
-
- return totalBytes;
- }
-
public decimal ProgressPercent { get; protected set; }
public long TotalBytesWritten { get; protected set; }
public long TotalBytesVerified { get; protected set; }
@@ -69,197 +139,135 @@ private long GetTotalDataFileBytes()
public long TotalGeneratedTestFileBytes { get; protected set; }
public decimal FirstFailingByteIndex { get; protected set; } = -1;
+ // Number of bytes to write or read. It is used to compute the progress percentage and stats.
+ public long TotalTargetBytes { get; protected set; } = 0;
+
+ ///
+ /// Initialize MediaTester with user-defined options.
+ ///
+ ///
public MediaTester(Options options)
{
Options = options;
}
+ ///
+ /// Initialize MediaTester to perform the test on the given path with default options.
+ ///
+ ///
public MediaTester(string testDirectory)
{
Options.TestDirectory = testDirectory;
}
+ ///
+ /// Start a complete test.
+ ///
+ ///
public bool FullTest()
{
bool success;
_isBatchMode = true;
+ if (_options.MaxBytesToTest <= -1)
+ {
+ TotalTargetBytes = GetAvailableBytes();
+ }
+ else if (_options.MaxBytesToTest > GetAvailableBytes())
+ {
+ TotalTargetBytes = GetAvailableBytes();
+ OnExceptionThrown(new Exception($"Not enough space to test the requested size. Downsizing to the available disk space: {TotalTargetBytes:#,##0} bytes"));
+ }
+ else
+ {
+ TotalTargetBytes = _options.MaxBytesToTest;
+ }
+
success = GenerateTestFiles();
if (Options.StopProcessingOnFailure && !success && Options.QuickFirstFailingByteMethod)
- return success;
+ {
+ return false;
+ }
success = VerifyTestFiles();
if (Options.StopProcessingOnFailure && !success)
- return success;
+ {
+ return false;
+ }
if (TotalGeneratedTestFileBytes != TotalBytesVerified)
{
success = false;
IsSuccess &= false;
- OnException(this, new Exception($"Total bytes verified does not match total bytes written. Total Bytes Written: {TotalGeneratedTestFileBytes.ToString("#,##0")} ; Total Bytes Verified: {TotalBytesVerified.ToString("#,##0")}"));
+ OnExceptionThrown(new Exception($"Total bytes verified does not match total bytes written. Total Bytes Written: {TotalGeneratedTestFileBytes.ToString("#,##0")} ; Total Bytes Verified: {TotalBytesVerified.ToString("#,##0")}"));
}
if (Options.StopProcessingOnFailure && !success)
- return success;
+ {
+ return false;
+ }
_isBatchMode = false;
return IsSuccess;
}
- public bool GenerateTestFiles()
+ ///
+ /// Verify all the test files.
+ ///
+ /// Return true if every byte is correct, false otherwise.
+ public bool VerifyTestFiles()
{
- IsSuccess = true;
- TotalGeneratedTestFileBytes = 0;
- try
- {
- if (Options.MaxBytesToTest < 0)
- {
- Options.MaxBytesToTest = GetAvailableBytes();
- }
-
- int lastFileIndex = (int)((Options.MaxBytesToTest + FILE_SIZE - 1) / FILE_SIZE) - 1;
- for (int testFileIndex = 0; testFileIndex <= lastFileIndex; testFileIndex++)
- {
- string testFilePath = GenerateTestFile(testFileIndex, FILE_SIZE, out int actualTestFileSize);
- TotalGeneratedTestFileBytes += actualTestFileSize;
- if (Options.QuickTestAfterEachFile && testFilePath != null)
- {
- int checkIndex = GetLastDataBlockIndex(actualTestFileSize);
- long absoluteDataBlockIndex = GetAbsoluteDataBlockIndex(testFileIndex, checkIndex);
- long absoluteDataByteIndex = GetAbsoluteDataByteIndex(testFileIndex, checkIndex);
- SetProgressPercent((100M * ((decimal)absoluteDataByteIndex + (decimal)DATA_BLOCK_SIZE)) / (decimal)Options.MaxBytesToTest, 1);
- bool success = VerifyTestFileDataBlock(testFileIndex, testFilePath, checkIndex, out int bytesVerified, out int bytesFailed, out long readBytesPerSecond);
- IsSuccess &= success;
- AfterQuickTest?.Invoke(this, absoluteDataBlockIndex, absoluteDataByteIndex, testFilePath, readBytesPerSecond, bytesVerified, bytesFailed, 0);
- if (bytesFailed > 0 && Options.QuickFirstFailingByteMethod)
- {
- success = false;
- VerifyTestFile(testFileIndex, testFilePath, out bytesVerified, out bytesFailed);
- }
-
- if (Options.StopProcessingOnFailure && !success)
- return success;
- }
- }
+ TotalBytesVerified = 0;
+ TotalBytesFailed = 0;
- return IsSuccess;
+ if (_options.MaxBytesToTest <= -1)
+ {
+ TotalTargetBytes = GetTestFilesSize(GetTestDirectory());
}
- catch (Exception ex)
+ else if (_options.MaxBytesToTest > GetTestFilesSize(GetTestDirectory()))
{
- IsSuccess = false;
- OnException?.Invoke(this, new Exception("An unhandled exception ocurred while writing test data.", ex));
- return false;
+ TotalTargetBytes = GetTestFilesSize(GetTestDirectory());
+ OnExceptionThrown(new Exception($"Not enough space to verify the requested size. Downsizing to available test files: {TotalTargetBytes:#,##0} bytes"));
+ }
+ else
+ {
+ TotalTargetBytes = _options.MaxBytesToTest;
}
- }
- private string GenerateTestFile(int testFileIndex, int testFileSize, out int actualTestFileSize)
- {
- long freeSpace = GetAvailableBytes(actual: true);
- actualTestFileSize = testFileSize;
- if (actualTestFileSize > freeSpace)
- actualTestFileSize = (int)freeSpace;
+ if (!_isBatchMode)
+ IsSuccess = true;
- string testFilePath = GetTestFilePath(testFileIndex);
- Directory.CreateDirectory(GetTestDirectory());
+ bool allFilesSuccess = true;
- do
+ for (int testFileIndex = 0; ; testFileIndex++)
{
- if (File.Exists(testFilePath))
- {
- var fileInfo = new FileInfo(testFilePath);
- if (fileInfo.Length > FILE_SIZE)
- {
- break; // Overwrite the file
- }
+ string testFilePath = GetTestFilePath(testFileIndex);
+ if (!File.Exists(testFilePath))
+ break;
- if (fileInfo.Length == FILE_SIZE || actualTestFileSize == 0)
- {
- // File already exists. Leaving in place.
- actualTestFileSize = (int)fileInfo.Length;
- TotalBytesWritten += fileInfo.Length;
- return testFilePath;
- }
+ bool success = VerifyTestFile(testFileIndex, testFilePath, out _, out _, true);
+ allFilesSuccess &= success;
+ IsSuccess &= success;
- if (actualTestFileSize <= fileInfo.Length)
- {
- // File already exists but needs to be bigger.
- if (freeSpace < FILE_SIZE)
- {
- actualTestFileSize = actualTestFileSize + (int)freeSpace;
- if (actualTestFileSize > FILE_SIZE)
- actualTestFileSize = FILE_SIZE;
- }
- if (actualTestFileSize > FILE_SIZE || freeSpace > FILE_SIZE)
- actualTestFileSize = FILE_SIZE;
- }
+ if (Options.StopProcessingOnFailure && !success)
+ {
+ return allFilesSuccess;
}
- } while (false);
- try
- {
- // Create file and write
- using (var file = new FileStream(testFilePath, FileMode.Create, FileAccess.Write, FileShare.Read, DATA_BLOCK_SIZE,
- FileFlagNoBuffering | FileOptions.WriteThrough))
- using (var fileWriter = new BinaryWriter(file))
+ if (TotalBytesVerified + TotalBytesFailed >= TotalTargetBytes)
{
- // Check if the free space changed after creating the file
- freeSpace = GetAvailableBytes(actual: true);
- if (actualTestFileSize > freeSpace)
- actualTestFileSize = (int)freeSpace; // Adding a directory or file to the FAT can decrease available space.
-
- long lastWriteBytesPerSecond = 0;
- int lastDataBlockIndex = GetLastDataBlockIndex(actualTestFileSize);
- for (int dataBlockIndex = 0; dataBlockIndex <= lastDataBlockIndex; dataBlockIndex++)
- {
- int dataBlockSize = (dataBlockIndex == lastDataBlockIndex && actualTestFileSize % DATA_BLOCK_SIZE != 0)
- ? (int)(actualTestFileSize % DATA_BLOCK_SIZE) : DATA_BLOCK_SIZE;
- long absoluteDataBlockIndex = GetAbsoluteDataBlockIndex(testFileIndex, dataBlockIndex);
- long absoluteDataByteIndex = GetAbsoluteDataByteIndex(testFileIndex, dataBlockIndex);
-
- try
- {
- var dataBlock = GenerateDataBlock(testFileIndex, dataBlockIndex, dataBlockSize);
-
- var stopwatch = new Stopwatch();
- stopwatch.Start();
- fileWriter.Write(dataBlock);
- fileWriter.Flush(); // Force the data to finish writing to the device
- file.Flush(true); // Clear all intermediate file buffers (OS I/O cache, etc)
- stopwatch.Stop();
- long writeBytesPerSecond;
- if (dataBlockSize == DATA_BLOCK_SIZE)
- {
- writeBytesPerSecond = (long)((double)dataBlockSize / stopwatch.Elapsed.TotalSeconds);
- lastWriteBytesPerSecond = writeBytesPerSecond;
- }
- else
- {
- writeBytesPerSecond = lastWriteBytesPerSecond; // prevent an artificial rate spike on the last block
- }
-
- TotalBytesWritten += dataBlockSize;
- SetProgressPercent((100M * ((decimal)absoluteDataByteIndex + (decimal)dataBlockSize)) / (decimal)Options.MaxBytesToTest, 1);
- AfterWriteBlock?.Invoke(this, absoluteDataBlockIndex, absoluteDataByteIndex, testFilePath, writeBytesPerSecond, dataBlockSize, 0);
- }
- catch (Exception ex)
- {
- IsSuccess = false;
- AfterWriteBlock?.Invoke(this, absoluteDataBlockIndex, absoluteDataByteIndex, testFilePath, 0, 0, dataBlockSize);
- OnException?.Invoke(this, new Exception($"Unable to write block to file '{testFilePath}'.", ex));
- return testFilePath;
- }
- }
+ // The requested number of bytes has been verified
+ return allFilesSuccess;
}
}
- catch (Exception ex)
- {
- testFilePath = null;
- IsSuccess = false;
- OnException?.Invoke(this, new Exception($"Unable to open file '{testFilePath}' for writing.", ex));
- }
- return testFilePath;
+ return allFilesSuccess;
}
+ ///
+ /// Remove temporary files in reverse index order.
+ ///
+ /// The number of files to delete.
+ /// The number of deleted files.
public int RemoveTempDataFiles(int filesToRemove = int.MaxValue)
{
// Find the last file index that exists
@@ -286,16 +294,24 @@ public int RemoveTempDataFiles(int filesToRemove = int.MaxValue)
File.Delete(testFilePath);
filesToRemove--;
filesRemoved++;
+ OnFileDeleted(fileCount, filesRemoved);
}
if (Directory.Exists(testDirectory)
&& Directory.EnumerateFiles(testDirectory).FirstOrDefault() == null
&& Directory.EnumerateDirectories(testDirectory).FirstOrDefault() == null)
- Directory.Delete(testDirectory); // Delete empty directory
+ {
+ // Delete empty directory
+ Directory.Delete(testDirectory);
+ }
return filesRemoved;
}
+ ///
+ /// Get the target directory where test files are. This path always ends with the "TempSubDirectoryName".
+ ///
+ ///
public string GetTestDirectory()
{
string testDirectory = Options.TestDirectory;
@@ -309,24 +325,51 @@ public string GetTestDirectory()
testDirectory = Path.Combine(testDirectory, TempSubDirectoryName);
}
- return Path.Combine(testDirectory);
- }
-
- public static long GetAvailableBytes(string directory, bool actual = false)
- {
- return GetAvailableBytes(directory, out _, actual: actual);
+ return testDirectory;
}
+ ///
+ /// Get available space in a drive.
+ ///
+ ///
+ /// Total capacity of drive.
+ /// If true get the concrete free space, otherwise get the current free space summing up test files (if present).
+ ///
public static long GetAvailableBytes(string directory, out long totalSize, bool actual = false)
{
- var driveInfo = new DriveInfo(directory);
+ // TODO catch exception if disk is removed (System.IO.DriveNotFoundException)
+ DriveInfo driveInfo = new DriveInfo(directory);
totalSize = driveInfo.TotalSize;
long freeSpace = driveInfo.AvailableFreeSpace;
if (actual)
return freeSpace;
+ freeSpace += GetTestFilesSize(directory);
+
+ return freeSpace;
+ }
+
+ ///
+ /// Get free bytes on disk.
+ ///
+ /// if true return the concrete free space, otherwise return the concrete space and ignore test files.
+ ///
+ private long GetAvailableBytes(bool actual = false)
+ {
+ return GetAvailableBytes(GetTestDirectory(), out _, actual);
+ }
+
+ ///
+ /// Get the total size of test files in the given directory.
+ ///
+ /// The directory where the test files are.
+ ///
+ private static long GetTestFilesSize(string directory)
+ {
int skippedFiles = 0;
+ long size = 0;
+
// Add the space taken by existing TestMedia files
for (int testFileIndex = 0; skippedFiles < 100; testFileIndex++)
{
@@ -338,53 +381,264 @@ public static long GetAvailableBytes(string directory, out long totalSize, bool
}
var fileInfo = new FileInfo(testFilePath);
- freeSpace += fileInfo.Length;
+ size += fileInfo.Length;
}
- return freeSpace;
+ return size;
}
- private long GetAvailableBytes(bool actual = false)
+
+ ///
+ /// Return the highest relative block ID.
+ ///
+ ///
+ ///
+ private static int GetLastDataBlockIndex(long testFileSize)
{
- return GetAvailableBytes(GetTestDirectory(), out _, actual: actual);
+ return (int) ((testFileSize + DATA_BLOCK_SIZE - 1) / DATA_BLOCK_SIZE) - 1;
}
- private int GetLastDataBlockIndex(int testFileSize)
+ ///
+ /// Return the highest file ID.
+ ///
+ /// The number of bytes to test. If negative, consider all the free space (including past test file).
+ ///
+ private int GetLastTestFileIndex(long testFileSize)
{
- return ((testFileSize + DATA_BLOCK_SIZE - 1) / DATA_BLOCK_SIZE) - 1;
+ if (testFileSize < 0)
+ {
+ testFileSize = GetAvailableBytes();
+ }
+ return (int) ((testFileSize + FILE_SIZE - 1) / FILE_SIZE) - 1;
}
- public bool VerifyTestFiles()
+ ///
+ /// Creates and writes all the test files.
+ ///
+ ///
+ private bool GenerateTestFiles()
{
- TotalBytesVerified = 0;
- TotalBytesFailed = 0;
+ IsSuccess = true;
+ TotalGeneratedTestFileBytes = 0;
+ try
+ {
+ int lastFileIndex = GetLastTestFileIndex(TotalTargetBytes);
+ int _totalFileNumber = lastFileIndex + 1;
- if (!_isBatchMode)
- IsSuccess = true;
+ for (int testFileIndex = 0; testFileIndex <= lastFileIndex; testFileIndex++)
+ {
+ long desideredBytes = ComputeDesideredTestFileSize(testFileIndex, _totalFileNumber, TotalTargetBytes);
+ string testFilePath = GenerateTestFile(testFileIndex, desideredBytes, out long actualTestFileSize);
+ TotalGeneratedTestFileBytes += actualTestFileSize;
+ if (Options.QuickTestAfterEachFile && testFilePath != null)
+ {
+ int checkIndex = 0;
+ long absoluteDataBlockIndex = GetAbsoluteDataBlockIndex(testFileIndex, checkIndex);
+ long absoluteDataByteIndex = GetAbsoluteDataByteIndex(testFileIndex, checkIndex);
+ SetProgressPercent(absoluteDataByteIndex + DATA_BLOCK_SIZE, 1);
+ bool success = VerifyTestFileDataBlock(testFileIndex, testFilePath, checkIndex, out int bytesVerified, out int bytesFailed, out long readBytesPerSecond);
+ IsSuccess &= success;
+ OnQuickTestCompleted(new VerifiedBlockEventArgs(absoluteDataBlockIndex, absoluteDataByteIndex, testFilePath, readBytesPerSecond, bytesVerified, bytesFailed));
+ if (bytesFailed > 0 && Options.QuickFirstFailingByteMethod)
+ {
+ success = false;
+ VerifyTestFile(testFileIndex, testFilePath, out bytesVerified, out bytesFailed);
+ }
- bool allFilesSuccess = true;
- if (Options.MaxBytesToTest < 0)
- Options.MaxBytesToTest = GetTotalDataFileBytes();
+ if (success)
+ {
+ checkIndex = GetLastDataBlockIndex(actualTestFileSize);
+ absoluteDataBlockIndex = GetAbsoluteDataBlockIndex(testFileIndex, checkIndex);
+ absoluteDataByteIndex = GetAbsoluteDataByteIndex(testFileIndex, checkIndex);
+ SetProgressPercent(absoluteDataByteIndex + DATA_BLOCK_SIZE, 1);
+ success = VerifyTestFileDataBlock(testFileIndex, testFilePath, checkIndex, out bytesVerified, out bytesFailed, out readBytesPerSecond);
+ IsSuccess &= success;
+ OnQuickTestCompleted(new VerifiedBlockEventArgs(absoluteDataBlockIndex, absoluteDataByteIndex, testFilePath, readBytesPerSecond, bytesVerified, bytesFailed));
+ if (bytesFailed > 0 && Options.QuickFirstFailingByteMethod)
+ {
+ success = false;
+ VerifyTestFile(testFileIndex, testFilePath, out bytesVerified, out bytesFailed);
+ }
+ }
- for (int testFileIndex = 0; ; testFileIndex++)
+ if (Options.StopProcessingOnFailure && !success)
+ return success;
+ }
+ }
+
+ return IsSuccess;
+ }
+ catch (Exception ex)
{
- string testFilePath = GetTestFilePath(testFileIndex);
- if (!File.Exists(testFilePath))
- break;
+ IsSuccess = false;
+ OnExceptionThrown(new Exception("An unhandled exception occurred while writing test data.", ex));
+ throw;
+ }
+ }
- bool success = VerifyTestFile(testFileIndex, testFilePath, out int bytesVerified, out int bytesFailed, true);
- allFilesSuccess &= success;
- IsSuccess &= success;
+ ///
+ /// Get the number of byte to write for the current file.
+ ///
+ ///
+ ///
+ ///
+ ///
+ private long ComputeDesideredTestFileSize(int fileIndex, int totalFileNumber, long totalBytesToTest)
+ {
+ if (fileIndex < GetLastTestFileIndex(totalBytesToTest))
+ {
+ return FILE_SIZE;
+ }
+ return totalBytesToTest - (totalFileNumber - 1) * FILE_SIZE;
+ }
- if (Options.StopProcessingOnFailure && !success)
- return success;
+ ///
+ /// Create a file and write it. If the file is already on disk, leave it.
+ ///
+ ///
+ /// The desired size of the test file.
+ ///
+ /// The absolute path to test file.
+ private string GenerateTestFile(int testFileIndex, long desideredTestFileSize, out long actualTestFileSize)
+ {
+ long freeSpace = GetAvailableBytes(true);
+ actualTestFileSize = desideredTestFileSize;
+ if (actualTestFileSize > freeSpace)
+ {
+ actualTestFileSize = (int) freeSpace;
+ }
+
+ string testFilePath = GetTestFilePath(testFileIndex);
+ Directory.CreateDirectory(GetTestDirectory());
+
+ // If the file already exist, try to reuse it
+ if (File.Exists(testFilePath))
+ {
+ var fileInfo = new FileInfo(testFilePath);
+ if (fileInfo.Length <= FILE_SIZE)
+ {
+ if (fileInfo.Length == FILE_SIZE || actualTestFileSize == 0)
+ {
+ // File already exists. Leaving in place.
+ actualTestFileSize = (int) fileInfo.Length;
+ TotalBytesWritten += fileInfo.Length;
+ return testFilePath;
+ }
+
+ if (actualTestFileSize <= fileInfo.Length)
+ {
+ // File already exists but needs to be bigger.
+ if (freeSpace < FILE_SIZE)
+ {
+ actualTestFileSize += (int) freeSpace;
+ if (actualTestFileSize > FILE_SIZE)
+ {
+ actualTestFileSize = FILE_SIZE;
+ }
+ }
+ if (actualTestFileSize > FILE_SIZE || freeSpace > FILE_SIZE)
+ {
+ actualTestFileSize = FILE_SIZE;
+ }
+ }
+ }
+ }
+
+ var stopwatch = new Stopwatch();
+ stopwatch.Start();
+
+ try
+ {
+ // Create file and write
+ //https://docs.microsoft.com/en-us/windows/win32/api/fileapi/ns-fileapi-createfile2_extended_parameters
+ // Known current issues in .NET 6:
+ // - https://github.com/dotnet/runtime/issues/62851
+ // - https://github.com/dotnet/runtime/issues/27408
+ using (var file = new FileStream(testFilePath, FileMode.Create, FileAccess.Write, FileShare.Read,
+ DATA_BLOCK_SIZE, FileFlagNoBuffering | FileOptions.WriteThrough))
+ {
+ using (var fileWriter = new BinaryWriter(file))
+ {
+
+ // Check if the free space changed after creating the file since
+ // adding a directory or file to the FAT can decrease available space
+ freeSpace = GetAvailableBytes(true);
+ if (actualTestFileSize > freeSpace)
+ {
+ actualTestFileSize = (int) freeSpace;
+ }
+
+ long lastWriteBytesPerSecond = 0;
+ int lastDataBlockIndex = GetLastDataBlockIndex(actualTestFileSize);
+ double lastTimestamp = 0;
+ for (int dataBlockIndex = 0; dataBlockIndex <= lastDataBlockIndex; dataBlockIndex++)
+ {
+ int dataBlockSize = (dataBlockIndex == lastDataBlockIndex && actualTestFileSize % DATA_BLOCK_SIZE != 0)
+ ? (int) (actualTestFileSize % DATA_BLOCK_SIZE) : DATA_BLOCK_SIZE;
+ long absoluteDataBlockIndex = GetAbsoluteDataBlockIndex(testFileIndex, dataBlockIndex);
+ long absoluteDataByteIndex = GetAbsoluteDataByteIndex(testFileIndex, dataBlockIndex);
+
+ try
+ {
+ var dataBlock = GenerateDataBlock(testFileIndex, dataBlockIndex, dataBlockSize);
+
+ fileWriter.Write(dataBlock);
+ //fileWriter.Flush(); // Force the data to finish writing to the device
+ //file.Flush(true); // Clear all intermediate file buffers (OS I/O cache, etc)
+
+ long writeBytesPerSecond;
+
+ if (dataBlockSize == DATA_BLOCK_SIZE)
+ {
+ double now = stopwatch.Elapsed.TotalSeconds;
+ double time = now - lastTimestamp;
+ lastTimestamp = now;
+ writeBytesPerSecond = (long) (dataBlockSize / time);
+ lastWriteBytesPerSecond = writeBytesPerSecond;
+ }
+ else
+ {
+ // prevent an artificial rate spike on the last block
+ writeBytesPerSecond = lastWriteBytesPerSecond;
+ }
+
+ TotalBytesWritten += dataBlockSize;
+ SetProgressPercent(TotalBytesWritten, 1);
+ OnBlockWritten(new WrittenBlockEventArgs(absoluteDataBlockIndex, absoluteDataByteIndex, testFilePath, writeBytesPerSecond, dataBlockSize, 0));
+ }
+ catch (Exception ex)
+ {
+ IsSuccess = false;
+ OnBlockWritten(new WrittenBlockEventArgs(absoluteDataBlockIndex, absoluteDataByteIndex, testFilePath, 0, 0, dataBlockSize));
+ OnExceptionThrown(new Exception($"Unable to write block to file '{testFilePath}'.", ex));
+ throw;
+ }
- if (TotalBytesVerified + TotalBytesFailed >= Options.MaxBytesToTest)
- return success; // The requested number of bytes has been verified
+ // yields once in a while to allow thread interruption
+ Thread.Sleep(0);
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ testFilePath = null;
+ IsSuccess = false;
+ OnExceptionThrown(new Exception($"Unable to open file '{testFilePath}' for writing.", ex));
+ throw;
}
- return allFilesSuccess;
+ return testFilePath;
}
+ ///
+ /// Verify a test file. TODO this function can be split and simplified.
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
private bool VerifyTestFile(int testFileIndex, string testFilePath, out int bytesVerified, out int bytesFailed, bool updateTotalBytes = false)
{
bool success = true;
@@ -396,8 +650,8 @@ private bool VerifyTestFile(int testFileIndex, string testFilePath, out int byte
using (var fileReader = new FileStream(testFilePath, FileMode.Open, FileAccess.Read, FileShare.Read, DATA_BLOCK_SIZE,
FileFlagNoBuffering | FileOptions.SequentialScan))
{
- long lastReadBytesPerSecond = 0;
- int lastDataBlockIndex = GetLastDataBlockIndex((int)fileReader.Length);
+
+ int lastDataBlockIndex = GetLastDataBlockIndex((int) fileReader.Length);
var stopwatch = new Stopwatch();
stopwatch.Start();
double lastElapsedSeconds = 0;
@@ -407,7 +661,7 @@ private bool VerifyTestFile(int testFileIndex, string testFilePath, out int byte
long absoluteDataByteIndex = GetAbsoluteDataByteIndex(testFileIndex, dataBlockIndex);
try
{
- bool blockSuccess = VerifyTestFileDataBlock(fileReader, testFileIndex, dataBlockIndex, out int blockBytesVerified, out int blockBytesFailed, out long readBytesPerSecond);
+ bool blockSuccess = VerifyTestFileDataBlock(fileReader, testFileIndex, dataBlockIndex, out int blockBytesVerified, out int blockBytesFailed, out _);
success &= blockSuccess;
IsSuccess &= success;
bytesVerified += blockBytesVerified;
@@ -419,25 +673,15 @@ private bool VerifyTestFile(int testFileIndex, string testFilePath, out int byte
}
int dataBlockSize = blockBytesVerified + blockBytesFailed;
- SetProgressPercent((100M * ((decimal)absoluteDataByteIndex + (decimal)dataBlockSize)) / (decimal)Options.MaxBytesToTest, 2);
-
- if (dataBlockSize == DATA_BLOCK_SIZE)
- {
- lastReadBytesPerSecond = readBytesPerSecond;
- }
- else
- {
- readBytesPerSecond = lastReadBytesPerSecond; // prevent an artificial rate spike on the last block
- }
+ SetProgressPercent(absoluteDataByteIndex + dataBlockSize, 2);
double elapsedSeconds = stopwatch.Elapsed.TotalSeconds;
- long verifyBytesPerSecond = (long)((double)dataBlockSize / (elapsedSeconds - lastElapsedSeconds));
- Helpers.UpdateAverage(ref _averageVerifyBytesPerSecond, ref _totalVerifySpeedSamples, ref verifyBytesPerSecond);
-
- AfterVerifyBlock?.Invoke(this, absoluteDataBlockIndex, absoluteDataByteIndex, testFilePath, readBytesPerSecond, blockBytesVerified, blockBytesFailed, (long)_averageVerifyBytesPerSecond);
+ long verifiedBytesPerSecond = (long) (dataBlockSize / (elapsedSeconds - lastElapsedSeconds));
lastElapsedSeconds = elapsedSeconds;
+
+ OnBlockVerified(new VerifiedBlockEventArgs(absoluteDataBlockIndex, absoluteDataByteIndex, testFilePath, verifiedBytesPerSecond, blockBytesVerified, blockBytesFailed));
}
- catch //(Exception ex)
+ catch
{
success = false;
IsSuccess &= success;
@@ -445,7 +689,8 @@ private bool VerifyTestFile(int testFileIndex, string testFilePath, out int byte
if (exceptionBlockBytesFailed > DATA_BLOCK_SIZE)
exceptionBlockBytesFailed = DATA_BLOCK_SIZE;
- AfterVerifyBlock?.Invoke(this, absoluteDataBlockIndex, absoluteDataByteIndex, testFilePath, 0, 0, (int)exceptionBlockBytesFailed, 0);
+ OnBlockVerified(new VerifiedBlockEventArgs(absoluteDataBlockIndex, absoluteDataByteIndex, testFilePath, 0, 0, (int) exceptionBlockBytesFailed));
+ throw;
}
if (Options.StopProcessingOnFailure && !success)
@@ -453,42 +698,84 @@ private bool VerifyTestFile(int testFileIndex, string testFilePath, out int byte
if (updateTotalBytes)
{
- if (TotalBytesVerified + TotalBytesFailed >= Options.MaxBytesToTest)
- return success; // The requested number of bytes has been verified
+ if (TotalBytesVerified + TotalBytesFailed >= TotalTargetBytes)
+ {
+ // The requested number of bytes has been verified
+ return success;
+ }
}
}
- stopwatch.Stop();
}
}
catch (Exception ex)
{
- OnException?.Invoke(this, new Exception($"Unable to open '{testFilePath}' for reading.", ex));
+ OnExceptionThrown(new Exception($"Unable to open '{testFilePath}' for reading.", ex));
success = false;
IsSuccess &= success;
+ throw;
}
return success;
}
private const int BatchPhaseCount = 2;
- private void SetProgressPercent(decimal percent, int batchPhaseNumber)
+
+ ///
+ /// Calculate and set the progress percentage, considering the batch id.
+ ///
+ /// Actual percentage of current batch.
+ /// Current batch number.
+ private void SetProgressPercent(long totalBytes, int batchPhaseNumber)
{
+ decimal percent = 100M * totalBytes / TotalTargetBytes;
+
if (_isBatchMode)
- percent = (percent / (decimal)BatchPhaseCount) + (100M * (decimal)(batchPhaseNumber - 1) / (decimal)BatchPhaseCount);
+ {
+ percent = percent / BatchPhaseCount + (100M * (batchPhaseNumber - 1) / BatchPhaseCount);
+ }
if (percent < 0)
+ {
percent = 0;
+ }
else if (percent > 100)
+ {
percent = 100;
+ }
ProgressPercent = percent;
}
- private bool VerifyTestFileDataBlock(int fileIndex, int dataBlockIndex, out int bytesVerified, out int bytesFailed, out long readBytesPerSecond)
+ ///
+ /// Return the total size of test files on disk.
+ ///
+ ///
+ private long GetTotalDataFileBytes()
{
- return VerifyTestFileDataBlock(fileIndex, GetTestFilePath(fileIndex), dataBlockIndex, out bytesVerified, out bytesFailed, out readBytesPerSecond);
+ long totalBytes = 0;
+ for (int testFileIndex = 0; ; testFileIndex++)
+ {
+ string testFilePath = GetTestFilePath(testFileIndex);
+ if (!File.Exists(testFilePath))
+ break;
+
+ FileInfo fileInfo = new FileInfo(testFilePath);
+ totalBytes += fileInfo.Length;
+ }
+
+ return totalBytes;
}
+ ///
+ /// Verify a data block.
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
private bool VerifyTestFileDataBlock(int testFileIndex, string testFilePath, int dataBlockIndex, out int bytesVerified, out int bytesFailed, out long readBytesPerSecond)
{
using (var file = File.OpenRead(testFilePath))
@@ -497,6 +784,16 @@ private bool VerifyTestFileDataBlock(int testFileIndex, string testFilePath, int
}
}
+ ///
+ /// Verify a data block.
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
private bool VerifyTestFileDataBlock(FileStream fileReader, int fileIndex, int dataBlockIndex, out int bytesVerified, out int bytesFailed, out long readBytesPerSecond)
{
byte[] knownGoodDataBlock = null;
@@ -510,22 +807,30 @@ private bool VerifyTestFileDataBlock(FileStream fileReader, int fileIndex, int d
thread.Start();
var dataBlock = ReadDataBlock(fileReader, dataBlockIndex, out readBytesPerSecond);
- while (thread.ThreadState == System.Threading.ThreadState.Running)
- {
- Thread.Sleep(10);
- }
+
+ thread.Join();
+
+ // yields once in a while to allow thread interruption
+ Thread.Sleep(0);
return VerifyDataBlock(dataBlock, fileIndex, dataBlockIndex, out bytesVerified, out bytesFailed, knownGoodDataBlock: knownGoodDataBlock);
}
- private byte[] ReadDataBlock(FileStream fileReader, int dataBlockIndex, out long readBytesPerSecond)
+ ///
+ /// Read the block from file. The length of this block depends on the remaining bytes in the files.
+ ///
+ ///
+ /// Relative block ID.
+ ///
+ ///
+ private static byte[] ReadDataBlock(FileStream fileReader, int dataBlockIndex, out long readBytesPerSecond)
{
int dataBlockStartIndex = dataBlockIndex * DATA_BLOCK_SIZE;
long dataBlockSize = fileReader.Length - dataBlockStartIndex;
if (dataBlockSize > DATA_BLOCK_SIZE)
dataBlockSize = DATA_BLOCK_SIZE;
- var dataBlock = new byte[(int)dataBlockSize];
+ var dataBlock = new byte[(int) dataBlockSize];
if (fileReader.Position != dataBlockStartIndex)
fileReader.Seek(dataBlockStartIndex, SeekOrigin.Begin);
@@ -534,7 +839,7 @@ private byte[] ReadDataBlock(FileStream fileReader, int dataBlockIndex, out long
stopwatch.Start();
int readBytes = fileReader.Read(dataBlock, 0, dataBlock.Length);
stopwatch.Stop();
- readBytesPerSecond = (long)((double)readBytes / stopwatch.Elapsed.TotalSeconds);
+ readBytesPerSecond = (long) ((double) readBytes / stopwatch.Elapsed.TotalSeconds);
if (readBytes != dataBlock.Length)
{
@@ -544,6 +849,16 @@ private byte[] ReadDataBlock(FileStream fileReader, int dataBlockIndex, out long
return dataBlock;
}
+ ///
+ /// Verify 2 blocks against each other. If the reference block length is different (longer) from the test block, it is regenerated to match the lenght of test block. TODO refactor this piece of code.
+ ///
+ /// The block to be tested.
+ ///
+ ///
+ ///
+ ///
+ /// The reference block.
+ ///
private bool VerifyDataBlock(byte[] dataBlock, int fileIndex, int dataBlockIndex, out int bytesVerified, out int bytesFailed, byte[] knownGoodDataBlock = null)
{
bytesVerified = 0;
@@ -558,6 +873,7 @@ private bool VerifyDataBlock(byte[] dataBlock, int fileIndex, int dataBlockIndex
return false;
}
+ // Now dataBlock and knownGoodDataBlock have the same length.
for (int i = 0; i < dataBlock.Length; i++)
{
if (dataBlock[i] == knownGoodDataBlock[i])
@@ -574,6 +890,10 @@ private bool VerifyDataBlock(byte[] dataBlock, int fileIndex, int dataBlockIndex
return bytesFailed == 0;
}
+ ///
+ /// Set FirstFailingByteIndex. TODO: This can be inserted directly in Property FirstFailingByteIndex
+ ///
+ ///
private void SetFirstFailingByteIndex(long failingByteIndex)
{
if (FirstFailingByteIndex > failingByteIndex || FirstFailingByteIndex < 0)
@@ -582,31 +902,67 @@ private void SetFirstFailingByteIndex(long failingByteIndex)
}
}
+ ///
+ /// Get the absolute file path given its index.
+ ///
+ ///
+ ///
private string GetTestFilePath(int fileIndex)
{
return GetTestFilePath(GetTestDirectory(), fileIndex);
}
+ ///
+ /// Get the absolute directory of a test file.
+ ///
+ /// The target directory of test files.
+ /// The file index, from 0 to n.
+ /// The full path to test file, the file name index is increased by one than "fileIndex".
private static string GetTestFilePath(string testDirectory, int fileIndex)
{
return Path.Combine(testDirectory, (fileIndex + 1).ToString("D8") + ".MediaTester");
}
+ ///
+ /// Get the global block ID given the actual file and the relative block ID.
+ ///
+ /// Test file index (count starts from 0).
+ ///
+ ///
private static long GetAbsoluteDataBlockIndex(int fileIndex, int fileDataBlockIndex)
{
- return ((long)fileIndex * (long)DATA_BLOCKS_PER_FILE) + (long)fileDataBlockIndex;
+ return ((long) fileIndex * (long) DATA_BLOCKS_PER_FILE) + (long) fileDataBlockIndex;
}
+ ///
+ /// Get the absolute byte for the current block
+ ///
+ /// Test file index (count starts from 0).
+ /// Relative block ID.
+ ///
private static long GetAbsoluteDataByteIndex(int fileIndex, int fileDataBlockIndex)
{
return GetAbsoluteDataBlockIndex(fileIndex, fileDataBlockIndex) * DATA_BLOCK_SIZE;
}
+ ///
+ /// Create a block of specified length initialized with "pseudo-random" data depending only from absolute block ID.
+ ///
+ /// File index (count from 0).
+ /// Relative block ID.
+ /// Block size in bytes.
+ ///
private static byte[] GenerateDataBlock(int fileIndex, int fileDataBlockIndex, int blockSize)
{
return GenerateDataBlock(GetAbsoluteDataBlockIndex(fileIndex, fileDataBlockIndex), blockSize);
}
+ ///
+ /// Create a block of specified length initialized with "pseudo-random" data depending only from absolute block ID.
+ ///
+ ///
+ /// Block size in bytes.
+ ///
private static byte[] GenerateDataBlock(long absoluteDataBlockIndex, int blockSize)
{
var dataBlock = new byte[blockSize];
@@ -615,9 +971,39 @@ private static byte[] GenerateDataBlock(long absoluteDataBlockIndex, int blockSi
return dataBlock;
}
+ ///
+ /// Get the seed for the current block.
+ ///
+ ///
+ ///
private static int GetDataBlockSeed(long absoluteDataBlockIndex)
{
- return (int)absoluteDataBlockIndex;
+ return (int) absoluteDataBlockIndex;
+ }
+
+ private void OnExceptionThrown(Exception ex)
+ {
+ ExceptionThrown?.Invoke(this, new ExceptionEventArgs(ex));
+ }
+
+ private void OnBlockWritten(WrittenBlockEventArgs writtenBlock)
+ {
+ BlockWritten?.Invoke(this, writtenBlock);
+ }
+
+ private void OnBlockVerified(VerifiedBlockEventArgs block)
+ {
+ BlockVerified?.Invoke(this, block);
+ }
+
+ private void OnQuickTestCompleted(VerifiedBlockEventArgs block)
+ {
+ QuickTestCompleted?.Invoke(this, block);
+ }
+
+ private void OnFileDeleted(int totalFiles, int deleledFiles)
+ {
+ FileDeleted?.Invoke(this, new FileDeletedEventArgs(totalFiles, deleledFiles));
}
}
-}
+}
\ No newline at end of file
diff --git a/MediaTesterLib/MediaTesterLib.csproj b/MediaTesterLib/MediaTesterLib.csproj
index 3c4aca3..1d0c831 100644
--- a/MediaTesterLib/MediaTesterLib.csproj
+++ b/MediaTesterLib/MediaTesterLib.csproj
@@ -1,62 +1,12 @@
-
-
-
+
- Debug
- AnyCPU
- {D684ACBC-9D01-4515-8CB1-969C15B22C4D}
+ netstandard2.0
Library
- Properties
KrahmerSoft.MediaTesterLib
KrahmerSoft.MediaTesterLib
- v4.5
- 512
+ false
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
-
- ..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll
- True
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
\ No newline at end of file
diff --git a/MediaTesterLib/Options.cs b/MediaTesterLib/Options.cs
index 09e380c..e468857 100644
--- a/MediaTesterLib/Options.cs
+++ b/MediaTesterLib/Options.cs
@@ -1,5 +1,5 @@
-using Newtonsoft.Json;
-using System.IO;
+using System.IO;
+using System.Text.Json;
namespace KrahmerSoft.MediaTesterLib
{
@@ -15,25 +15,33 @@ public class Options
public const string CONFIG_FILENAME = "MediaTesterOptions.json";
+ ///
+ /// Save option in file.
+ ///
+ /// The file path relative to executable location.
public void Serialize(string filePath = CONFIG_FILENAME)
{
- File.WriteAllText(filePath, JsonConvert.SerializeObject(this));
+ File.WriteAllText(filePath, JsonSerializer.Serialize(this, typeof(Options), new JsonSerializerOptions() { WriteIndented = true }));
}
+ ///
+ /// Read configuration file. If anything goes wrong just create a default object.
+ ///
+ /// The file path relative to executable location.
+ /// Return the options read in file.
public static Options Deserialize(string filePath = CONFIG_FILENAME)
{
Options options;
try
{
- options = JsonConvert.DeserializeObject(File.ReadAllText(filePath));
+ options = JsonSerializer.Deserialize(File.ReadAllText(filePath));
}
- catch //(Exception ex)
+ catch
{
- // If anything goes wrong just create a default object
options = new Options();
}
return options;
}
}
-}
+}
\ No newline at end of file
diff --git a/MediaTesterLib/Properties/AssemblyInfo.cs b/MediaTesterLib/Properties/AssemblyInfo.cs
index cf87d4d..d93f014 100644
--- a/MediaTesterLib/Properties/AssemblyInfo.cs
+++ b/MediaTesterLib/Properties/AssemblyInfo.cs
@@ -9,7 +9,7 @@
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("KrahmerSoft")]
[assembly: AssemblyProduct("MediaTesterLib")]
-[assembly: AssemblyCopyright("Public Domain, Copyright KrahmerSoft 2020")]
+[assembly: AssemblyCopyright("KrahmerSoft 2020, Fabiano Riccardi 2022")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@@ -31,5 +31,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.1.0.0")]
-[assembly: AssemblyFileVersion("1.1.0.0")]
+[assembly: AssemblyVersion("3.0.0.0")]
+[assembly: AssemblyFileVersion("3.0.0")]
diff --git a/MediaTesterLib/packages.config b/MediaTesterLib/packages.config
deleted file mode 100644
index ee51c23..0000000
--- a/MediaTesterLib/packages.config
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/README.md b/README.md
index a81c7c7..cfa1e04 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,51 @@
# MediaTester
+
MediaTester can test any media (SD, microSD, thumb drives, memory sticks, etc.) and verify it stores the expected number of bytes. The testing method is similar to h2testw but MediaTester can detect fake or defective media much faster by performing quick reads as data is written.
Fake media sales have reached epidemic proportions. Fake media is being falsely labled with popular brand names including SanDisk, Samsung, Sony, Kingston, and others. Not only are these counterfeit but they often contain less storage than the cards report to the computer. A 128GB SD card may actually contain only 8GB or 4GB of actual space. After filling up all of the real space, the card will respond as if it is storing the data but it is actually throwing it away. The files will look like they exist but they are actually full of null bytes or completely corrupted. If you try to read the data you will find that it is ALL GONE.
MediaTester is released as a free public service to help stop counterfeiters and fraudsters. If you buy any storage media, use MediaTester to verify it or risk losing your data.
-The MediaTester library, Windows GUI, and CLI is released with a generous public domain open source license with no restrictions.
+The MediaTester library, Windows GUI, and CLI are released with a generous public domain open source license with no restrictions.
Enjoy!
-Doug Krahmer
+
+## Install
+
+MediaTester is a portable and compact executable, and it will work with the latest versions of Windows 10, without installing any additional software. This executable targets .NET 4.7.2, which is included by default since Windows 10 Version 1809.
+
+About MediaTesterCli, you can target .NET 4.7.2 or .NET 6. In the latter case, you have to manually install the Runtime, [download link](https://dotnet.microsoft.com/en-us/download/dotnet/6.0). ), because actually is not installed by default in Windows 10, nor in any other OS. It is available for Windows, Mac OS, and Linux.
+
+## Build Releases
+
+### MediaTester (GUI)
+
+Open the solution in Visual Studio, install the dependencies through Nuget and compile it.
+
+### MediaTesterCLI
+
+If you target .NET 6, the final releases are generated from command line using `dotnet` tool. Open the Terminal directly in Visual Studio (View > Terminal) and launch the following command:
+
+ dotnet publish -r -c Release -p:PublishSingleFile=true --no-self-contained -p:PublishReadyToRun=true
+
+where `ProjectName` is `MediaTesterCLI`; `RuntimeIdentifier` is the target platform (CPU and OS) as specified [here](https://docs.microsoft.com/en-us/dotnet/core/rid-catalog).
+
+> :information_source: MediaTesterCli is actually a test app, so it is not yet included in the official release. However, it was successfully tested on Raspberry OS (Bullseye, `linux-arm`) and, of course, on Windows 10. You should be able to compile MediaTesterCli for whatever architecture supported by .NET 6.
+
+## Development
+
+This repository contains 3 projects:
+
+- MediaTesterLib: provides the core functionalities of the MediaTester apps, and it build on top .netstandard 2.0 to guarantee the maximum compability among the different .NET families.
+
+- MediaTesterCli: the command-line fronted, for every architecture supported by .NET 6 and .NET 4.7.2.
+
+- MediaTester: the GUI frontend. This project is based on WinForms for .NET Framework 4.7.2, for the best compatibility with the latests versions of Windows 10/11.
+
+The code is developed in VS2022.
+
+### Debug and Testing
+
+[HxD](https://mh-nexus.de/en/hxd/) can be used to alter test files if a bad media device is not available.