diff --git a/AboutBox.Designer.cs b/AboutBox.Designer.cs
new file mode 100644
index 0000000..086e9e2
--- /dev/null
+++ b/AboutBox.Designer.cs
@@ -0,0 +1,188 @@
+namespace TrayReader
+{
+ partial class AboutBox
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ 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(AboutBox));
+ this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel();
+ this.logoPictureBox = new System.Windows.Forms.PictureBox();
+ this.labelProductName = new System.Windows.Forms.Label();
+ this.labelVersion = new System.Windows.Forms.Label();
+ this.labelCopyright = new System.Windows.Forms.Label();
+ this.labelCompanyName = new System.Windows.Forms.Label();
+ this.textBoxDescription = new System.Windows.Forms.TextBox();
+ this.okButton = new System.Windows.Forms.Button();
+ this.tableLayoutPanel.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).BeginInit();
+ this.SuspendLayout();
+ //
+ // tableLayoutPanel
+ //
+ this.tableLayoutPanel.ColumnCount = 2;
+ this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33F));
+ this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 67F));
+ this.tableLayoutPanel.Controls.Add(this.logoPictureBox, 0, 0);
+ this.tableLayoutPanel.Controls.Add(this.labelProductName, 1, 0);
+ this.tableLayoutPanel.Controls.Add(this.labelVersion, 1, 1);
+ this.tableLayoutPanel.Controls.Add(this.labelCopyright, 1, 2);
+ this.tableLayoutPanel.Controls.Add(this.labelCompanyName, 1, 3);
+ this.tableLayoutPanel.Controls.Add(this.textBoxDescription, 1, 4);
+ this.tableLayoutPanel.Controls.Add(this.okButton, 1, 5);
+ this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tableLayoutPanel.Location = new System.Drawing.Point(9, 9);
+ this.tableLayoutPanel.Name = "tableLayoutPanel";
+ this.tableLayoutPanel.RowCount = 6;
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+ this.tableLayoutPanel.Size = new System.Drawing.Size(417, 265);
+ this.tableLayoutPanel.TabIndex = 0;
+ //
+ // logoPictureBox
+ //
+ this.logoPictureBox.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.logoPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("logoPictureBox.Image")));
+ this.logoPictureBox.Location = new System.Drawing.Point(3, 3);
+ this.logoPictureBox.Name = "logoPictureBox";
+ this.tableLayoutPanel.SetRowSpan(this.logoPictureBox, 6);
+ this.logoPictureBox.Size = new System.Drawing.Size(131, 259);
+ this.logoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+ this.logoPictureBox.TabIndex = 12;
+ this.logoPictureBox.TabStop = false;
+ //
+ // labelProductName
+ //
+ this.labelProductName.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.labelProductName.Location = new System.Drawing.Point(143, 0);
+ this.labelProductName.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
+ this.labelProductName.MaximumSize = new System.Drawing.Size(0, 17);
+ this.labelProductName.Name = "labelProductName";
+ this.labelProductName.Size = new System.Drawing.Size(271, 17);
+ this.labelProductName.TabIndex = 19;
+ this.labelProductName.Text = "Product Name";
+ this.labelProductName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // labelVersion
+ //
+ this.labelVersion.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.labelVersion.Location = new System.Drawing.Point(143, 26);
+ this.labelVersion.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
+ this.labelVersion.MaximumSize = new System.Drawing.Size(0, 17);
+ this.labelVersion.Name = "labelVersion";
+ this.labelVersion.Size = new System.Drawing.Size(271, 17);
+ this.labelVersion.TabIndex = 0;
+ this.labelVersion.Text = "Version";
+ this.labelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // labelCopyright
+ //
+ this.labelCopyright.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.labelCopyright.Location = new System.Drawing.Point(143, 52);
+ this.labelCopyright.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
+ this.labelCopyright.MaximumSize = new System.Drawing.Size(0, 17);
+ this.labelCopyright.Name = "labelCopyright";
+ this.labelCopyright.Size = new System.Drawing.Size(271, 17);
+ this.labelCopyright.TabIndex = 21;
+ this.labelCopyright.Text = "Copyright";
+ this.labelCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // labelCompanyName
+ //
+ this.labelCompanyName.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.labelCompanyName.Location = new System.Drawing.Point(143, 78);
+ this.labelCompanyName.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
+ this.labelCompanyName.MaximumSize = new System.Drawing.Size(0, 17);
+ this.labelCompanyName.Name = "labelCompanyName";
+ this.labelCompanyName.Size = new System.Drawing.Size(271, 17);
+ this.labelCompanyName.TabIndex = 22;
+ this.labelCompanyName.Text = "Company Name";
+ this.labelCompanyName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // textBoxDescription
+ //
+ this.textBoxDescription.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.textBoxDescription.Location = new System.Drawing.Point(143, 107);
+ this.textBoxDescription.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3);
+ this.textBoxDescription.Multiline = true;
+ this.textBoxDescription.Name = "textBoxDescription";
+ this.textBoxDescription.ReadOnly = true;
+ this.textBoxDescription.ScrollBars = System.Windows.Forms.ScrollBars.Both;
+ this.textBoxDescription.Size = new System.Drawing.Size(271, 126);
+ this.textBoxDescription.TabIndex = 23;
+ this.textBoxDescription.TabStop = false;
+ this.textBoxDescription.Text = "Description";
+ //
+ // okButton
+ //
+ this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.okButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ this.okButton.Location = new System.Drawing.Point(339, 239);
+ this.okButton.Name = "okButton";
+ this.okButton.Size = new System.Drawing.Size(75, 23);
+ this.okButton.TabIndex = 24;
+ this.okButton.Text = "&OK";
+ //
+ // AboutBox
+ //
+ this.AcceptButton = this.okButton;
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(435, 283);
+ this.Controls.Add(this.tableLayoutPanel);
+ this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "AboutBox";
+ this.Padding = new System.Windows.Forms.Padding(9);
+ this.ShowIcon = false;
+ this.ShowInTaskbar = false;
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "About SystemTrayApp";
+ this.tableLayoutPanel.ResumeLayout(false);
+ this.tableLayoutPanel.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.TableLayoutPanel tableLayoutPanel;
+ private System.Windows.Forms.PictureBox logoPictureBox;
+ private System.Windows.Forms.Label labelProductName;
+ private System.Windows.Forms.Label labelVersion;
+ private System.Windows.Forms.Label labelCopyright;
+ private System.Windows.Forms.Label labelCompanyName;
+ private System.Windows.Forms.TextBox textBoxDescription;
+ private System.Windows.Forms.Button okButton;
+ }
+}
diff --git a/AboutBox.cs b/AboutBox.cs
new file mode 100644
index 0000000..a011a6c
--- /dev/null
+++ b/AboutBox.cs
@@ -0,0 +1,101 @@
+using System;
+using System.Reflection;
+using System.Windows.Forms;
+
+namespace TrayReader
+{
+ partial class AboutBox : Form
+ {
+ public AboutBox()
+ {
+ InitializeComponent();
+ this.Text = String.Format("About {0}", AssemblyTitle);
+ this.labelProductName.Text = AssemblyProduct;
+ this.labelVersion.Text = String.Format("Version {0}", AssemblyVersion);
+ this.labelCopyright.Text = AssemblyCopyright;
+ this.labelCompanyName.Text = AssemblyCompany;
+ this.textBoxDescription.Text = AssemblyDescription;
+ }
+
+ #region Assembly Attribute Accessors
+
+ public string AssemblyTitle
+ {
+ get
+ {
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
+ if (attributes.Length > 0)
+ {
+ AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];
+ if (titleAttribute.Title != "")
+ {
+ return titleAttribute.Title;
+ }
+ }
+ return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
+ }
+ }
+
+ public string AssemblyVersion
+ {
+ get
+ {
+ return Assembly.GetExecutingAssembly().GetName().Version.ToString();
+ }
+ }
+
+ public string AssemblyDescription
+ {
+ get
+ {
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
+ if (attributes.Length == 0)
+ {
+ return "";
+ }
+ return ((AssemblyDescriptionAttribute)attributes[0]).Description;
+ }
+ }
+
+ public string AssemblyProduct
+ {
+ get
+ {
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);
+ if (attributes.Length == 0)
+ {
+ return "";
+ }
+ return ((AssemblyProductAttribute)attributes[0]).Product;
+ }
+ }
+
+ public string AssemblyCopyright
+ {
+ get
+ {
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
+ if (attributes.Length == 0)
+ {
+ return "";
+ }
+ return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
+ }
+ }
+
+ public string AssemblyCompany
+ {
+ get
+ {
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);
+ if (attributes.Length == 0)
+ {
+ return "";
+ }
+ return ((AssemblyCompanyAttribute)attributes[0]).Company;
+ }
+ }
+
+ #endregion Assembly Attribute Accessors
+ }
+}
\ No newline at end of file
diff --git a/AboutBox.resx b/AboutBox.resx
new file mode 100644
index 0000000..b8ad9bc
--- /dev/null
+++ b/AboutBox.resx
@@ -0,0 +1,1106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+ 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
+ AAABAAgAaAUAAD4rAAAwMAAAAQAgAKglAACmMAAAICAAAAEAIACoEAAATlYAABgYAAABACAAiAkAAPZm
+ AAAQEAAAAQAgAGgEAAB+cAAAKAAAADAAAABgAAAAAQAEAAAAAACABAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP//
+ /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgqIqIqIqgAAAAAAAAAAAAAAAAAAAAAAIKH
+ d3d3d4KAAAAAAAAAAAAAAAAAAAAAACiqqqqqoqegAAAAAAAAAAAAAAAAAAAAAKeioiIiIiegAAAAAAAA
+ AAAAAAAAAAAAACeqOioqKiegAAAAAAAAAAAAAAAAAAAAAKiioqKiIqegAAAAAAAAAAAAAAAAAAAAACej
+ oqMqoiegAAAAAAAAAAAAAAAAAAAAAKiqKjoqOiegAAAAAAAAAAAAAAAAAAAAACijp6oqIqegAAAAAAAA
+ AAAAAAAAAAAAAKeqqio6KiegAAAAAAAAAAAAAAAAAAAAACinOjoqOqegAAAAAAAAAAAAAAAAAAAAAKij
+ p6p6KiigAAAAAAAAAAAAAAAAAAAAACg6ejqjoqegAAAAAAAAAAAAAAAAAAAAAKirp6eqeqegAAAAAAAA
+ AAAAAAAAAAAAACi2uno6o6ggAAAAAAAAAAAAAAAAAAAAAKinp6OnqjegAAAAAAAAAAAIKiKiKiKiKji6
+ irejp6iiOiKjKiKiKACC+Pj4+Pj4+IeoN6eoqqd3qHh6h3d3ioAop6irerererqKuoq6c6qqOqqiqqqq
+ J6AoqKt3eKi6ioe3e6inq3o6o6KjIiIip6Aoo3p6uoqIqLp6ioO6iqenqnoqqioqJ6Aop6ioqHt3uKi3
+ q6ioq3q6eqOiOioipyAnp6OnqKioqIeHiHurenp6OjqqoqOip6Aoo3qKinqLereouoiKirerp6eno6Ki
+ J6Anp6enq6ineKi4iLqIuKiop6o6Kio6p6Aop6enp3qKuoioqIi3eIuKi3p6OnoqKKAno6eranq3eKi3
+ uoqHe3eLeoe6iqejp6Aop6enqKenp7qKiLh7iod3iKioqHp6eKAop6eno6inqKioqKh3iLeKuLeHuoqK
+ qCCCioh4iHh4uIqLeLd7qHiPiIiIiIiIioAIIqKioqKiKiiop6ioh7iiqiqiqiqjqAAAAAAAAAAAACin
+ t4uKh4ggAAAAAAAAAAAAAAAAAAAAACioqnqLe6igAAAAAAAAAAAAAAAAAAAAACijioqKh4ggAAAAAAAA
+ AAAAAAAAAAAAACenqKi3qKggAAAAAAAAAAAAAAAAAAAAAKinp7p6i4igAAAAAAAAAAAAAAAAAAAAACer
+ p6eop6ggAAAAAAAAAAAAAAAAAAAAACinp6ioqLggAAAAAAAAAAAAAAAAAAAAACenqKereoigAAAAAAAA
+ AAAAAAAAAAAAAKino6enqKggAAAAAAAAAAAAAAAAAAAAACenqKenp6ggAAAAAAAAAAAAAAAAAAAAACij
+ p6eoq3igAAAAAAAAAAAAAAAAAAAAACenp6ejp6ggAAAAAAAAAAAAAAAAAAAAAKenp6Oop6ggAAAAAAAA
+ AAAAAAAAAAAAACijp6inp6igAAAAAAAAAAAAAAAAAAAAAIKId3d3h4KAAAAAAAAAAAAAAAAAAAAAAAii
+ qqoqKigAAAAAAAAAAAD///////8AAP//gAP//wAA//8AAf//AAD//wAB//8AAP//AAH//wAA//8AAf//
+ AAD//wAB//8AAP//AAH//wAA//8AAf//AAD//wAB//8AAP//AAH//wAA//8AAf//AAD//wAB//8AAP//
+ AAH//wAA//8AAf//AAD//wAB//8AAP//AAH//wAAgAAAAAADAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAB
+ AAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAA
+ AAAAAQAAAAAAAAABAAAAAAAAAAEAAIAAAAAAAwAA//8AAf//AAD//wAB//8AAP//AAH//wAA//8AAf//
+ AAD//wAB//8AAP//AAH//wAA//8AAf//AAD//wAB//8AAP//AAH//wAA//8AAf//AAD//wAB//8AAP//
+ AAH//wAA//8AAf//AAD//wAB//8AAP//AAH//wAA//+AA///AAAoAAAAIAAAAEAAAAABAAQAAAAAAAAC
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/
+ AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAACoioioAAAAAAAAAAAAAAAJ3qHp3oAAAAAAAAAAAAAAK
+ eqKip6AAAAAAAAAAAAAAAno6IqcgAAAAAAAAAAAAAAp6oqIqMAAAAAAAAAAAAAACijoqOKAAAAAAAAAA
+ AAAACnqjoqogAAAAAAAAAAAAAAKKOqOooAAAAAAAAAAAAAAKijp6J6AAAAAAAAAAAAAAArenqqggAAAA
+ AAAAAAAAAAqKijo3oAAAAAAAAiIioiIii6enqKKioqKiICd4uIeIuKirqKd3iod3d6Mqqqqrq2e3dzq6
+ qqOqqqp6J6N6ioqKirqKenuqOioieio6o6N7q3d7e6ijp6o6Knonqnp6p3qKvqireno6oqOjKjqqOrp7
+ qKuLd6unp6OqeieiOqenp6uKiot4qKOnoooqenp6eot6e3uoqLqLp6p6AqIqIqIiqKeoeCoioqI6IAAA
+ AAAAAoq6irggAAAAAAAAAAAAAAKjp6tooAAAAAAAAAAAAAADenp6uCAAAAAAAAAAAAAACqo6unogAAAA
+ AAAAAAAAAAJ6p6eoIAAAAAAAAAAAAAACejqqOKAAAAAAAAAAAAAAAqqjp6sgAAAAAAAAAAAAAAJ6Omqn
+ IAAAAAAAAAAAAAACo6o6OiAAAAAAAAAAAAAAA6enp6ggAAAAAAAAAAAAAAAiIioiAAAAAAAA//AP///g
+ B///4Af//+AH///gB///4Af//+AH///gB///4Af//+AH///gB/+AAAABAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAACAAAAB/+AH///gB///4Af//+AH///gB///4Af//+AH///gB///4Af//+AH///w
+ D/8oAAAAGAAAADAAAAABAAQAAAAAACABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAA
+ AACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAAAAB6IqInAAAAAAAA
+ AACnp3qKAAAAAAAAAAAnqqJ6AAAAAAAAAACnoqKiAAAAAAAAAAAnqip6AAAAAAAAAACoo6J6AAAAAAAA
+ AAArqjqjAAAAAAAAAACop6qKAAAAAHoiKiIoq6OiKioqJyeouIuLenqIqHd3qio6qjp6erqjqqqqciej
+ eoqKt6iro6Kioyqqo6uoqLp6eqOqeiejqnq3uot7p6o6eip6eoqKc3qIi4eoonoioiIoq6i6KioqNwAA
+ AACjp6eCAAAAAAAAAAAoqrqKAAAAAAAAAAAqOnqyAAAAAAAAAAAnqqOCAAAAAAAAAACjo6qiAAAAAAAA
+ AAAnqiqCAAAAAAAAAAAqenp6AAAAAAAAAAB6IionAAAAAP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
+ /wD/AP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
+ /wD/AP8A/wD/ACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACA
+ AAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAHoiJw
+ AAAAAAJ6eqAAAAAACno3oAAAAAACuqegAAAAAAKHqCAAAHIiooqLKiInKHiIi6h4qKoqureoiqOjcien
+ qIeIi3p6J6iououIeKOiojp4qKKipwAAAqe4IAAAAAACiqigAAAAAAKjqCAAAAAAAneoIAAAAAAHqjKg
+ AAD4HwAA+B8AAPgfAAD4HwAA+B8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPgfAAD4HwAA+B8AAPgf
+ AAD4HwAAKAAAADAAAABgAAAAAQAIAAAAAAAACQAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAkwAAA5IHAACY
+ AAAAnQAAAKACAAClAwAApgQAAKkGAACuCAAAsQoAALQLAAC0DQABuA4AA7oQAAS8EgAGvhUAC7AZAAm/
+ GQAGwRYACcIZAArFGgAKxhwADMYcAA3IHwAPyiAAEsQhABDLIQARzSQAFM4nABbPKQAaySkAF9AvABnR
+ MQAb1DIAHNQ3AB7VPAAlzzQAMsc/ADPJPwAi1TgALtM/ADXKQAA1zEIAN81EACHXQQAi10QAK9dHACTY
+ SAAn2UwAKdpPADjQRgA31kwAO9JIADrUSAA81EoAPtVNACrbUgAt21cAL91ZADbbVQAx3FoAMd5cADPf
+ YgA24GQAOOFnADzgZQA74W0APuJwAEDXUABC2FEAQ9lWAETaWABG3FkAQ9xcAEfcXQBC3mQASN1hAEvf
+ ZQBM32cATd9qAGHBYwBhxWUAYclmAGHKaABhzWkAY9BrAGPQbABk0m0AZtRvAHTBdgB2wnkAdMV4AHbM
+ fQBn1HAAadZyAGzWdQBr2XUAbth2AG7aeABv3HoAcdt6AHLcewBy3XwAdN59AFDgbgBA4nQAReN1AEjj
+ cgBO4nIARON5AEfkfABI5nsAS+V/AE3kfgBR4XEAVeJ3AFXjeABT5X8AWOR7AGHjewB4z4AAfdKEAH/U
+ hwB03oAATuWBAFPmhABV5oUAWeWAAFzmgQBa5oUAXOaEAFXohgBR54gAWuaJAF7nigBW6IgAWeiKAF7p
+ jQBp4IEAYeeJAGTnjgB24IEAduCEAHnjhwB34YwAeuOJAHvjjAB95Y8AYuiQAGbokgBp6ZUAbOuXAG7q
+ mQB+5ZMAfOOVAHbkmwBy7J4AdO2hAHftpQCO1pQAjd6fAIThjQCA5ZUAieGSAIvklgCC55kAgeadAITn
+ nACO5p0Amt2oAKPfqQCH56YAjOirAJfgoACR5qMAlOeoAJDprwCW6a0AkeqyAJnqsACY67cAnOq1AJ7r
+ uACg4LIAoOu6AKHtuwCl7boAo+y9AKXtvwCm7sEAqO7DAKruxQCt78cAvevBAL3swgC+7MQAsvDLALbw
+ zgC78dEAv/DTAMPDwwDHx8cAwOzDAMHtxQDI5soAxezJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMkRERER
+ EREREREREckAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyRF5XllXV1dTU1JSWxHKAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEV0NDQsLBwcHBwMDAVoRAAAAAAAAAAAAAAAAAAAA
+ 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
+ NjhFRUVLTq8CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWUrMzMzMzM2RUVFS6kCAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl8zJiozMzM2NkVFRqUCAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAmIqJioqMzMzMzY1RaUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAqAmJiozJjMzMzZFOKsCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyQGgYl9i
+ YmJnZ2dnrgHJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMkCAQICAgICAQIBAskAAAAA
+ AAAAAAAAAAAAAAAAAAD///////8AAP//gAP//wAA//8AAf//AAD//wAB//8AAP//AAH//wAA//8AAf//
+ AAD//wAB//8AAP//AAH//wAA//8AAf//AAD//wAB//8AAP//AAH//wAA//8AAf//AAD//wAB//8AAP//
+ AAH//wAA//8AAf//AAD//wAB//8AAP//AAH//wAAgAAAAAADAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAB
+ AAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAA
+ AAAAAQAAAAAAAAABAAAAAAAAAAEAAIAAAAAAAwAA//8AAf//AAD//wAB//8AAP//AAH//wAA//8AAf//
+ AAD//wAB//8AAP//AAH//wAA//8AAf//AAD//wAB//8AAP//AAH//wAA//8AAf//AAD//wAB//8AAP//
+ AAH//wAA//8AAf//AAD//wAB//8AAP//AAH//wAA//+AA///AAAoAAAAIAAAAEAAAAABAAgAAAAAAAAE
+ AAAAAAAAAAAAAAABAAAAAQAAAAAAAAOSBwAAowMAAKkGAACuCAAAsAoAALIMAAC1DQACuQ8ACKQSAAO6
+ EQAEuxEABLwSAAW+FAALsBkAB8AVAAfBGAAIwhgACsQaAAvGHAAMxhwADcgeAA7JIAAQyiEAEMwiABLN
+ JQAUziYAFc4oABbQKQAW0CwAGNEtABnSMQAa0zUAHNM2ABvUNgAc1DYAHdQ6AB7VPQAg1j8AINo9AFa9
+ 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
+ AAAAAAAAAAAAAAAAAAABOyMlJyVFAQAAAAAAAAAAAAAAAAAAAAAbAQEBAQEBGwAAAAAAAAAA/wD/AP8A
+ /wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8A
+ /wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8AKAAAABAAAAAgAAAAAQAIAAAAAAAAAQAAAAAAAAAA
+ AAAAAQAAAAEAAAAAAAAFmgwABp4OAAimEwAAtx0ACb8rABLFNQAYyD0ARrRLAEi9TABIvVEAG8lAAB/M
+ RQAhzUYAJM5KACbPTQAp0E8AOMpRAD3NWAAx01gAM9VZADfWXwA612EAP9llAEjBTwBIyFgASMtcAEHQ
+ XgBD0WAARdJiAE7QZgBI1GUAT9JoAErVaABM1moAT9dtAEHZaABF2msAR9ttAEncbwBS02sAU9VtAFDY
+ bgBP3nUAVdp0AF7aegBa3HkAXd19AGDbegBU4HsAWOB9AGHfgQBf4oMAYeOFAGTjiABq4YkAbeGIAGjk
+ jABs5Y4AceOOAG/mkQBy5ZEAduSSAHPmlAB25pUAeeaXAHbomAB66ZoAfuqdAIHpnQCD6aAAieqlAIzr
+ pwCR7a0Ale2uAJrutACe77YAofC5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAP///wAAAAAAAAoDAwMDCgAAAAAAAAAAAAADKRoYCQMAAAAAAAAAAAAAAyMGBBoDAAAA
+ AAAAAAAAAAMzEAYeAwAAAAAAAAAAAAADPiUQLQMAAAAAAAgCAgICA0YyJTgDAwMDAwoCOz5HSUlHOjI+
+ OjApGhgDAiwUJzU+Qz45MiUTCwUaAwEjDBMlNTxDQ0M1KxQNIAMCGxsjLTo+PENLS0tGPi0DCAIBAgIB
+ My08TQICAgIDCgAAAAAAAiMXMkkCAAAAAAAAAAAAAAIcDxVFAgAAAAAAAAAAAAACEgcPNwEAAAAAAAAA
+ AAAAARIbHS0CAAAAAAAAAAAAAAgBAQIBCAAAAAAA+B8AAPgfAAD4HwAA+B8AAPgfAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAD4HwAA+B8AAPgfAAD4HwAA+B8AACgAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAAAaAAAAGgAAABoAAAAaAAAAGgAAABoAAAAaAAAAGgAA
+ ABoAAAAaAAAAGgAAABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ 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
+ AAAAAAAAAAAAAAAAAAAAAAAAC7AZ/4zoq/824GT/NuBk/zHeXP8t21f/J9lM/yHXQf8e1Tz/GdEx/xXP
+ KP8RzST/D8og/2vadf8LsBn/AAAAGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAABoAAAAcAAAAHQAAAB0AAAAdAAAAHQAA
+ AB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAaC7AZ/5Dpr/874W3/O+Ft/zjhZ/8x3lz/LdtX/yfZ
+ TP8h10H/HtU8/xvUMv8Vzyj/E80m/23bef8LsBn/AAAAHQAAABwAAAAdAAAAHQAAAB0AAAAdAAAAHQAA
+ AB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAABwAAAAaAAAAAAAAAAAAAAAakJCQiQuwGf8LsBn/C7AZ/wuw
+ Gf8LsBn/C7AZ/wuwGf8LsBn/C7AZ/wuwGf8LsBn/C7AZ/wuwGf8LsBn/C7AZ/5Hqsv9A4nT/QOJ0/zvh
+ bf844Wf/M99i/y3bV/8p2k//ItdE/x/WPv8b1DL/F88q/2/cev8LsBn/C7AZ/wuwGf8LsBn/C7AZ/wuw
+ Gf8LsBn/C7AZ/wuwGf8LsBn/C7AZ/wuwGf8LsBn/C7AZ/wuwGf+Xl5eJAAAAGgAAAACQkJCJA5IH/8jm
+ yv7G7cr+xezI/sLsxv7A7MP+vevB/r3swv697ML+vezC/r3sw/6+7MP+vuzE/r7txP/A7sX+pe26/3bk
+ m/5E43n/RON5/0DidP874W3/OOFn/zPfYv8v3Vn/KdpP/yTYSP8f1j7/G9Qy/2/cev9q2HX9aNVx/WbU
+ b/5l02/+ZdJt/mTRbP5j0Gv+Ys5q/mHMaf5hy2j+Ycpo/mHJZ/5hxmb+YcZl/nXCeP0LsBn/l5eXiQAA
+ ABoDkgf/jd6f/2Hje/9N32r/UuJz/1Xjef9c5YT/W+aJ/1boiP9V6Ib/T+WD/0/ng/9R54j/T+eD/0/n
+ g/9P54P/TeWA/0jme/9H5Hz/R+R8/0Tjef9A4nT/O+Ft/zjhZ/8z32L/L91Z/yrbUv8k2Ej/H9Y+/xzU
+ N/8Z0TH/F88q/xHNJP8NyB//CsUa/wfCF/8GvhT/A7oQ/wC0Df8Asgv/AK4J/wCpBv8ApgT/AKAC/wCc
+ AP90xXj/C7AZ/wAAABoDkgf/fuWT/0DXUP9E2lj/SN1h/0zfZ/9Q4G7/VeJ3/1jke/9c5oH/WuaF/1bm
+ hv9O5ID/ReN6/0DidP9E43n/R+R8/0fkfP9H5Hz/R+R8/0fkfP9H5Hz/QOJ0/z7icP844Wf/NuBk/y/d
+ Wf8q21L/JNhI/yHXQf8c1Df/F9Av/xPNJv8QyyH/DMYc/wnDGf8Hwhb/BL0T/wO6EP8AtA3/ALAL/wCu
+ Cf8Aqgb/AKYE/wCgAv9hxGT/C7AZ/wAAABoDkgf/e+OM/z7WTf9A11D/Q9lW/0fcXf9L32X/UOBu/1Li
+ c/9Y5Hv/XOaB/2DniP9k547/YuiQ/1rniv9T5oT/S+V//0fkfP9H5Hz/R+R8/0fkfP9H5Hz/R+R8/0Di
+ dP8+4nD/O+Ft/zbgZP8x3lz/KttS/yfZTP8h10H/HNQ3/xfQL/8Uzif/EMsh/w3HHf8KxRr/B8IW/wS9
+ E/8DuhD/ALQN/wCyC/8Argn/AKkG/wCmBP9hxmX/C7AZ/wAAABoDkgf/eeOH/z3VS/8+1Uz/P9ZP/0PZ
+ Vv9H3F3/Sd5i/03fav9S4nP/WOR7/1zmgf9g54j/ZOeO/2fokv9s65f/a+mX/2Tokv9Z6Ir/TuWB/0fk
+ fP9H5Hz/R+R8/0fkfP9A4nT/PuJw/zvhbf824GT/Md5c/yrbUv8n2Uz/IddB/x7VPP8Z0TH/Fc8o/xHL
+ Iv8NyB//CsUa/wfCFv8GvhT/A7oQ/wG2Df8Asgv/AK8J/wCqBv9hyWf/C7AZ/wAAABoDkgf/d+CE/zzU
+ Sv881Er/PtVM/0DXUP9D2FL/R9xd/0neYv9N32r/UuJz/1bjeP9c5oH/YOeI/2Lni/9k547/bOuX/2/q
+ mv9y7J7/cuye/2jplf9e6Y3/VOaF/03lgP9E43n/QOJ0/z7icP874W3/OOFn/zHeXP8t21f/J9lM/yLX
+ RP8e1Tz/GdEx/xXPKP8RzST/Dcgf/wrGHP8Hwhf/Br4U/wO6EP8Btg3/ALIL/wCuCf9hzGj/C7AZ/wAA
+ ABoDkgf/dd+A/zrRR/870kn/PdVL/z7VTP8/1k//Q9hS/0bcWf9J3mL/TN9n/1Lic/9W43j/WeWA/13n
+ hP9i54v/ZOeO/2zrl/9v6pr/cuye/3Ttof907aH/cuye/27qmf9k6pL/W+eK/03kfv9F43X/O+Ft/zjh
+ Z/8z32L/LdtX/ynaT/8i10T/HtU8/xnRMf8Vzyj/Ec0k/w/KIP8Kxhz/B8IX/wa+Fv8DuhL/AbgO/wCy
+ C/9izmr/C7AZ/wAAABoDkgf/dN6A/zjQRf860Uf/O9JJ/zzUSv8+1Uz/P9ZP/0PYUv9G3Fn/Sd5i/03f
+ av9R4XD/VuN4/1nlgP9d54T/YueL/2fokv9q6ZX/b+qa/3Lsnv907aH/dO2h/3Ttof907aH/cuye/2/q
+ mv9q6ZX/XueK/1Plf/9I43L/POBl/zHcWv8p2k//ItdE/x/WPv8b1DL/F88q/xPNJv8PyiD/DMYc/wnC
+ Gf8Gvhb/A7oS/wG4Dv9k0Wz/C7AZ/wAAABoDkgf/c959/zfNRP83zkT/ONFH/zvSSf881Er/PtVM/z/W
+ T/9D2FL/RtxZ/0neYv9M32f/UeFw/1Xid/9Z5YD/XeeE/2Lni/9n6JL/aumV/2/qmv9y7J7/dO2h/3Tt
+ of907aH/dO2h/3Ttof907aH/cuye/2zrl/9k547/YOeI/1rmgP9O4nL/Qt5k/zbbVf8r10f/ItU4/xbP
+ Kf8RzST/D8og/wrGHP8Jwhn/Br4W/wO6Ev9l02//C7AZ/wAAABoDkgf/ctx7/zbNQv83zUT/ONBF/zjR
+ R/870kj/PNRK/z7VTP8+1k3/QdhQ/0TaWP9I3WH/TN9n/1Dgbv9V4nf/WOR7/13nhP9i54v/ZOeO/2rp
+ lf9s65f/cuye/3Ttof907aH/dO2h/3Ttof907aH/dO2h/3Lsnv9v6pr/bOuX/2fokv9i54v/XOaB/1bj
+ eP9S4nP/TN9n/0PcXP831kz/LtM//yXPNP8aySn/EsQh/wm/Gf9n1XD/C7AZ/wAAABoDkgf/cdt6/zXK
+ QP81zEL/N81E/zfORP840Uf/O9JI/zzUSv891Uv/PtZN/0HYUP9E2lj/SN1h/0vfZf9Q4G7/VeJ3/1jk
+ e/9d54T/YueL/2Tnjv9q6ZX/bOuX/3Lsnv907aH/dO2h/3Ttof907aH/dO2h/3Ttof9y7J7/b+qa/2zr
+ l/9q6ZX/ZOeO/2Lni/9c5oH/WeWA/1Xid/9Q4G7/S99l/0fcXf9D2Vb/P9ZP/zrUSP+E4Y3/C7AZ/wAA
+ ABoDkgf/f9SH/zXKQP81ykL/NcxC/zfNRP840EX/ONFH/zvSSf881Er/PtVM/z/WT/9B2FD/RNpY/0jd
+ Yf9M32f/UeFw/1Xid/9Y5Hv/XOaB/2DniP9k547/aumV/2zrl/9v6pr/dO2h/3Ttof907aH/dO2h/3Tt
+ of937aX/dO2h/3Lsnv9v6pr/aumV/2Tnjv9i54v/XeeE/1nlgP9V4nf/UeFw/0zfZ/9J3mL/RtxZ/0HY
+ UP+a3aj/C7AZ/wAAABqQkJCJA5IH/33ShP9v2nn/cdt6/3Lce/9y3Xz/dN59/3TegP924ID/d+CE/3nj
+ h/9644n/feWP/37lk/+C55n/hOec/2nggf9R4XD/VuN4/1zmgf9g54j/ZOeO/2rplf9s65f/b+qa/3Tt
+ of907aH/dO2h/5jrt/+y8Mv/v/DT/7/w0/+78dH/t/DP/7Xwzf+y8Mv/re/H/6ruxf+m7sH/o+y9/6Dr
+ uv+d6rb/meqw/6Dgsv8LsBn/l5eXiQAAABoAAAAAkJCQiQOSB/8Dkgf/A5IH/wOSB/8Dkgf/A5IH/wOS
+ B/8Dkgf/A5IH/wOSB/8Dkgf/A5IH/wOSB/8Dkgf/A5IH/4Lnmf9S4nP/UuJz/1bjeP9c5oH/YOeI/2Tn
+ jv9n6JL/bOuX/2/qmv907aH/d+2l/6juw/8LsBn/C7AZ/wuwGf8LsBn/C7AZ/wuwGf8LsBn/C7AZ/wuw
+ Gf8LsBn/C7AZ/wuwGf8LsBn/C7AZ/wuwGf+Xl5eJAAAAGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5IH/4Dllf9Q4G7/Td9q/1Hh
+ cP9W43j/WeWA/2DniP9i54v/ZOeO/2rplf9v6pr/d+2l/6juw/8Dkgf/AAAAGgAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5IH/33l
+ j/9L32X/Sd5i/0zfZ/9R4XD/VeJ3/1nlgP9d54T/YueL/2fokv9q6ZX/dO2h/6buwf8Dkgf/AAAAGwAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ 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
+ AAH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//
+ AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAIAA
+ AAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAA
+ AAAAAQAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//
+ AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//
+ AAD//wAA//+AAf//AAAoAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACio6NjC7AZ/wuwGf8LsBn/C7AZ/wuw
+ Gf8LsBn/C7AZ/wuwGf+io6NjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuwGf9X02H/V9Jg/1bO
+ Xf9WyVv/VsZZ/1bDV/9WvVb/VsBX/wuwGf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7AZ/1vX
+ Zf8FvxT/ArkP/wCyDP8Argj/AKgG/wCjA/9Ww1f/C7AZ/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAALsBn/Xtpp/wjFGf8GvxX/A7kP/wCzDP8Arwn/AKgG/1bHWf8LsBn/AAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAuwGf9h3W3/Dckg/wnEGv8GvxX/A7kR/wC1DP8Arwn/Vstb/wuwGf8AAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAC7AZ/2bhdP8Uzib/D8og/wnFGv8Gvxb/BLsS/wG2Df9W0V3/C7AZ/wAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsBn/a+R+/xvTNP8Vzij/EMog/wzFHP8HwBf/BLwS/1fV
+ Yf8LsBn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuwGf9x5ov/I9hF/xrTMv8Uzin/EMsh/wvG
+ G/8HwRb/Wdpk/wuwGf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7AZ/3bolP8r2lP/I9hF/xvU
+ Nv8Wzyv/Ecwi/wzHHf9c3Wj/C7AZ/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsBn/e+qb/zHe
+ XP8r21T/I9dE/x3UOf8W0Cz/Ecwj/1/ibf8LsBn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuw
+ Gf+A7KT/OeFq/zLeX/8r2lT/JNdF/x7VOv8Y0Sz/Y+Rx/wuwGf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKKjo2MIpBL/CKQS/wikEv8IpBL/CKQS/wikEv8IpBL/CKQS/wik
+ Ev8IpBL/CKQS/4TtqP8/4nP/OuFr/zPfYf8t3Fb/JdhJ/x/WPP9n5HX/C7AZ/wuwGf8LsBn/C7AZ/wuw
+ Gf8LsBn/C7AZ/wuwGf8LsBn/C7AZ/wuwGf+io6NjA5IH/0rpY/9e63j/ZO2A/2rwi/9w85L/dPOV/3X0
+ l/919Jj/dfaX/3nynP9665//bOmV/0Xke/9A4nP/OuFq/zTgYv8t3Fb/JtlL/2rjfv9n43f/Y+Zx/1/k
+ bP9d4Wn/Wt5l/1nbYv9X11//VtNd/1bQXP9WzFn/VslY/wuwGf8Dkgf/RdpW/x7VPP8l2Un/LdxX/zTg
+ Yf894m//ReR7/0jkf/9H5H3/SOR+/0fkfP9H5Hz/R+R8/0bkfP9B4nX/O+Fs/zbgZP8u3Vj/J9lM/yHX
+ Qf8a0zT/E84n/w/JH/8KxBr/B8EW/wO7Ef8AtA3/ALAK/wCrB/9Wwlj/C7AZ/wOSB/9B1k3/FM4p/xvT
+ Nv8h10L/KNpP/zHeXP844Gj/QeJ1/0bke/9K5YD/TOWB/0nlfv9H5Hz/R+R8/0bkfP9A43X/POJv/zbg
+ Zv8v3Vn/KNlN/yHXQP8a0zT/Fc8o/xDKIP8Lxhv/B8EV/wS7Ef8Btg3/ALEK/1bHWv8LsBn/A5IH/z7U
+ TP8RyyL/Fc4o/xrTMv8g10D/J9pO/zDeWv844Gj/PeJw/0Tkef9N5oL/UeeH/1Dmhv9M5oH/SeR+/0Xj
+ ev9A4nP/POJu/zjhZ/8w3Vv/KtpQ/yLXQ/8b0zb/Fc8o/w/LIv8Lxxz/B8EW/wS7Ef8Btg7/Vstd/wuw
+ Gf8Dkgf/PdJJ/w/KIP8RyyL/FM0n/xrTMf8f1z7/J9pO/y/dWf824GT/POJu/0Xkef9N5YL/UueJ/1Xp
+ jP9S6In/UOiG/0vlgP9E43j/PeFw/zfgZ/8w3Vv/KdpQ/yLXQ/8c0zb/FtAp/xHMI/8Lxxz/CMEY/wS8
+ FP9Xz1//C7AZ/wOSB/860Ef/C8Yc/w7JIP8RyyL/FM4n/xrTMP8g1j//JtlL/y7cWf824GT/PeJv/0Xj
+ ef9M5IH/UuiI/1TpjP9V6Yz/VOmL/1Poif9O5oX/RON4/zvhbf8z3mD/K9tS/yLXRP8c1Db/Fs8p/xDL
+ If8Lxxz/B8EY/1jSY/8LsBn/A5IH/znNRf8KxBr/CsUb/w7IHv8QyyH/Es0l/xjRL/8f1T3/JdhI/yzb
+ Vv8032H/PeJu/0Pjdv9K5X//UeeH/1XpjP9U6Yv/VOmM/1XpjP9R54j/TOaB/0Xkef884m7/M99g/yvb
+ U/8j10b/G9M2/xXPKv8PySH/Xdho/wuwGf8Dkgf/OM1F/znPR/870Un/PNRL/z7WTf9B2U//RNpT/0jd
+ W/9N4WX/UuRx/1fkef8032D/O+Fs/0Ljd/9K5X//UOeG/1Tpi/9U6Yv/U+mK/1fqj/9a7pL/Ve2N/07q
+ hf9G6Xv/P+hx/zfkaP8u4Fn/J91K/yDaPf9H31j/C7AZ/6Kjo2MDkgf/A5IH/wOSB/8Dkgf/A5IH/wOS
+ B/8Dkgf/A5IH/wOSB/8Dkgf/A5IH/1Xjdf8y317/OuFr/0Ljdv9I5X3/T+aF/1TpjP937qT/A5IH/wik
+ Ev8IpBL/CKQS/wikEv8IpBL/CKQS/wikEv8IpBL/CKQS/wikEv+io6NjAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkgf/VeR2/ynbUP8y317/OuFs/0DidP9F43r/TuaE/371
+ r/8Dkgf/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOSB/9P4Gn/IdZB/yjaT/8w3V3/OOFo/z/i
+ cv9H43v/evep/wOSB/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5IH/0ncWf8a0jL/INZB/yjZ
+ Tv8v3Vv/N+Fm/z/jcv909KH/A5IH/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkgf/RNlT/xTP
+ J/8a0jP/INdB/yfZTf8t3Vf/NuBk/23ymf8Dkgf/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ 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
+
+
+
\ No newline at end of file
diff --git a/AddFeed.Designer.cs b/AddFeed.Designer.cs
new file mode 100644
index 0000000..3a89033
--- /dev/null
+++ b/AddFeed.Designer.cs
@@ -0,0 +1,83 @@
+namespace TrayReader
+{
+ partial class AddFeed
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.addFeedButton = new System.Windows.Forms.Button();
+ this.textBox1 = new System.Windows.Forms.TextBox();
+ this.textBox1.SuspendLayout();
+ this.addFeedButton.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // addFeedButton
+ //
+ this.addFeedButton.FlatAppearance.BorderSize = 0;
+ this.addFeedButton.FlatStyle = System.Windows.Forms.FlatStyle.System;
+ this.addFeedButton.Location = new System.Drawing.Point(386, -1);
+ this.addFeedButton.Name = "addFeedButton";
+ this.addFeedButton.Size = new System.Drawing.Size(53, 22);
+ this.addFeedButton.TabIndex = 1;
+ this.addFeedButton.TabStop = false;
+ this.addFeedButton.Text = "Add";
+ this.addFeedButton.UseVisualStyleBackColor = true;
+ this.addFeedButton.Click += new System.EventHandler(this.FeedSubmitButton_Click);
+ this.addFeedButton.ResumeLayout(false);
+ this.addFeedButton.PerformLayout();
+ //
+ // textBox1
+ //
+ this.textBox1.Location = new System.Drawing.Point(0, 0);
+ this.textBox1.Name = "textBox1";
+ this.textBox1.Size = new System.Drawing.Size(387, 20);
+ this.textBox1.TabIndex = 2;
+ this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
+ this.textBox1.ResumeLayout(false);
+ this.textBox1.PerformLayout();
+ //
+ // AddFeed
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(437, 20);
+ this.Controls.Add(this.textBox1);
+ this.Controls.Add(this.addFeedButton);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
+ this.Name = "AddFeed";
+ this.Text = "RSS Feed URL";
+ this.Load += new System.EventHandler(this.AddFeed_Load);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.TextBox textBox1;
+ private System.Windows.Forms.Button addFeedButton;
+ }
+}
\ No newline at end of file
diff --git a/AddFeed.cs b/AddFeed.cs
new file mode 100644
index 0000000..b2f0ef3
--- /dev/null
+++ b/AddFeed.cs
@@ -0,0 +1,67 @@
+using System;
+using System.Drawing;
+using System.Windows.Forms;
+using TrayReader.Properties;
+
+namespace TrayReader
+{
+ public partial class AddFeed : Form
+ {
+ private string currentURLInput;
+ private bool can_add;
+
+ public AddFeed()
+ {
+ InitializeComponent();
+ }
+
+ private void AddFeed_Load(object sender, EventArgs e)
+ {
+ }
+
+ private void textBox1_TextChanged(object sender, EventArgs e)
+ {
+ var text = textBox1.Text;
+ if (!text.Contains("http"))
+ {
+ text = "http://" + text;
+ }
+ can_add = Helper.ValidateURL(text);
+ if (can_add)
+ {
+ textBox1.BackColor = Color.Empty;
+ can_add = true;
+ }
+ else
+ {
+ textBox1.BackColor = Color.Red;
+ can_add = false;
+ }
+ currentURLInput = text;
+ }
+
+ private void FeedSubmitButton_Click(object sender, EventArgs e)
+ {
+ // Get value of field
+ if (!can_add)
+ {
+ return;
+ }
+ try
+ {
+ var potential_url = this.currentURLInput;
+ if (Helper.ValidateURL(potential_url))
+ {
+ Settings.Default.SettingFeedList.Add(potential_url.TrimEnd('/'));
+ Settings.Default.Save();
+ TrayReader.ProcessIcon.ni.ContextMenuStrip = new ContextMenus().CreateFeedsMenu();
+ this.Close();
+ }
+ }
+ catch (Exception exception)
+ {
+ Program.ExceptionHandler(exception);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/AddFeed.resx b/AddFeed.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/AddFeed.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
\ No newline at end of file
diff --git a/ContextMenus.cs b/ContextMenus.cs
new file mode 100644
index 0000000..fa34b0b
--- /dev/null
+++ b/ContextMenus.cs
@@ -0,0 +1,402 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.Specialized;
+using System.Diagnostics;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Reflection;
+using System.ServiceModel.Syndication;
+using System.Text;
+using System.Windows.Forms;
+using System.Xml;
+using TrayReader.Properties;
+
+namespace TrayReader
+{
+ ///
+ ///
+ ///
+ internal class ContextMenus
+ {
+ ///
+ /// Is the About box displayed?
+ ///
+ private bool isAboutLoaded = false;
+
+ private void showToolTip(string text, string title = "")
+ {
+ if (title == "")
+ {
+ title = Program.ProductName;
+ }
+ ProcessIcon.ni.BalloonTipTitle = title;
+ ProcessIcon.ni.BalloonTipText = text;
+ ProcessIcon.ni.ShowBalloonTip(1);
+ }
+
+ private class MyXmlReader : XmlTextReader
+ {
+ private bool readingDate = false;
+ private const string CustomUtcDateTimeFormat = "ddd MMM dd HH:mm:ss Z yyyy"; // Wed Oct 07 08:00:07 GMT 2009
+
+ public MyXmlReader(Stream s) : base(s)
+ {
+ }
+
+ public MyXmlReader(string inputUri) : base(inputUri)
+ {
+ }
+
+ public override void ReadStartElement()
+ {
+ if (string.Equals(base.NamespaceURI, string.Empty, StringComparison.InvariantCultureIgnoreCase) &&
+ (string.Equals(base.LocalName, "lastBuildDate", StringComparison.InvariantCultureIgnoreCase) ||
+ string.Equals(base.LocalName, "pubDate", StringComparison.InvariantCultureIgnoreCase)))
+ {
+ readingDate = true;
+ }
+ base.ReadStartElement();
+ }
+
+ public override void ReadEndElement()
+ {
+ if (readingDate)
+ {
+ readingDate = false;
+ }
+ base.ReadEndElement();
+ }
+
+ public override string ReadString()
+ {
+ if (readingDate)
+ {
+ string dateString = base.ReadString();
+ DateTime dt;
+ if (!DateTime.TryParse(dateString, out dt))
+ dt = DateTime.ParseExact(dateString, CustomUtcDateTimeFormat, System.Globalization.CultureInfo.InvariantCulture);
+ return dt.ToUniversalTime().ToString("R", System.Globalization.CultureInfo.InvariantCulture);
+ }
+ else
+ {
+ return base.ReadString();
+ }
+ }
+ }
+
+ public ContextMenuStrip CreateLoadingMenu()
+ {
+ ContextMenuStrip menu = new ContextMenuStrip();
+ ToolStripMenuItem item;
+ // Add a feed.
+ item = new ToolStripMenuItem()
+ {
+ Text = "Loading..."
+ };
+ item.Enabled = false;
+ menu.Items.Add(item);
+ return menu;
+ }
+
+ public ContextMenuStrip CreateOptionsMenu()
+ {
+ ContextMenuStrip menu = new ContextMenuStrip();
+ ToolStripMenuItem item;
+
+ // Add a feed.
+ item = new ToolStripMenuItem()
+ {
+ Text = "Add Feed",
+ Image = Resources.Rss
+ };
+ item.Click += new EventHandler(AddFeed_Click);
+ menu.Items.Add(item);
+
+ // About box
+ item = new ToolStripMenuItem()
+ {
+ Text = "About",
+ Image = Resources.About
+ };
+ item.Click += new EventHandler(About_Click);
+ menu.Items.Add(item);
+
+ // Notifications On/Off
+ item = new ToolStripMenuItem()
+ {
+ Text = "Notifications",
+ Checked = Settings.Default.ShowNotifications,
+ };
+ if (item.Checked)
+ {
+ item.Image = Resources.checkmark;
+ }
+ item.Click += new EventHandler(Notification_Setting_Click);
+ menu.Items.Add(item);
+
+ // Add to Startup
+ item = new ToolStripMenuItem()
+ {
+ Text = "Run at Login",
+ Checked = Settings.Default.AutomaticStartup,
+ };
+ if (item.Checked)
+ {
+ item.Image = Resources.checkmark;
+ }
+ item.Click += new EventHandler(Startup_Click);
+ menu.Items.Add(item);
+
+ // Separator.
+ menu.Items.Add(new ToolStripSeparator());
+
+ // Exit.
+ item = new ToolStripMenuItem()
+ {
+ Text = "Exit",
+ Image = Resources.Exit
+ };
+ item.Click += new System.EventHandler(Exit_Click);
+ menu.Items.Add(item);
+
+ System.GC.Collect(3, System.GCCollectionMode.Forced);
+ System.GC.WaitForFullGCComplete();
+
+ return menu;
+ }
+
+ ///
+ /// Creates this instance.
+ ///
+ /// ContextMenuStrip
+ public ContextMenuStrip CreateFeedsMenu(bool allow_notifications = true)
+ {
+ // Add the default menu options.
+ // TODO: Cache the feeds results to avoid heavy rebuilding every time a checkbox value changes :(
+ ContextMenuStrip menu = new ContextMenuStrip();
+ ToolStripMenuItem item;
+
+ if (Helper.NeedUpgrade)
+ {
+ Settings.Default.Upgrade();
+ Settings.Default.Save();
+ Helper.NeedUpgrade = false;
+ }
+ Settings.Default.Reload();
+ bool show_notifications = Settings.Default.ShowNotifications;
+ if (!allow_notifications)
+ {
+ show_notifications = false;
+ }
+ bool debug = Settings.Default.Debug;
+ System.Collections.Specialized.StringCollection FeedCollection = Settings.Default.SettingFeedList;
+ List feed_title_list = new List();
+ if (FeedCollection != null)
+ {
+ short max_entry_per_site = Settings.Default.EntriesPerFeed;
+ StringCollection loaded_urls = new StringCollection();
+
+ foreach (var url_iter in FeedCollection)
+ {
+ string saved_url = url_iter.TrimEnd('/').Replace(".xml", "");
+ string tip_title = "";
+ if (show_notifications)
+ {
+ tip_title = "Loading";
+ }
+ if (loaded_urls.Contains(saved_url))
+ {
+ if (show_notifications)
+ {
+ tip_title += "... (Ignored)";
+ }
+ }
+ else if (!Helper.ValidateURL(saved_url))
+ {
+ if (show_notifications)
+ {
+ tip_title += "... (Invalid)";
+ }
+ }
+ else
+ {
+ // Hack to handle invalid RSS 2.0 dates
+ // https://stackoverflow.com/a/3936714
+ XmlReader r = new MyXmlReader(saved_url);
+ SyndicationFeed feed = SyndicationFeed.Load(r);
+ Rss20FeedFormatter rssFormatter = feed.GetRss20Formatter();
+ XmlTextWriter rssWriter = new XmlTextWriter("rss.xml", Encoding.UTF8);
+ rssWriter.Formatting = Formatting.Indented;
+ rssFormatter.WriteTo(rssWriter);
+ rssWriter.Close();
+ item = new ToolStripMenuItem
+ {
+ Text = rssFormatter.Feed.Title.Text,
+ Image = Resources.Rss
+ };
+ //if (show_notifications)
+ //{
+ // showToolTip(tip_title + " " + item.Text + ((debug) ? saved_url : ""));
+ //}
+ feed_title_list.Add(item.Text);
+ {// I cannot find how to obtain the base url within the first blah element, so I'll do a dirty split
+ string main_website_url = "";
+ foreach (string baseurl in url_iter.Split('/').ToList().GetRange(0, 3))
+ {
+ main_website_url += baseurl + "/";
+ }
+ item.Click += delegate (object sender, EventArgs e) { FeedEntry_Click(sender, e, main_website_url); };
+ }
+
+ // TODO: get image
+ //foreach (SyndicationElementExtension extension in f.ElementExtensions)
+ //{
+ // XElement element = extension.GetObject();
+ //
+ // if (element.HasAttributes)
+ // {
+ // foreach (var attribute in element.Attributes())
+ // {
+ // string value = attribute.Value.ToLower();
+ // if (value.StartsWith("http://") && (value.EndsWith(".jpg") || value.EndsWith(".png") || value.EndsWith(".gif")))
+ // {
+ // rssItem.ImageLinks.Add(value); // Add here the image link to some array
+ // }
+ // }
+ // }
+ //}
+
+ menu.Items.Add(item); // Add menu entry with the feed name
+ for (int i = 0; i < max_entry_per_site; i++) // Add elements from feed
+ {
+ var syndicationItem = rssFormatter.Feed.Items.ElementAt(i);
+ item = new ToolStripMenuItem()
+ {
+ Text = syndicationItem.Title.Text
+ };
+ item.Click += delegate (object sender, EventArgs e) { FeedEntry_Click(sender, e, syndicationItem.Links.ToList().First().Uri.ToString()); };
+ menu.Items.Add(item);
+ //TODO: Get "Info" field and set as tooltip
+ }
+ loaded_urls.Add(saved_url);
+ menu.Items.Add(new ToolStripSeparator()); // Separator.
+ }
+ }
+ // Must be saved after the foreach loop to prevent overwriting the working data
+ Settings.Default.SettingFeedList.Clear();
+ Settings.Default.SettingFeedList = loaded_urls;
+ Settings.Default.Save();
+ if (File.Exists("rss.xml"))
+ {
+ try
+ {
+ File.Delete("rss.xml");
+ }
+ catch (Exception ex)
+ {
+ Program.ExceptionHandler(ex);
+ }
+ }
+ }
+
+ if (show_notifications)
+ {
+ string titles = "";
+ foreach (string title in feed_title_list)
+ {
+ titles += title + System.Environment.NewLine;
+ }
+ if (titles != "")
+ {
+ showToolTip(titles, "Loaded Feeds");
+ }
+ }
+ return menu;
+ }
+
+ private void FeedEntry_Click(object sender, EventArgs e, string u)
+ {
+ try
+ {
+ Process.Start(u);
+ }
+ catch (Exception ex)
+ {
+ Program.ExceptionHandler(ex);
+ }
+ }
+
+ ///
+ /// Handles the Click event of the Add Feed control.
+ ///
+ /// The source of the event.
+ /// The instance containing the event data.
+ private void AddFeed_Click(object sender, EventArgs e)
+ {
+ new AddFeed().ShowDialog();
+ }
+
+ ///
+ /// Handles the Click event of the Explorer control.
+ ///
+ /// The source of the event.
+ /// The instance containing the event data.
+ private void Explorer_Click(object sender, EventArgs e)
+ {
+ Process.Start("explorer", null);
+ }
+
+ ///
+ /// Handles the Click event of the About control.
+ ///
+ /// The source of the event.
+ /// The instance containing the event data.
+ private void About_Click(object sender, EventArgs e)
+ {
+ if (!isAboutLoaded)
+ {
+ isAboutLoaded = true;
+ new AboutBox().ShowDialog();
+ isAboutLoaded = false;
+ }
+ }
+
+ ///
+ /// Handles the Click event of the Notification Setting control.
+ ///
+ /// The sender.
+ /// The instance containing the event data.
+ private void Notification_Setting_Click(object sender, EventArgs e)
+ {
+ Settings.Default.ShowNotifications = !Settings.Default.ShowNotifications;
+ Settings.Default.Save();
+ TrayReader.ProcessIcon.ni.ContextMenuStrip = new ContextMenus().CreateFeedsMenu(false);
+ }
+
+ ///
+ /// Handles the Click event of the Startup control.
+ ///
+ /// The sender.
+ /// The instance containing the event data.
+ private void Startup_Click(object sender, EventArgs e)
+ {
+ bool startUp = !Settings.Default.AutomaticStartup;
+ Integration.AddToStartup(startUp);
+ Settings.Default.AutomaticStartup = startUp;
+ Settings.Default.Save();
+ TrayReader.ProcessIcon.ni.ContextMenuStrip = new ContextMenus().CreateFeedsMenu(false);
+ }
+
+ ///
+ /// Handles the Click event of the Exit control.
+ ///
+ /// The sender.
+ /// The instance containing the event data.
+ private void Exit_Click(object sender, EventArgs e)
+ {
+ // Quit without further ado.
+ Application.Exit();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Images/About.png b/Images/About.png
new file mode 100644
index 0000000..865201e
Binary files /dev/null and b/Images/About.png differ
diff --git a/Images/Exit.png b/Images/Exit.png
new file mode 100644
index 0000000..a0131bd
Binary files /dev/null and b/Images/Exit.png differ
diff --git a/Images/Explorer.png b/Images/Explorer.png
new file mode 100644
index 0000000..0e8ae30
Binary files /dev/null and b/Images/Explorer.png differ
diff --git a/Images/checkmark.ico b/Images/checkmark.ico
new file mode 100644
index 0000000..a3348f5
Binary files /dev/null and b/Images/checkmark.ico differ
diff --git a/Images/checkmark.png b/Images/checkmark.png
new file mode 100644
index 0000000..a14ba5a
Binary files /dev/null and b/Images/checkmark.png differ
diff --git a/Images/rss_icon.ico b/Images/rss_icon.ico
new file mode 100644
index 0000000..8f8a174
Binary files /dev/null and b/Images/rss_icon.ico differ
diff --git a/Images/rss_icon.png b/Images/rss_icon.png
new file mode 100644
index 0000000..6f265e4
Binary files /dev/null and b/Images/rss_icon.png differ
diff --git a/Integration.cs b/Integration.cs
new file mode 100644
index 0000000..614f67f
--- /dev/null
+++ b/Integration.cs
@@ -0,0 +1,53 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Text;
+
+namespace TrayReader
+{
+ internal class Integration
+ {
+ public static void AddToStartup(bool add)
+ {
+ string startupFolder = Environment.GetFolderPath(Environment.SpecialFolder.Startup);
+ // Empty a few directories. Yes. If your shit is missing, this is the line that does it.
+ Type t = Type.GetTypeFromCLSID(new Guid("72C24DD5-D70A-438B-8A42-98424B88AFB8"));
+ if (t != null)
+ {
+ dynamic shell = Activator.CreateInstance(t);
+ try
+ {
+ if (shell != null)
+ {
+ File.Delete(startupFolder + "\\" + Program.ProductName + ".lnk");
+ if (add)
+ {
+ dynamic startupEntry = shell.CreateShortcut(startupFolder + "\\" + Program.ProductName + ".lnk");
+ try
+ {
+ var currentPathToExe = Directory.GetCurrentDirectory() + "\\" + Program.ProductName + ".exe";
+ startupEntry.TargetPath = currentPathToExe;
+ startupEntry.IconLocation = currentPathToExe;
+ startupEntry.Save();
+ }
+ finally
+ {
+ Marshal.FinalReleaseComObject(startupEntry);
+ }
+ }
+ }
+ }
+ finally
+ {
+ if (shell != null)
+ {
+ Marshal.FinalReleaseComObject(shell);
+ }
+ }
+ }
+ //LogStats();
+ }
+ }
+}
\ No newline at end of file
diff --git a/ProcessIcon.cs b/ProcessIcon.cs
new file mode 100644
index 0000000..1c2a268
--- /dev/null
+++ b/ProcessIcon.cs
@@ -0,0 +1,74 @@
+using System;
+using System.Reflection;
+using System.Windows.Forms;
+using TrayReader.Properties;
+
+namespace TrayReader
+{
+ ///
+ ///
+ ///
+ internal class ProcessIcon : IDisposable
+ {
+ ///
+ /// The NotifyIcon object.
+ ///
+ public static NotifyIcon ni;
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public ProcessIcon()
+ {
+ // Instantiate the NotifyIcon object.
+ ni = new NotifyIcon();
+ }
+
+ ///
+ /// Displays the icon in the system tray.
+ ///
+ public void Display()
+ {
+ // Put the icon in the system tray and allow it react to mouse clicks.
+ ni.MouseClick += new MouseEventHandler(ni_MouseClick);
+ ni.Icon = Resources.TrayReader;
+ ni.Text = "TrayReader";
+ ni.Visible = true;
+
+ // Attach a context menu.
+ //ni.ContextMenuStrip = new ContextMenus().Create();
+ }
+
+ ///
+ /// Releases unmanaged and - optionally - managed resources
+ ///
+ public void Dispose()
+ {
+ // When the application closes, this will remove the icon from the system tray immediately.
+ ni.Dispose();
+ }
+
+ ///
+ /// Handles the MouseClick event of the ni control.
+ ///
+ /// The source of the event.
+ /// The instance containing the event data.
+ private void ni_MouseClick(object sender, MouseEventArgs e)
+ {
+ MethodInfo mi = typeof(NotifyIcon).GetMethod("ShowContextMenu", BindingFlags.Instance | BindingFlags.NonPublic);
+ // Handle mouse button clicks.
+ if (e.Button == MouseButtons.Left)
+ {
+ ni.ContextMenuStrip = new ContextMenus().CreateLoadingMenu();
+ mi.Invoke(ni, null);
+ ni.ContextMenuStrip = new ContextMenus().CreateFeedsMenu(false);
+ mi.Invoke(ni, null);
+ }
+ else if (e.Button == MouseButtons.Right)
+ {
+ ni.ContextMenuStrip = new ContextMenus().CreateOptionsMenu();
+ mi.Invoke(ni, null);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Program.cs b/Program.cs
new file mode 100644
index 0000000..ae4c43f
--- /dev/null
+++ b/Program.cs
@@ -0,0 +1,84 @@
+// Based on https://www.codeproject.com/Articles/290013/Formless-System-Tray-Application
+using System;
+using System.Reflection;
+using System.Threading;
+using System.Windows.Forms;
+
+namespace TrayReader
+{
+ internal static class Program
+ {
+ public static ProcessIcon currentIconInstance = new ProcessIcon();
+ public static string ProductName = ((AssemblyProductAttribute)Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), true)[0]).Product;
+
+ ///
+ /// The main entry point for the application.
+ ///
+ [STAThread]
+ private static void Main()
+ {
+ // Quit if already running
+ // https://stackoverflow.com/a/6392264
+ Mutex mutex = new System.Threading.Mutex(false, ProductName);
+ try
+ {
+ if (mutex.WaitOne(0, false))
+ {
+ // Run the application
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ // Show the system tray icon.
+ currentIconInstance.Display();
+ // Make sure the application runs!
+ Application.Run();
+ }
+ }
+ finally
+ {
+ if (mutex != null)
+ {
+ mutex.Close();
+ mutex = null;
+ }
+ }
+ }
+
+ internal static void ExceptionHandler(Exception exception)
+ {
+ // Meep.
+ System.Windows.Forms.MessageBox.Show(
+ exception.ToString(), ":( Sortahandled Exception! - " + ((AssemblyProductAttribute)Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), true)[0]).Product.ToString(),
+ System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
+ }
+ }
+
+ internal static class Helper
+ {
+ public static bool NeedUpgrade = true;
+
+ public static bool ValidateURL(string url)
+ {
+ return Uri.IsWellFormedUriString(url, UriKind.Absolute) && url.Contains(".") && url.Contains("http") && url.Contains("://");
+ }
+
+ public static System.Collections.Generic.List Convert(System.Collections.Specialized.StringCollection collection)
+ {
+ System.Collections.Generic.List list = new System.Collections.Generic.List();
+ foreach (string item in collection)
+ {
+ list.Add(item);
+ }
+ return list;
+ }
+
+ public static System.Collections.Specialized.StringCollection Convert(System.Collections.Generic.List list)
+ {
+ System.Collections.Specialized.StringCollection collection = new System.Collections.Specialized.StringCollection();
+ foreach (string item in list)
+ {
+ collection.Add(item);
+ }
+ return collection;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..72533bc
--- /dev/null
+++ b/Properties/AssemblyInfo.cs
@@ -0,0 +1,38 @@
+using System.Resources;
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("TrayReader")]
+[assembly: AssemblyDescription("RSS Feed reader")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("TrayReader")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("56ad6cbe-bedc-4362-82b9-67f2d7340667")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.2")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
+[assembly: NeutralResourcesLanguage("")]
+
diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..c70c990
--- /dev/null
+++ b/Properties/Resources.Designer.cs
@@ -0,0 +1,123 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace TrayReader.Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TrayReader.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap About {
+ get {
+ object obj = ResourceManager.GetObject("About", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap checkmark {
+ get {
+ object obj = ResourceManager.GetObject("checkmark", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Exit {
+ get {
+ object obj = ResourceManager.GetObject("Exit", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Explorer {
+ get {
+ object obj = ResourceManager.GetObject("Explorer", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Rss {
+ get {
+ object obj = ResourceManager.GetObject("Rss", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
+ ///
+ internal static System.Drawing.Icon TrayReader {
+ get {
+ object obj = ResourceManager.GetObject("TrayReader", resourceCulture);
+ return ((System.Drawing.Icon)(obj));
+ }
+ }
+ }
+}
diff --git a/Properties/Resources.resx b/Properties/Resources.resx
new file mode 100644
index 0000000..92765b0
--- /dev/null
+++ b/Properties/Resources.resx
@@ -0,0 +1,139 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+ ..\images\about.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\images\exit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\images\explorer.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Images\rss_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\images\rss_icon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\images\checkmark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
\ No newline at end of file
diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..21a71cd
--- /dev/null
+++ b/Properties/Settings.Designer.cs
@@ -0,0 +1,87 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace TrayReader.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("\r\n")]
+ public global::System.Collections.Specialized.StringCollection SettingFeedList {
+ get {
+ return ((global::System.Collections.Specialized.StringCollection)(this["SettingFeedList"]));
+ }
+ set {
+ this["SettingFeedList"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("3")]
+ public short EntriesPerFeed {
+ get {
+ return ((short)(this["EntriesPerFeed"]));
+ }
+ set {
+ this["EntriesPerFeed"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("False")]
+ public bool ShowNotifications {
+ get {
+ return ((bool)(this["ShowNotifications"]));
+ }
+ set {
+ this["ShowNotifications"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("False")]
+ public bool Debug {
+ get {
+ return ((bool)(this["Debug"]));
+ }
+ set {
+ this["Debug"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("False")]
+ public bool AutomaticStartup {
+ get {
+ return ((bool)(this["AutomaticStartup"]));
+ }
+ set {
+ this["AutomaticStartup"] = value;
+ }
+ }
+ }
+}
diff --git a/Properties/Settings.settings b/Properties/Settings.settings
new file mode 100644
index 0000000..a72623b
--- /dev/null
+++ b/Properties/Settings.settings
@@ -0,0 +1,22 @@
+
+
+
+
+
+ <?xml version="1.0" encoding="utf-16"?>
+<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
+
+
+ 3
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+
\ No newline at end of file
diff --git a/TrayReader.csproj b/TrayReader.csproj
new file mode 100644
index 0000000..f4fce01
--- /dev/null
+++ b/TrayReader.csproj
@@ -0,0 +1,120 @@
+
+
+
+ Debug
+ x86
+ 8.0.30703
+ 2.0
+ {F317AF2E-9704-4A2A-BDAE-B4662ED9483B}
+ WinExe
+ Properties
+ TrayReader
+ TrayReader
+ v4.0
+ Client
+ 512
+
+
+ x86
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ x86
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+ TrayReader.Program
+
+
+ Images\rss_icon.ico
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ AboutBox.cs
+
+
+
+
+ Form
+
+
+ AddFeed.cs
+
+
+
+
+
+ AboutBox.cs
+
+
+ AddFeed.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+ Designer
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TrayReader.sln b/TrayReader.sln
new file mode 100644
index 0000000..ebe6c29
--- /dev/null
+++ b/TrayReader.sln
@@ -0,0 +1,22 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TrayReader", "TrayReader.csproj", "{F317AF2E-9704-4A2A-BDAE-B4662ED9483B}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x86 = Debug|x86
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {F317AF2E-9704-4A2A-BDAE-B4662ED9483B}.Debug|x86.ActiveCfg = Debug|x86
+ {F317AF2E-9704-4A2A-BDAE-B4662ED9483B}.Debug|x86.Build.0 = Debug|x86
+ {F317AF2E-9704-4A2A-BDAE-B4662ED9483B}.Release|x86.ActiveCfg = Release|x86
+ {F317AF2E-9704-4A2A-BDAE-B4662ED9483B}.Release|x86.Build.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/app.config b/app.config
new file mode 100644
index 0000000..66a35b5
--- /dev/null
+++ b/app.config
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+
+
\ No newline at end of file