diff --git a/ShuntCalculator.sln b/ShuntCalculator.sln
new file mode 100644
index 0000000..8f8c11b
--- /dev/null
+++ b/ShuntCalculator.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30523.141
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ShuntCalculator", "ShuntCalculator\ShuntCalculator.csproj", "{91D3DC06-E7E4-47AB-9897-85AEEDDDFF72}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {91D3DC06-E7E4-47AB-9897-85AEEDDDFF72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {91D3DC06-E7E4-47AB-9897-85AEEDDDFF72}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {91D3DC06-E7E4-47AB-9897-85AEEDDDFF72}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {91D3DC06-E7E4-47AB-9897-85AEEDDDFF72}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {FD5D1169-0BFB-4135-9794-74E34971CFDF}
+ EndGlobalSection
+EndGlobal
diff --git a/ShuntCalculator/App.config b/ShuntCalculator/App.config
new file mode 100644
index 0000000..56efbc7
--- /dev/null
+++ b/ShuntCalculator/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ShuntCalculator/Form1.Designer.cs b/ShuntCalculator/Form1.Designer.cs
new file mode 100644
index 0000000..42bb728
--- /dev/null
+++ b/ShuntCalculator/Form1.Designer.cs
@@ -0,0 +1,317 @@
+namespace ShuntCalculator
+{
+ partial class Form1
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
+ this.maskedTextBox1 = new System.Windows.Forms.MaskedTextBox();
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.label8 = new System.Windows.Forms.Label();
+ this.label7 = new System.Windows.Forms.Label();
+ this.label6 = new System.Windows.Forms.Label();
+ this.label5 = new System.Windows.Forms.Label();
+ this.maskedTextBox4 = new System.Windows.Forms.MaskedTextBox();
+ this.label4 = new System.Windows.Forms.Label();
+ this.maskedTextBox3 = new System.Windows.Forms.MaskedTextBox();
+ this.label3 = new System.Windows.Forms.Label();
+ this.maskedTextBox2 = new System.Windows.Forms.MaskedTextBox();
+ this.label2 = new System.Windows.Forms.Label();
+ this.label1 = new System.Windows.Forms.Label();
+ this.groupBox2 = new System.Windows.Forms.GroupBox();
+ this.label13 = new System.Windows.Forms.Label();
+ this.label12 = new System.Windows.Forms.Label();
+ this.label11 = new System.Windows.Forms.Label();
+ this.label10 = new System.Windows.Forms.Label();
+ this.label9 = new System.Windows.Forms.Label();
+ this.checkBox1 = new System.Windows.Forms.CheckBox();
+ this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
+ this.groupBox1.SuspendLayout();
+ this.groupBox2.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // maskedTextBox1
+ //
+ this.maskedTextBox1.Location = new System.Drawing.Point(11, 77);
+ this.maskedTextBox1.Mask = "000";
+ this.maskedTextBox1.Name = "maskedTextBox1";
+ this.maskedTextBox1.Size = new System.Drawing.Size(285, 31);
+ this.maskedTextBox1.TabIndex = 0;
+ this.maskedTextBox1.Text = "350";
+ this.toolTip1.SetToolTip(this.maskedTextBox1, "Enter your cards default power limit");
+ this.maskedTextBox1.TextChanged += new System.EventHandler(this.maskedTextBox1_TextChanged);
+ //
+ // groupBox1
+ //
+ this.groupBox1.Controls.Add(this.checkBox1);
+ this.groupBox1.Controls.Add(this.label8);
+ this.groupBox1.Controls.Add(this.label7);
+ this.groupBox1.Controls.Add(this.label6);
+ this.groupBox1.Controls.Add(this.label5);
+ this.groupBox1.Controls.Add(this.maskedTextBox4);
+ this.groupBox1.Controls.Add(this.label4);
+ this.groupBox1.Controls.Add(this.maskedTextBox3);
+ this.groupBox1.Controls.Add(this.label3);
+ this.groupBox1.Controls.Add(this.maskedTextBox2);
+ this.groupBox1.Controls.Add(this.label2);
+ this.groupBox1.Controls.Add(this.label1);
+ this.groupBox1.Controls.Add(this.maskedTextBox1);
+ this.groupBox1.Location = new System.Drawing.Point(12, 12);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Size = new System.Drawing.Size(713, 313);
+ this.groupBox1.TabIndex = 1;
+ this.groupBox1.TabStop = false;
+ this.groupBox1.Text = "Calculator";
+ //
+ // label8
+ //
+ this.label8.AutoSize = true;
+ this.label8.Location = new System.Drawing.Point(375, 255);
+ this.label8.Name = "label8";
+ this.label8.Size = new System.Drawing.Size(48, 25);
+ this.label8.TabIndex = 11;
+ this.label8.Text = "732";
+ this.toolTip1.SetToolTip(this.label8, "New max power limit thats adjustable too.");
+ //
+ // label7
+ //
+ this.label7.AutoSize = true;
+ this.label7.Location = new System.Drawing.Point(6, 255);
+ this.label7.Name = "label7";
+ this.label7.Size = new System.Drawing.Size(48, 25);
+ this.label7.TabIndex = 10;
+ this.label7.Text = "700";
+ this.toolTip1.SetToolTip(this.label7, "New power limit with card on defaulk setting.");
+ //
+ // label6
+ //
+ this.label6.AutoSize = true;
+ this.label6.Location = new System.Drawing.Point(375, 215);
+ this.label6.Name = "label6";
+ this.label6.Size = new System.Drawing.Size(224, 25);
+ this.label6.TabIndex = 9;
+ this.label6.Text = "New Max Power Limit:";
+ //
+ // label5
+ //
+ this.label5.AutoSize = true;
+ this.label5.Location = new System.Drawing.Point(6, 215);
+ this.label5.Name = "label5";
+ this.label5.Size = new System.Drawing.Size(177, 25);
+ this.label5.TabIndex = 8;
+ this.label5.Text = "New Power Limit:";
+ //
+ // maskedTextBox4
+ //
+ this.maskedTextBox4.Location = new System.Drawing.Point(380, 164);
+ this.maskedTextBox4.Mask = "000";
+ this.maskedTextBox4.Name = "maskedTextBox4";
+ this.maskedTextBox4.PromptChar = ' ';
+ this.maskedTextBox4.Size = new System.Drawing.Size(142, 31);
+ this.maskedTextBox4.TabIndex = 7;
+ this.maskedTextBox4.Text = "005";
+ this.toolTip1.SetToolTip(this.maskedTextBox4, "Shunt value that is stacked or value of resistor replacing.");
+ this.maskedTextBox4.TextChanged += new System.EventHandler(this.maskedTextBox4_TextChanged);
+ //
+ // label4
+ //
+ this.label4.AutoSize = true;
+ this.label4.Location = new System.Drawing.Point(375, 127);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(136, 25);
+ this.label4.TabIndex = 6;
+ this.label4.Text = "Added Shunt";
+ //
+ // maskedTextBox3
+ //
+ this.maskedTextBox3.Location = new System.Drawing.Point(11, 164);
+ this.maskedTextBox3.Mask = "000";
+ this.maskedTextBox3.Name = "maskedTextBox3";
+ this.maskedTextBox3.PromptChar = ' ';
+ this.maskedTextBox3.Size = new System.Drawing.Size(142, 31);
+ this.maskedTextBox3.TabIndex = 5;
+ this.maskedTextBox3.Text = "005";
+ this.toolTip1.SetToolTip(this.maskedTextBox3, "Default Shunt resistors found on gpu");
+ this.maskedTextBox3.TextChanged += new System.EventHandler(this.maskedTextBox3_TextChanged);
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(11, 127);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(142, 25);
+ this.label3.TabIndex = 4;
+ this.label3.Text = "Default Shunt";
+ //
+ // maskedTextBox2
+ //
+ this.maskedTextBox2.Location = new System.Drawing.Point(380, 77);
+ this.maskedTextBox2.Mask = "000";
+ this.maskedTextBox2.Name = "maskedTextBox2";
+ this.maskedTextBox2.Size = new System.Drawing.Size(285, 31);
+ this.maskedTextBox2.TabIndex = 3;
+ this.maskedTextBox2.Text = "366";
+ this.toolTip1.SetToolTip(this.maskedTextBox2, "Enter your cards max power limit");
+ this.maskedTextBox2.TextChanged += new System.EventHandler(this.maskedTextBox2_TextChanged);
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(375, 40);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(279, 25);
+ this.label2.TabIndex = 2;
+ this.label2.Text = "Cards Max Power Limit (W):";
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(6, 40);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(292, 25);
+ this.label1.TabIndex = 1;
+ this.label1.Text = "Cards Stock Power Limit (W):";
+ //
+ // groupBox2
+ //
+ this.groupBox2.Controls.Add(this.label13);
+ this.groupBox2.Controls.Add(this.label12);
+ this.groupBox2.Controls.Add(this.label11);
+ this.groupBox2.Controls.Add(this.label10);
+ this.groupBox2.Controls.Add(this.label9);
+ this.groupBox2.Location = new System.Drawing.Point(12, 339);
+ this.groupBox2.Name = "groupBox2";
+ this.groupBox2.Size = new System.Drawing.Size(713, 245);
+ this.groupBox2.TabIndex = 2;
+ this.groupBox2.TabStop = false;
+ this.groupBox2.Text = "Maths";
+ //
+ // label13
+ //
+ this.label13.AutoSize = true;
+ this.label13.Location = new System.Drawing.Point(11, 194);
+ this.label13.Name = "label13";
+ this.label13.Size = new System.Drawing.Size(84, 25);
+ this.label13.TabIndex = 4;
+ this.label13.Text = " ";
+ //
+ // label12
+ //
+ this.label12.AutoSize = true;
+ this.label12.Location = new System.Drawing.Point(11, 154);
+ this.label12.Name = "label12";
+ this.label12.Size = new System.Drawing.Size(84, 25);
+ this.label12.TabIndex = 3;
+ this.label12.Text = " ";
+ //
+ // label11
+ //
+ this.label11.AutoSize = true;
+ this.label11.Location = new System.Drawing.Point(11, 107);
+ this.label11.Name = "label11";
+ this.label11.Size = new System.Drawing.Size(102, 25);
+ this.label11.TabIndex = 2;
+ this.label11.Text = " ";
+ //
+ // label10
+ //
+ this.label10.AutoSize = true;
+ this.label10.Location = new System.Drawing.Point(11, 72);
+ this.label10.Name = "label10";
+ this.label10.Size = new System.Drawing.Size(66, 25);
+ this.label10.TabIndex = 1;
+ this.label10.Text = " ";
+ //
+ // label9
+ //
+ this.label9.AutoSize = true;
+ this.label9.Location = new System.Drawing.Point(11, 37);
+ this.label9.Name = "label9";
+ this.label9.Size = new System.Drawing.Size(96, 25);
+ this.label9.TabIndex = 0;
+ this.label9.Text = " ";
+ //
+ // checkBox1
+ //
+ this.checkBox1.AutoSize = true;
+ this.checkBox1.Location = new System.Drawing.Point(163, 166);
+ this.checkBox1.Name = "checkBox1";
+ this.checkBox1.Size = new System.Drawing.Size(135, 29);
+ this.checkBox1.TabIndex = 12;
+ this.checkBox1.Text = "Replaced";
+ this.toolTip1.SetToolTip(this.checkBox1, "Replacing the shunt instead of stacking them.");
+ this.checkBox1.UseVisualStyleBackColor = true;
+ this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged);
+ //
+ // Form1
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 25F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(740, 602);
+ this.Controls.Add(this.groupBox2);
+ this.Controls.Add(this.groupBox1);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "Form1";
+ this.Text = "ShuntMod Calculator by bmgjet";
+ this.groupBox1.ResumeLayout(false);
+ this.groupBox1.PerformLayout();
+ this.groupBox2.ResumeLayout(false);
+ this.groupBox2.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.MaskedTextBox maskedTextBox1;
+ private System.Windows.Forms.GroupBox groupBox1;
+ private System.Windows.Forms.Label label8;
+ private System.Windows.Forms.Label label7;
+ private System.Windows.Forms.Label label6;
+ private System.Windows.Forms.Label label5;
+ private System.Windows.Forms.MaskedTextBox maskedTextBox4;
+ private System.Windows.Forms.Label label4;
+ private System.Windows.Forms.MaskedTextBox maskedTextBox3;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.MaskedTextBox maskedTextBox2;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.GroupBox groupBox2;
+ private System.Windows.Forms.Label label9;
+ private System.Windows.Forms.Label label10;
+ private System.Windows.Forms.Label label11;
+ private System.Windows.Forms.Label label13;
+ private System.Windows.Forms.Label label12;
+ private System.Windows.Forms.CheckBox checkBox1;
+ private System.Windows.Forms.ToolTip toolTip1;
+ }
+}
+
diff --git a/ShuntCalculator/Form1.cs b/ShuntCalculator/Form1.cs
new file mode 100644
index 0000000..6122927
--- /dev/null
+++ b/ShuntCalculator/Form1.cs
@@ -0,0 +1,89 @@
+using System;
+using System.Windows.Forms;
+
+namespace ShuntCalculator
+{
+ public partial class Form1 : Form
+ {
+ public Form1()
+ {
+ InitializeComponent();
+ }
+
+ private void maskedTextBox1_TextChanged(object sender, EventArgs e)
+ {
+ Setdefaultlimiter();
+ }
+
+
+ private void Setdefaultlimiter()
+ {
+ try
+ {
+ float defpl = float.Parse(maskedTextBox1.Text);
+ float maxpl = float.Parse(maskedTextBox2.Text);
+ float defaulshunt = float.Parse(maskedTextBox3.Text);
+ float newshunt = float.Parse(maskedTextBox4.Text);
+
+ float newrestance = (defaulshunt * newshunt) / (defaulshunt + newshunt);
+ float sensevoltage1 = (defpl / 12f) * defaulshunt;
+ float sensevoltage2 = (maxpl / 12f) * defaulshunt;
+ if (checkBox1.Checked)
+ {
+ newrestance = newshunt;
+ }
+ Double dc = Math.Round(newrestance, 2);
+ label9.Text = "New Shunt Restance = " + dc.ToString() + "MΩ";
+
+
+ label10.Text = defpl.ToString() + "W = " + Math.Round(sensevoltage1, 2).ToString() + "mv Sensor voltage";
+
+ float NewAmps1 = sensevoltage1 / newrestance;
+ float NewAmps2 = sensevoltage2 / newrestance;
+
+ double newdefpl = Math.Round(NewAmps1 * 12, 2);
+ double newmaxpl = Math.Round(NewAmps2 * 12, 2);
+
+
+ label11.Text = Math.Round(sensevoltage1, 2).ToString() + "mv now = " + Math.Round(NewAmps1, 2).ToString() + "Amp with " + dc.ToString() + "MΩ";
+ label7.Text = newdefpl.ToString() + "W";
+ label8.Text = newmaxpl.ToString() + "W";
+
+ label12.Text = "2 Plug: Slot=" + Math.Round(0.205 * newdefpl, 1).ToString() + "W Plug1=" + Math.Round(0.395 * newdefpl, 1).ToString() + "W Plug2=" + Math.Round(0.395 * newdefpl, 1).ToString() + "w";
+ label13.Text = "3 Plug: Slot=" + Math.Round(0.19 * newdefpl, 1).ToString() + "W Plug1=" + Math.Round(0.27 * newdefpl, 1).ToString() + "W Plug2=" + Math.Round(0.27 * newdefpl, 1).ToString() + "W Plug3=" + Math.Round(0.27 * newdefpl, 1).ToString() + "W";
+ }
+ catch
+ {
+
+ }
+ }
+
+
+ private void maskedTextBox3_TextChanged(object sender, EventArgs e)
+ {
+ Setdefaultlimiter();
+ }
+
+ private void maskedTextBox2_TextChanged(object sender, EventArgs e)
+ {
+ Setdefaultlimiter();
+ }
+
+ private void maskedTextBox4_TextChanged(object sender, EventArgs e)
+ {
+ Setdefaultlimiter();
+ }
+
+ private void checkBox1_CheckedChanged(object sender, EventArgs e)
+ {
+ if (checkBox1.Checked)
+ {
+ label4.Text = "Replaced With";
+ }
+ else
+ {
+ label4.Text = "Added Shunt";
+ }
+ }
+ }
+}
diff --git a/ShuntCalculator/Form1.resx b/ShuntCalculator/Form1.resx
new file mode 100644
index 0000000..01e462e
--- /dev/null
+++ b/ShuntCalculator/Form1.resx
@@ -0,0 +1,200 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+
+ AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAIcdAACHHQAAAAAAAAAA
+ AAD+/v5x/v7+cf7+/nH+/v5x/v7+cf7+/nH+/v5x/v7+cf7+/nH+/v5x/v7+cf7+/nH+/v5x/v7+cf7+
+ /nH+/v5x/v7+cf7+/nH+/v5x/v7+cf7+/nH+/v5x/v7+cf7+/nH+/v5x/v7+cf7+/nH+/v5x/v7+cf7+
+ /nH+/v5x////cf7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+
+ /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+
+ /v/+/v7//v7+//7+/v/+/v7//v7+///////+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+
+ /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v///////v7+//7+/v/+/v7//v7+//7+
+ /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7///////7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+
+ /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//f39/+/v7//4+Pj///////7+
+ /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v///////v7+//7+/v/+/v7//v7+//7+
+ /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//3+/v/n6Oj/vr+//8LC
+ wf/v7+////////7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+///////+/v7//v7+//7+
+ /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v//////5+fo/8bI
+ yf+4ubn/pKSk/7Ozs//h4eH//f39//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7///////7+
+ /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//////9fX
+ 1/+oqar/wsXG/7m6uv+kpKT/oqKi/6mpqf/Q0ND/+Pj4///////+/v7//v7+//7+/v/+/v7//v7+//7+
+ /v///////v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+////
+ ///V1dX/Z2dn/4iJiv/GyMn/ysvL/7Gxsf+jo6P/o6Oj/6SkpP+/v7//7u7u///////+/v7//v7+//7+
+ /v/+/v7//v7+///////+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+
+ /v//////0dHR/2VlZf9GRkb/jIyN/9LT0//Y2Nj/1dXV/7y8vP+mpqb/o6Oj/6Kiov+xsbH/39/f//39
+ /f///////v7+//7+/v/+/v7///////7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+
+ /v/+/v7//////87Ozv9hYWH/R0dH/0dHR/9iYmL/rK2t/9DQ0P/V1dX/1tbW/8bGxv+srKz/o6Oj/6Ki
+ ov+np6f/zc3N//f39////////v7+//7+/v///////v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+
+ /v/+/v7//v7+//7+/v/IyMj/Xl5e/0ZGRv9ISEj/RERE/0BAQP9MTEz/ioqK/8PDw//S0tL/1dXV/8/P
+ z/+1tbX/pKSk/6Kiov+jo6P/u7u7/+zs7P///////v7+///////+/v7//v7+//7+/v/+/v7//v7+//7+
+ /v/+/v7//v7+//7+/v/+/v7/xMTE/1paWv9FRUX/R0dH/0RERP9CQkL/QkJC/0FBQf9BQUH/Z2dn/6ys
+ rP/Nzc3/09PT/9PT0/+/v7//qKio/6Kiov+hoaH/ra2t/93d3f/9/f3///////7+/v/+/v7//v7+//7+
+ /v/+/v7//v7+//7+/v/+/v7//v7+/8DAwP9XV1f/RUVF/0ZGRv9DQ0P/QkJC/0JCQv9BQUH/QkJC/0JC
+ Qv8/Pz//Tk5O/4yMjP/Dw8P/0NDQ/9PT0//Kysr/sLCw/6Kiov+fn5//r6+v//b29v///////v7+//7+
+ /v/+/v7//v7+//7+/v/+/v7//v7+//39/f+8vLz/VVVV/0RERP9FRUX/QkJC/0JCQv9CQkL/QkJC/0JC
+ Qv9CQkL/QkJC/0JCQv9BQUH/QUFB/2tra/+vr6//zc3N/9LS0v/Q0ND/urq6/6Ojo/+pqan/8fHx////
+ ///+/v7//v7+//7+/v/+/v7//v7+//7+/v/8/Pz/tbW1/1FRUf9DQ0P/RERE/0JCQv9BQUH/QkJC/0JC
+ Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/Pz8//1BQUP+RkZH/xcXF/9DQ0P/S0tL/xMTE/7Gx
+ sf/u7u7///////7+/v/+/v7//v7+//7+/v//////+/v7/7Gxsf9OTk7/Q0ND/0NDQ/9CQkL/QUFB/0FB
+ Qf9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9DQ0P/QUFB/0NDQ/9wcHD/s7Oz/8/P
+ z//U1NT/29vb//f39////////v7+//7+/v/+/v7///////v7+/+rq6v/TExM/0JCQv9CQkL/QUFB/0BA
+ QP9BQUH/QUFB/0FBQf9BQUH/QkJC/0JCQv9CQkL/QkJC/0JCQv9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0BA
+ QP9UVFT/mpqa/+Hh4f/6+vr////////////+/v7//v7+///////5+fn/pqam/0pKSv9BQUH/QkJC/0BA
+ QP9AQED/QEBA/0BAQP9BQUH/QUFB/0FBQf9CQkL/QkJC/0JCQv9CQkL/QkJC/0NDQ/9DQ0P/Q0ND/0ND
+ Q/9DQ0P/QkJC/0JCQv+IiIj/9vb2///////+/v7///////7+/v//////+Pj4/6CgoP9HR0f/QUFB/0FB
+ Qf9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QUFB/0JCQv9CQkL/QkJC/0JCQv9DQ0P/Q0ND/0ND
+ Q/9DQ0P/Q0ND/0FBQf9QUFD/pKSk//Pz8////////v7+//7+/v////////////Hx8f+ZmZn/RUVF/z8/
+ P/9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9BQUH/QkJC/0JCQv9CQkL/QkJC/0ND
+ Q/9DQ0P/Q0ND/0NDQ/9BQUH/Z2dn/8jIyP/9/f3///////7+/v/+/v7//v7+///////29vb/tLS0/0ZG
+ Rv8/Pz//QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0FBQf9CQkL/QkJC/0JC
+ Qv9CQkL/Q0ND/0NDQ/9BQUH/R0dH/4eHh//l5eX///////7+/v/+/v7//v7+//7+/v/+/v7//////9zc
+ 3P+enp7/Q0ND/z8/P/9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QUFB/0JC
+ Qv9CQkL/QkJC/0NDQ/9DQ0P/QUFB/1VVVf+urq7/9/f3///////+/v7//v7+//7+/v/+/v7//v7+//7+
+ /v//////1dXV/5eXl/8/Pz//Pz8//0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP9AQED/QEBA/0BA
+ QP9BQUH/QkJC/0JCQv9CQkL/QkJC/0JCQv9ubm7/0dHR//7+/v///////v7+//7+/v/+/v7//v7+//7+
+ /v/+/v7//v7+///////W1tb/wcHB/35+fv9NTU3/Pj4+/z8/P/9AQED/QEBA/0BAQP9AQED/QEBA/0BA
+ QP9AQED/QEBA/0FBQf9CQkL/QkJC/0BAQP9JSUn/kZGR/+rq6v///////v7+//7+/v/+/v7//v7+//7+
+ /v/+/v7//v7+//7+/v/+/v7///////Hx8f/m5ub/2NjY/7S0tP97e3v/TU1N/z4+Pv8/Pz//QEBA/0BA
+ QP9AQED/QEBA/0BAQP9BQUH/QUFB/0JCQv9AQED/Wlpa/7e3t//5+fn///////7+/v/+/v7//v7+//7+
+ /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v////////////z8/P/y8vL/4+Pj/9PT0/+ysrL/enp6/0xM
+ TP8+Pj7/Pz8//0BAQP9AQED/QEBA/0FBQf9BQUH/QkJC/3Z2dv/Y2Nj///////7+/v/+/v7//v7+//7+
+ /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+///////+/v7//v7+//7+/v/8/Pz/8vLy/+Li
+ 4v/R0dH/sbGx/3t7e/9NTU3/Pz8//0BAQP9AQED/Pz8//0xMTP+bm5v/7+/v///////+/v7//v7+//7+
+ /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7///////7+/v/+/v7//v7+//7+
+ /v///////Pz8//Ly8v/i4uL/0tLS/7Kysv97e3v/TU1N/z4+Pv9fX1//wMDA//v7+////////v7+//7+
+ /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v///////v7+//7+
+ /v/+/v7//v7+//7+/v/+/v7///////39/f/z8/P/4+Pj/9PT0/+4uLj/o6Oj/9/f3////////v7+//7+
+ /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+////
+ ///+/v74/v7++P7+/vj+/v74/v7++P7+/vj+/v74/v7++P////j9/f349PT0+Pb29vj////4////+P7+
+ /vj+/v74/v7++P7+/vj+/v74/v7++P7+/vj+/v74/v7++P7+/vj+/v74/v7++P7+/vj+/v74/v7++P7+
+ /vj+/v74////+P7+/lP+/v5T/v7+U/7+/lP+/v5T/v7+U/7+/lP+/v5T/v7+U/7+/lP///9T////U/7+
+ /lP+/v5T/v7+U/7+/lP+/v5T/v7+U/7+/lP+/v5T/v7+U/7+/lP+/v5T/v7+U/7+/lP+/v5T/v7+U/7+
+ /lP+/v5T/v7+U/7+/lP///9TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/ShuntCalculator/Program.cs b/ShuntCalculator/Program.cs
new file mode 100644
index 0000000..71ad4ec
--- /dev/null
+++ b/ShuntCalculator/Program.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace ShuntCalculator
+{
+ static class Program
+ {
+ ///
+ /// The main entry point for the application.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new Form1());
+ }
+ }
+}
diff --git a/ShuntCalculator/Properties/AssemblyInfo.cs b/ShuntCalculator/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..de504e3
--- /dev/null
+++ b/ShuntCalculator/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+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("ShuntCalculator")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ShuntCalculator")]
+[assembly: AssemblyCopyright("Copyright © 2020")]
+[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("91d3dc06-e7e4-47ab-9897-85aeedddff72")]
+
+// 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.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/ShuntCalculator/Properties/Resources.Designer.cs b/ShuntCalculator/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..91cafb2
--- /dev/null
+++ b/ShuntCalculator/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// 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 ShuntCalculator.Properties
+{
+
+
+ ///
+ /// 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 ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ShuntCalculator.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;
+ }
+ }
+ }
+}
diff --git a/ShuntCalculator/Properties/Resources.resx b/ShuntCalculator/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/ShuntCalculator/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/ShuntCalculator/Properties/Settings.Designer.cs b/ShuntCalculator/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..2fe92d5
--- /dev/null
+++ b/ShuntCalculator/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// 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 ShuntCalculator.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.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;
+ }
+ }
+ }
+}
diff --git a/ShuntCalculator/Properties/Settings.settings b/ShuntCalculator/Properties/Settings.settings
new file mode 100644
index 0000000..3964565
--- /dev/null
+++ b/ShuntCalculator/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/ShuntCalculator/ShuntCalculator.csproj b/ShuntCalculator/ShuntCalculator.csproj
new file mode 100644
index 0000000..24533e6
--- /dev/null
+++ b/ShuntCalculator/ShuntCalculator.csproj
@@ -0,0 +1,89 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {91D3DC06-E7E4-47AB-9897-85AEEDDDFF72}
+ WinExe
+ ShuntCalculator
+ ShuntCalculator
+ v4.7.2
+ 512
+ true
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+ icon_CZI_icon.ico
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ Form1.cs
+
+
+
+
+ Form1.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ShuntCalculator/icon_CZI_icon.ico b/ShuntCalculator/icon_CZI_icon.ico
new file mode 100644
index 0000000..161035c
Binary files /dev/null and b/ShuntCalculator/icon_CZI_icon.ico differ