From 38181c3bc1f73a958ed8a86406920fe16a58c115 Mon Sep 17 00:00:00 2001
From: ​
Date: Thu, 1 Jan 1970 00:00:00 +0000
Subject: future value 3

---
 .../.vs/FutureValue/DesignTimeBuild/.dtbcache.v2   | Bin 0 -> 73611 bytes
 .../68b92ec2-0a51-4792-97e2-07a714f7ca30.vsidx     | Bin 0 -> 27078 bytes
 future_value3/.vs/FutureValue/v17/.futdcache.v2    | Bin 0 -> 161 bytes
 future_value3/.vs/FutureValue/v17/.suo             | Bin 0 -> 26112 bytes
 .../ProjectEvaluation/futurevalue.metadata.v7.bin  | Bin 0 -> 171924 bytes
 .../ProjectEvaluation/futurevalue.projects.v7.bin  | Bin 0 -> 98236 bytes
 future_value3/FutureValue.sln                      |  25 +++
 future_value3/FutureValue/FutureValue.csproj       |   9 +
 future_value3/FutureValue/FutureValue.csproj.user  |   8 +
 future_value3/FutureValue/Program.cs               |  23 +++
 .../bin/Debug/netcoreapp3.1/FutureValue.deps.json  |  23 +++
 .../bin/Debug/netcoreapp3.1/FutureValue.dll        | Bin 0 -> 11776 bytes
 .../bin/Debug/netcoreapp3.1/FutureValue.exe        | Bin 0 -> 158208 bytes
 .../bin/Debug/netcoreapp3.1/FutureValue.pdb        | Bin 0 -> 13284 bytes
 .../FutureValue.runtimeconfig.dev.json             |   8 +
 .../netcoreapp3.1/FutureValue.runtimeconfig.json   |   9 +
 .../FutureValue/frmFutureValue.Designer.cs         | 181 +++++++++++++++++++++
 future_value3/FutureValue/frmFutureValue.cs        | 139 ++++++++++++++++
 future_value3/FutureValue/frmFutureValue.resx      |  60 +++++++
 .../.NETCoreApp,Version=v3.1.AssemblyAttributes.cs |   4 +
 .../netcoreapp3.1/FutureValue.AssemblyInfo.cs      |  23 +++
 .../FutureValue.AssemblyInfoInputs.cache           |   1 +
 ...Value.GeneratedMSBuildEditorConfig.editorconfig |  11 ++
 .../Debug/netcoreapp3.1/FutureValue.assets.cache   | Bin 0 -> 151 bytes
 .../FutureValue.csproj.BuildWithSkipAnalyzers      |   0
 .../FutureValue.csproj.CoreCompileInputs.cache     |   1 +
 .../FutureValue.csproj.FileListAbsolute.txt        |  15 ++
 .../FutureValue.csproj.GenerateResource.cache      | Bin 0 -> 72 bytes
 .../obj/Debug/netcoreapp3.1/FutureValue.dll        | Bin 0 -> 11776 bytes
 .../FutureValue.frmFutureValue.resources           | Bin 0 -> 180 bytes
 .../FutureValue.genruntimeconfig.cache             |   1 +
 .../obj/Debug/netcoreapp3.1/FutureValue.pdb        | Bin 0 -> 13284 bytes
 .../obj/Debug/netcoreapp3.1/apphost.exe            | Bin 0 -> 158208 bytes
 .../obj/FutureValue.csproj.nuget.dgspec.json       |  66 ++++++++
 .../obj/FutureValue.csproj.nuget.g.props           |  15 ++
 .../obj/FutureValue.csproj.nuget.g.targets         |   2 +
 future_value3/FutureValue/obj/project.assets.json  |  71 ++++++++
 future_value3/FutureValue/obj/project.nuget.cache  |   8 +
 38 files changed, 703 insertions(+)
 create mode 100644 future_value3/.vs/FutureValue/DesignTimeBuild/.dtbcache.v2
 create mode 100644 future_value3/.vs/FutureValue/FileContentIndex/68b92ec2-0a51-4792-97e2-07a714f7ca30.vsidx
 create mode 100644 future_value3/.vs/FutureValue/v17/.futdcache.v2
 create mode 100644 future_value3/.vs/FutureValue/v17/.suo
 create mode 100644 future_value3/.vs/ProjectEvaluation/futurevalue.metadata.v7.bin
 create mode 100644 future_value3/.vs/ProjectEvaluation/futurevalue.projects.v7.bin
 create mode 100644 future_value3/FutureValue.sln
 create mode 100644 future_value3/FutureValue/FutureValue.csproj
 create mode 100644 future_value3/FutureValue/FutureValue.csproj.user
 create mode 100644 future_value3/FutureValue/Program.cs
 create mode 100644 future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.deps.json
 create mode 100644 future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.dll
 create mode 100644 future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.exe
 create mode 100644 future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.pdb
 create mode 100644 future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.runtimeconfig.dev.json
 create mode 100644 future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.runtimeconfig.json
 create mode 100644 future_value3/FutureValue/frmFutureValue.Designer.cs
 create mode 100644 future_value3/FutureValue/frmFutureValue.cs
 create mode 100644 future_value3/FutureValue/frmFutureValue.resx
 create mode 100644 future_value3/FutureValue/obj/Debug/netcoreapp3.1/.NETCoreApp,Version=v3.1.AssemblyAttributes.cs
 create mode 100644 future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.AssemblyInfo.cs
 create mode 100644 future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.AssemblyInfoInputs.cache
 create mode 100644 future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.GeneratedMSBuildEditorConfig.editorconfig
 create mode 100644 future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.assets.cache
 create mode 100644 future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.csproj.BuildWithSkipAnalyzers
 create mode 100644 future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.csproj.CoreCompileInputs.cache
 create mode 100644 future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.csproj.FileListAbsolute.txt
 create mode 100644 future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.csproj.GenerateResource.cache
 create mode 100644 future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.dll
 create mode 100644 future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.frmFutureValue.resources
 create mode 100644 future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.genruntimeconfig.cache
 create mode 100644 future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.pdb
 create mode 100644 future_value3/FutureValue/obj/Debug/netcoreapp3.1/apphost.exe
 create mode 100644 future_value3/FutureValue/obj/FutureValue.csproj.nuget.dgspec.json
 create mode 100644 future_value3/FutureValue/obj/FutureValue.csproj.nuget.g.props
 create mode 100644 future_value3/FutureValue/obj/FutureValue.csproj.nuget.g.targets
 create mode 100644 future_value3/FutureValue/obj/project.assets.json
 create mode 100644 future_value3/FutureValue/obj/project.nuget.cache

diff --git a/future_value3/.vs/FutureValue/DesignTimeBuild/.dtbcache.v2 b/future_value3/.vs/FutureValue/DesignTimeBuild/.dtbcache.v2
new file mode 100644
index 0000000..9926219
Binary files /dev/null and b/future_value3/.vs/FutureValue/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/future_value3/.vs/FutureValue/FileContentIndex/68b92ec2-0a51-4792-97e2-07a714f7ca30.vsidx b/future_value3/.vs/FutureValue/FileContentIndex/68b92ec2-0a51-4792-97e2-07a714f7ca30.vsidx
new file mode 100644
index 0000000..1f9579c
Binary files /dev/null and b/future_value3/.vs/FutureValue/FileContentIndex/68b92ec2-0a51-4792-97e2-07a714f7ca30.vsidx differ
diff --git a/future_value3/.vs/FutureValue/v17/.futdcache.v2 b/future_value3/.vs/FutureValue/v17/.futdcache.v2
new file mode 100644
index 0000000..de179f0
Binary files /dev/null and b/future_value3/.vs/FutureValue/v17/.futdcache.v2 differ
diff --git a/future_value3/.vs/FutureValue/v17/.suo b/future_value3/.vs/FutureValue/v17/.suo
new file mode 100644
index 0000000..22cbf67
Binary files /dev/null and b/future_value3/.vs/FutureValue/v17/.suo differ
diff --git a/future_value3/.vs/ProjectEvaluation/futurevalue.metadata.v7.bin b/future_value3/.vs/ProjectEvaluation/futurevalue.metadata.v7.bin
new file mode 100644
index 0000000..4bbbbc9
Binary files /dev/null and b/future_value3/.vs/ProjectEvaluation/futurevalue.metadata.v7.bin differ
diff --git a/future_value3/.vs/ProjectEvaluation/futurevalue.projects.v7.bin b/future_value3/.vs/ProjectEvaluation/futurevalue.projects.v7.bin
new file mode 100644
index 0000000..8829482
Binary files /dev/null and b/future_value3/.vs/ProjectEvaluation/futurevalue.projects.v7.bin differ
diff --git a/future_value3/FutureValue.sln b/future_value3/FutureValue.sln
new file mode 100644
index 0000000..c0beb94
--- /dev/null
+++ b/future_value3/FutureValue.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30413.136
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FutureValue", "FutureValue\FutureValue.csproj", "{4B6E629F-0FBB-4E6F-A384-B8BCCA88D161}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{4B6E629F-0FBB-4E6F-A384-B8BCCA88D161}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{4B6E629F-0FBB-4E6F-A384-B8BCCA88D161}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{4B6E629F-0FBB-4E6F-A384-B8BCCA88D161}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{4B6E629F-0FBB-4E6F-A384-B8BCCA88D161}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {4B5326B3-35E5-4668-9374-5B2F73FCA065}
+	EndGlobalSection
+EndGlobal
diff --git a/future_value3/FutureValue/FutureValue.csproj b/future_value3/FutureValue/FutureValue.csproj
new file mode 100644
index 0000000..7b05c62
--- /dev/null
+++ b/future_value3/FutureValue/FutureValue.csproj
@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
+
+  <PropertyGroup>
+    <OutputType>WinExe</OutputType>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
+    <UseWindowsForms>true</UseWindowsForms>
+  </PropertyGroup>
+
+</Project>
\ No newline at end of file
diff --git a/future_value3/FutureValue/FutureValue.csproj.user b/future_value3/FutureValue/FutureValue.csproj.user
new file mode 100644
index 0000000..5bc7468
--- /dev/null
+++ b/future_value3/FutureValue/FutureValue.csproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Compile Update="frmFutureValue.cs">
+      <SubType>Form</SubType>
+    </Compile>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/future_value3/FutureValue/Program.cs b/future_value3/FutureValue/Program.cs
new file mode 100644
index 0000000..79fd42c
--- /dev/null
+++ b/future_value3/FutureValue/Program.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace FutureValue
+{
+    static class Program
+    {
+        /// <summary>
+        ///  The main entry point for the application.
+        /// </summary>
+        [STAThread]
+        static void Main()
+        {
+            Application.SetHighDpiMode(HighDpiMode.SystemAware);
+            Application.EnableVisualStyles();
+            Application.SetCompatibleTextRenderingDefault(false);
+            Application.Run(new frmFutureValue());
+        }
+    }
+}
diff --git a/future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.deps.json b/future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.deps.json
new file mode 100644
index 0000000..3177387
--- /dev/null
+++ b/future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.deps.json
@@ -0,0 +1,23 @@
+{
+  "runtimeTarget": {
+    "name": ".NETCoreApp,Version=v3.1",
+    "signature": ""
+  },
+  "compilationOptions": {},
+  "targets": {
+    ".NETCoreApp,Version=v3.1": {
+      "FutureValue/1.0.0": {
+        "runtime": {
+          "FutureValue.dll": {}
+        }
+      }
+    }
+  },
+  "libraries": {
+    "FutureValue/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    }
+  }
+}
\ No newline at end of file
diff --git a/future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.dll b/future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.dll
new file mode 100644
index 0000000..572aa46
Binary files /dev/null and b/future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.dll differ
diff --git a/future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.exe b/future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.exe
new file mode 100644
index 0000000..1382b35
Binary files /dev/null and b/future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.exe differ
diff --git a/future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.pdb b/future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.pdb
new file mode 100644
index 0000000..a5d8b8a
Binary files /dev/null and b/future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.pdb differ
diff --git a/future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.runtimeconfig.dev.json b/future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.runtimeconfig.dev.json
new file mode 100644
index 0000000..214bf78
--- /dev/null
+++ b/future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.runtimeconfig.dev.json
@@ -0,0 +1,8 @@
+{
+  "runtimeOptions": {
+    "additionalProbingPaths": [
+      "C:\\Users\\User\\.dotnet\\store\\|arch|\\|tfm|",
+      "C:\\Users\\User\\.nuget\\packages"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.runtimeconfig.json b/future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.runtimeconfig.json
new file mode 100644
index 0000000..9b3a644
--- /dev/null
+++ b/future_value3/FutureValue/bin/Debug/netcoreapp3.1/FutureValue.runtimeconfig.json
@@ -0,0 +1,9 @@
+{
+  "runtimeOptions": {
+    "tfm": "netcoreapp3.1",
+    "framework": {
+      "name": "Microsoft.WindowsDesktop.App",
+      "version": "3.1.0"
+    }
+  }
+}
\ No newline at end of file
diff --git a/future_value3/FutureValue/frmFutureValue.Designer.cs b/future_value3/FutureValue/frmFutureValue.Designer.cs
new file mode 100644
index 0000000..266c0d6
--- /dev/null
+++ b/future_value3/FutureValue/frmFutureValue.Designer.cs
@@ -0,0 +1,181 @@
+namespace FutureValue
+{
+    partial class frmFutureValue
+    {
+        /// <summary>
+        ///  Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        ///  Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        ///  Required method for Designer support - do not modify
+        ///  the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.btnExit = new System.Windows.Forms.Button();
+            this.btnCalculate = new System.Windows.Forms.Button();
+            this.txtYears = new System.Windows.Forms.TextBox();
+            this.txtInterestRate = new System.Windows.Forms.TextBox();
+            this.txtMonthlyInvestment = new System.Windows.Forms.TextBox();
+            this.label4 = new System.Windows.Forms.Label();
+            this.label3 = new System.Windows.Forms.Label();
+            this.label2 = new System.Windows.Forms.Label();
+            this.label1 = new System.Windows.Forms.Label();
+            this.txtFutureValue = new System.Windows.Forms.TextBox();
+            this.SuspendLayout();
+            // 
+            // btnExit
+            // 
+            this.btnExit.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+            this.btnExit.Location = new System.Drawing.Point(164, 145);
+            this.btnExit.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
+            this.btnExit.Name = "btnExit";
+            this.btnExit.Size = new System.Drawing.Size(88, 27);
+            this.btnExit.TabIndex = 19;
+            this.btnExit.Text = "E&xit";
+            this.btnExit.Click += new System.EventHandler(this.btnExit_Click);
+            // 
+            // btnCalculate
+            // 
+            this.btnCalculate.Location = new System.Drawing.Point(63, 145);
+            this.btnCalculate.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
+            this.btnCalculate.Name = "btnCalculate";
+            this.btnCalculate.Size = new System.Drawing.Size(88, 27);
+            this.btnCalculate.TabIndex = 18;
+            this.btnCalculate.Text = "&Calculate";
+            this.btnCalculate.Click += new System.EventHandler(this.btnCalculate_Click);
+            // 
+            // txtYears
+            // 
+            this.txtYears.Location = new System.Drawing.Point(154, 74);
+            this.txtYears.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
+            this.txtYears.Name = "txtYears";
+            this.txtYears.Size = new System.Drawing.Size(97, 23);
+            this.txtYears.TabIndex = 17;
+            this.txtYears.Tag = "Number of years";
+            // 
+            // txtInterestRate
+            // 
+            this.txtInterestRate.Location = new System.Drawing.Point(154, 43);
+            this.txtInterestRate.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
+            this.txtInterestRate.Name = "txtInterestRate";
+            this.txtInterestRate.Size = new System.Drawing.Size(97, 23);
+            this.txtInterestRate.TabIndex = 16;
+            this.txtInterestRate.Tag = "Yearly interest rate";
+            // 
+            // txtMonthlyInvestment
+            // 
+            this.txtMonthlyInvestment.Location = new System.Drawing.Point(154, 10);
+            this.txtMonthlyInvestment.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
+            this.txtMonthlyInvestment.Name = "txtMonthlyInvestment";
+            this.txtMonthlyInvestment.Size = new System.Drawing.Size(97, 23);
+            this.txtMonthlyInvestment.TabIndex = 15;
+            this.txtMonthlyInvestment.Tag = "Monthly investment";
+            // 
+            // label4
+            // 
+            this.label4.Location = new System.Drawing.Point(14, 106);
+            this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label4.Name = "label4";
+            this.label4.Size = new System.Drawing.Size(133, 23);
+            this.label4.TabIndex = 13;
+            this.label4.Text = "Future Value:";
+            this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            // 
+            // label3
+            // 
+            this.label3.Location = new System.Drawing.Point(14, 74);
+            this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label3.Name = "label3";
+            this.label3.Size = new System.Drawing.Size(133, 23);
+            this.label3.TabIndex = 12;
+            this.label3.Text = "Number of Years:";
+            this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            // 
+            // label2
+            // 
+            this.label2.Location = new System.Drawing.Point(14, 43);
+            this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(133, 23);
+            this.label2.TabIndex = 11;
+            this.label2.Text = "Yearly Interest Rate:";
+            this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            // 
+            // label1
+            // 
+            this.label1.Location = new System.Drawing.Point(14, 10);
+            this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(133, 23);
+            this.label1.TabIndex = 10;
+            this.label1.Text = "Monthly Investment:";
+            this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            // 
+            // txtFutureValue
+            // 
+            this.txtFutureValue.Location = new System.Drawing.Point(154, 107);
+            this.txtFutureValue.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
+            this.txtFutureValue.Name = "txtFutureValue";
+            this.txtFutureValue.ReadOnly = true;
+            this.txtFutureValue.Size = new System.Drawing.Size(97, 23);
+            this.txtFutureValue.TabIndex = 20;
+            this.txtFutureValue.TabStop = false;
+            // 
+            // frmFutureValue
+            // 
+            this.AcceptButton = this.btnCalculate;
+            this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.CancelButton = this.btnExit;
+            this.ClientSize = new System.Drawing.Size(284, 185);
+            this.Controls.Add(this.txtFutureValue);
+            this.Controls.Add(this.btnExit);
+            this.Controls.Add(this.btnCalculate);
+            this.Controls.Add(this.txtYears);
+            this.Controls.Add(this.txtInterestRate);
+            this.Controls.Add(this.txtMonthlyInvestment);
+            this.Controls.Add(this.label4);
+            this.Controls.Add(this.label3);
+            this.Controls.Add(this.label2);
+            this.Controls.Add(this.label1);
+            this.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
+            this.Name = "frmFutureValue";
+            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+            this.Text = "Future Value";
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Button btnExit;
+        private System.Windows.Forms.Button btnCalculate;
+        private System.Windows.Forms.TextBox txtYears;
+        private System.Windows.Forms.TextBox txtInterestRate;
+        private System.Windows.Forms.TextBox txtMonthlyInvestment;
+        private System.Windows.Forms.Label label4;
+        private System.Windows.Forms.Label label3;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.TextBox txtFutureValue;
+    }
+}
+
diff --git a/future_value3/FutureValue/frmFutureValue.cs b/future_value3/FutureValue/frmFutureValue.cs
new file mode 100644
index 0000000..4f5c705
--- /dev/null
+++ b/future_value3/FutureValue/frmFutureValue.cs
@@ -0,0 +1,139 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace FutureValue
+{
+	public partial class frmFutureValue : Form
+	{
+		public frmFutureValue()
+		{
+			InitializeComponent();
+		}
+
+		// DONE: Declare the rectangular array and the row index here
+		string[,] calculations = new string[10, 4];
+		int row = 0;
+
+		private void btnCalculate_Click(object sender, EventArgs e)
+		{
+			try {
+				if (IsValidData()) {
+					decimal monthlyInvestment =
+						Convert.ToDecimal(txtMonthlyInvestment.Text);
+					decimal yearlyInterestRate =
+						Convert.ToDecimal(txtInterestRate.Text);
+					int years = Convert.ToInt32(txtYears.Text);
+
+					int months = years * 12;
+					decimal interestRateMonthly = yearlyInterestRate / 12 / 100;
+
+					decimal futureValue = CalculateFutureValue(
+						monthlyInvestment, interestRateMonthly, months);
+					txtFutureValue.Text = futureValue.ToString("c");
+					txtMonthlyInvestment.Focus();
+
+					// DONE: Add the calculation to the rectangular array here
+					calculations[row, 0] = monthlyInvestment.ToString("c");
+					calculations[row, 1] = yearlyInterestRate.ToString("p");
+					calculations[row, 2] = years.ToString();
+					calculations[row, 3] = futureValue.ToString("c");
+					row++;
+				}
+			}
+			catch (Exception ex) {
+				MessageBox.Show(ex.Message + "\n\n" +
+					ex.GetType().ToString() + "\n" +
+					ex.StackTrace, "Exception");
+			}
+		}
+
+		public bool IsValidData()
+		{
+			bool success = true;
+			string errorMessage = "";
+
+			// Validate the Monthly Investment text box
+			errorMessage += IsDecimal(txtMonthlyInvestment.Text, txtMonthlyInvestment.Tag.ToString());
+			errorMessage += IsWithinRange(txtMonthlyInvestment.Text, txtMonthlyInvestment.Tag.ToString(), 1, 1000);
+
+			// Validate the Yearly Interest Rate text box
+			errorMessage += IsDecimal(txtInterestRate.Text, txtInterestRate.Tag.ToString());
+			errorMessage += IsWithinRange(txtInterestRate.Text, txtInterestRate.Tag.ToString(), 1, 20);
+
+			// Validate the Number of Years text box
+			errorMessage += IsInt32(txtYears.Text, txtYears.Tag.ToString());
+			errorMessage += IsWithinRange(txtYears.Text, txtYears.Tag.ToString(), 1, 40);
+
+			if (errorMessage != "") {
+				success = false;
+				MessageBox.Show(errorMessage, "Entry Error");
+			}
+			return success;
+		}
+
+		public static string IsPresent(string value, string name)
+		{
+			string msg = "";
+			if (value == "")
+				msg += name + " is a required field.\n";
+			return msg;
+		}
+
+		public static string IsDecimal(string value, string name)
+		{
+			string msg = "";
+			if (!Decimal.TryParse(value, out _))
+				msg += name + " must be a valid decimal value.\n";
+			return msg;
+		}
+
+		public static string IsInt32(string value, string name)
+		{
+			string msg = "";
+			if (!Int32.TryParse(value, out _))
+				msg += name + " must be a valid integer value.\n";
+			return msg;
+		}
+
+		public static string IsWithinRange(string value, string name, decimal min, decimal max)
+		{
+			string msg = "";
+			if (Decimal.TryParse(value, out decimal number))
+				if (number < min || number > max)
+					msg += name + " must be between " + min + " and " + max + ".\n";
+			return msg;
+		}
+		private decimal CalculateFutureValue(decimal monthlyInvestment,
+			decimal monthlyInterestRate, int months)
+		{
+			decimal futureValue = 0m;
+			for (int i = 0; i < months; i++)
+				futureValue = (futureValue + monthlyInvestment)
+					* (1 + monthlyInterestRate);
+			return futureValue;
+		}
+
+		private void btnExit_Click(object sender, EventArgs e)
+		{
+			// DONE: Display the rectangular array in a dialog box here
+			string msg = "Inv/Mo\tRate\tYears\tFuture Values\n";
+			if (row > 0) {
+				for (int i = 0; i < row; i++) {
+					for (int j = 0; j < 4; j++)
+						msg += calculations[i, j] + "\t";
+					msg += "\n";
+				}
+				MessageBox.Show(msg, "Future Value Calculations");
+			}
+			this.Close();
+		}
+
+	}
+}
diff --git a/future_value3/FutureValue/frmFutureValue.resx b/future_value3/FutureValue/frmFutureValue.resx
new file mode 100644
index 0000000..b5ae26c
--- /dev/null
+++ b/future_value3/FutureValue/frmFutureValue.resx
@@ -0,0 +1,60 @@
+<root>
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/future_value3/FutureValue/obj/Debug/netcoreapp3.1/.NETCoreApp,Version=v3.1.AssemblyAttributes.cs b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/.NETCoreApp,Version=v3.1.AssemblyAttributes.cs
new file mode 100644
index 0000000..3364fdf
--- /dev/null
+++ b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/.NETCoreApp,Version=v3.1.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+// <autogenerated />
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v3.1", FrameworkDisplayName = ".NET Core 3.1")]
diff --git a/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.AssemblyInfo.cs b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.AssemblyInfo.cs
new file mode 100644
index 0000000..90bed8b
--- /dev/null
+++ b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.AssemblyInfo.cs
@@ -0,0 +1,23 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     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.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("FutureValue")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
+[assembly: System.Reflection.AssemblyProductAttribute("FutureValue")]
+[assembly: System.Reflection.AssemblyTitleAttribute("FutureValue")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+
+// Generated by the MSBuild WriteCodeFragment class.
+
diff --git a/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.AssemblyInfoInputs.cache b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.AssemblyInfoInputs.cache
new file mode 100644
index 0000000..506a7b4
--- /dev/null
+++ b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.AssemblyInfoInputs.cache
@@ -0,0 +1 @@
+881bbfa418ee3ef157f3620e43978e99140781aa0a25bf03046fdc6d0a9e3984
diff --git a/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.GeneratedMSBuildEditorConfig.editorconfig b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.GeneratedMSBuildEditorConfig.editorconfig
new file mode 100644
index 0000000..59c373a
--- /dev/null
+++ b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.GeneratedMSBuildEditorConfig.editorconfig
@@ -0,0 +1,11 @@
+is_global = true
+build_property.ApplicationManifest = 
+build_property.StartupObject = 
+build_property.ApplicationDefaultFont = 
+build_property.ApplicationHighDpiMode = 
+build_property.ApplicationUseCompatibleTextRendering = 
+build_property.ApplicationVisualStyles = 
+build_property.RootNamespace = FutureValue
+build_property.ProjectDir = C:\Users\User\Documents\cs\Exercise Starts\Chapter 08\FutureValue\FutureValue\
+build_property.EnableComHosting = 
+build_property.EnableGeneratedComInterfaceComImportInterop = 
diff --git a/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.assets.cache b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.assets.cache
new file mode 100644
index 0000000..690cc7a
Binary files /dev/null and b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.assets.cache differ
diff --git a/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.csproj.BuildWithSkipAnalyzers b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.csproj.BuildWithSkipAnalyzers
new file mode 100644
index 0000000..e69de29
diff --git a/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.csproj.CoreCompileInputs.cache b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..7eb31bd
--- /dev/null
+++ b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+963dbe677cf428042611a9ed0c16bddc5625de9d6169866d37607c50bebad84c
diff --git a/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.csproj.FileListAbsolute.txt b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..8d9c3a9
--- /dev/null
+++ b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.csproj.FileListAbsolute.txt
@@ -0,0 +1,15 @@
+C:\Users\User\Documents\cs\Exercise Starts\Chapter 08\FutureValue\FutureValue\bin\Debug\netcoreapp3.1\FutureValue.exe
+C:\Users\User\Documents\cs\Exercise Starts\Chapter 08\FutureValue\FutureValue\bin\Debug\netcoreapp3.1\FutureValue.deps.json
+C:\Users\User\Documents\cs\Exercise Starts\Chapter 08\FutureValue\FutureValue\bin\Debug\netcoreapp3.1\FutureValue.runtimeconfig.json
+C:\Users\User\Documents\cs\Exercise Starts\Chapter 08\FutureValue\FutureValue\bin\Debug\netcoreapp3.1\FutureValue.runtimeconfig.dev.json
+C:\Users\User\Documents\cs\Exercise Starts\Chapter 08\FutureValue\FutureValue\bin\Debug\netcoreapp3.1\FutureValue.dll
+C:\Users\User\Documents\cs\Exercise Starts\Chapter 08\FutureValue\FutureValue\bin\Debug\netcoreapp3.1\FutureValue.pdb
+C:\Users\User\Documents\cs\Exercise Starts\Chapter 08\FutureValue\FutureValue\obj\Debug\netcoreapp3.1\FutureValue.frmFutureValue.resources
+C:\Users\User\Documents\cs\Exercise Starts\Chapter 08\FutureValue\FutureValue\obj\Debug\netcoreapp3.1\FutureValue.csproj.GenerateResource.cache
+C:\Users\User\Documents\cs\Exercise Starts\Chapter 08\FutureValue\FutureValue\obj\Debug\netcoreapp3.1\FutureValue.GeneratedMSBuildEditorConfig.editorconfig
+C:\Users\User\Documents\cs\Exercise Starts\Chapter 08\FutureValue\FutureValue\obj\Debug\netcoreapp3.1\FutureValue.AssemblyInfoInputs.cache
+C:\Users\User\Documents\cs\Exercise Starts\Chapter 08\FutureValue\FutureValue\obj\Debug\netcoreapp3.1\FutureValue.AssemblyInfo.cs
+C:\Users\User\Documents\cs\Exercise Starts\Chapter 08\FutureValue\FutureValue\obj\Debug\netcoreapp3.1\FutureValue.csproj.CoreCompileInputs.cache
+C:\Users\User\Documents\cs\Exercise Starts\Chapter 08\FutureValue\FutureValue\obj\Debug\netcoreapp3.1\FutureValue.dll
+C:\Users\User\Documents\cs\Exercise Starts\Chapter 08\FutureValue\FutureValue\obj\Debug\netcoreapp3.1\FutureValue.pdb
+C:\Users\User\Documents\cs\Exercise Starts\Chapter 08\FutureValue\FutureValue\obj\Debug\netcoreapp3.1\FutureValue.genruntimeconfig.cache
diff --git a/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.csproj.GenerateResource.cache b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.csproj.GenerateResource.cache
new file mode 100644
index 0000000..9ea1b7b
Binary files /dev/null and b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.csproj.GenerateResource.cache differ
diff --git a/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.dll b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.dll
new file mode 100644
index 0000000..572aa46
Binary files /dev/null and b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.dll differ
diff --git a/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.frmFutureValue.resources b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.frmFutureValue.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.frmFutureValue.resources differ
diff --git a/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.genruntimeconfig.cache b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.genruntimeconfig.cache
new file mode 100644
index 0000000..c949356
--- /dev/null
+++ b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.genruntimeconfig.cache
@@ -0,0 +1 @@
+d00062d276767f03a9be098ff3a8c90733abcf4ae051e0a6045ff9cad6ce9d2a
diff --git a/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.pdb b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.pdb
new file mode 100644
index 0000000..a5d8b8a
Binary files /dev/null and b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/FutureValue.pdb differ
diff --git a/future_value3/FutureValue/obj/Debug/netcoreapp3.1/apphost.exe b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/apphost.exe
new file mode 100644
index 0000000..1382b35
Binary files /dev/null and b/future_value3/FutureValue/obj/Debug/netcoreapp3.1/apphost.exe differ
diff --git a/future_value3/FutureValue/obj/FutureValue.csproj.nuget.dgspec.json b/future_value3/FutureValue/obj/FutureValue.csproj.nuget.dgspec.json
new file mode 100644
index 0000000..370332c
--- /dev/null
+++ b/future_value3/FutureValue/obj/FutureValue.csproj.nuget.dgspec.json
@@ -0,0 +1,66 @@
+{
+  "format": 1,
+  "restore": {
+    "C:\\Users\\User\\Documents\\cs\\Exercise Starts\\Chapter 08\\FutureValue\\FutureValue\\FutureValue.csproj": {}
+  },
+  "projects": {
+    "C:\\Users\\User\\Documents\\cs\\Exercise Starts\\Chapter 08\\FutureValue\\FutureValue\\FutureValue.csproj": {
+      "version": "1.0.0",
+      "restore": {
+        "projectUniqueName": "C:\\Users\\User\\Documents\\cs\\Exercise Starts\\Chapter 08\\FutureValue\\FutureValue\\FutureValue.csproj",
+        "projectName": "FutureValue",
+        "projectPath": "C:\\Users\\User\\Documents\\cs\\Exercise Starts\\Chapter 08\\FutureValue\\FutureValue\\FutureValue.csproj",
+        "packagesPath": "C:\\Users\\User\\.nuget\\packages\\",
+        "outputPath": "C:\\Users\\User\\Documents\\cs\\Exercise Starts\\Chapter 08\\FutureValue\\FutureValue\\obj\\",
+        "projectStyle": "PackageReference",
+        "configFilePaths": [
+          "C:\\Users\\User\\AppData\\Roaming\\NuGet\\NuGet.Config",
+          "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
+        ],
+        "originalTargetFrameworks": [
+          "netcoreapp3.1"
+        ],
+        "sources": {
+          "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
+          "https://api.nuget.org/v3/index.json": {}
+        },
+        "frameworks": {
+          "netcoreapp3.1": {
+            "targetAlias": "netcoreapp3.1",
+            "projectReferences": {}
+          }
+        },
+        "warningProperties": {
+          "warnAsError": [
+            "NU1605"
+          ]
+        }
+      },
+      "frameworks": {
+        "netcoreapp3.1": {
+          "targetAlias": "netcoreapp3.1",
+          "imports": [
+            "net461",
+            "net462",
+            "net47",
+            "net471",
+            "net472",
+            "net48",
+            "net481"
+          ],
+          "assetTargetFallback": true,
+          "warn": true,
+          "frameworkReferences": {
+            "Microsoft.NETCore.App": {
+              "privateAssets": "all"
+            },
+            "Microsoft.WindowsDesktop.App.WindowsForms": {
+              "privateAssets": "none"
+            }
+          },
+          "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.100\\RuntimeIdentifierGraph.json"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/future_value3/FutureValue/obj/FutureValue.csproj.nuget.g.props b/future_value3/FutureValue/obj/FutureValue.csproj.nuget.g.props
new file mode 100644
index 0000000..af28506
--- /dev/null
+++ b/future_value3/FutureValue/obj/FutureValue.csproj.nuget.g.props
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
+    <RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
+    <ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
+    <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
+    <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\User\.nuget\packages\</NuGetPackageFolders>
+    <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
+    <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.8.0</NuGetToolVersion>
+  </PropertyGroup>
+  <ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <SourceRoot Include="C:\Users\User\.nuget\packages\" />
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/future_value3/FutureValue/obj/FutureValue.csproj.nuget.g.targets b/future_value3/FutureValue/obj/FutureValue.csproj.nuget.g.targets
new file mode 100644
index 0000000..35a7576
--- /dev/null
+++ b/future_value3/FutureValue/obj/FutureValue.csproj.nuget.g.targets
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
\ No newline at end of file
diff --git a/future_value3/FutureValue/obj/project.assets.json b/future_value3/FutureValue/obj/project.assets.json
new file mode 100644
index 0000000..dec8e58
--- /dev/null
+++ b/future_value3/FutureValue/obj/project.assets.json
@@ -0,0 +1,71 @@
+{
+  "version": 3,
+  "targets": {
+    ".NETCoreApp,Version=v3.1": {}
+  },
+  "libraries": {},
+  "projectFileDependencyGroups": {
+    ".NETCoreApp,Version=v3.1": []
+  },
+  "packageFolders": {
+    "C:\\Users\\User\\.nuget\\packages\\": {}
+  },
+  "project": {
+    "version": "1.0.0",
+    "restore": {
+      "projectUniqueName": "C:\\Users\\User\\Documents\\cs\\Exercise Starts\\Chapter 08\\FutureValue\\FutureValue\\FutureValue.csproj",
+      "projectName": "FutureValue",
+      "projectPath": "C:\\Users\\User\\Documents\\cs\\Exercise Starts\\Chapter 08\\FutureValue\\FutureValue\\FutureValue.csproj",
+      "packagesPath": "C:\\Users\\User\\.nuget\\packages\\",
+      "outputPath": "C:\\Users\\User\\Documents\\cs\\Exercise Starts\\Chapter 08\\FutureValue\\FutureValue\\obj\\",
+      "projectStyle": "PackageReference",
+      "configFilePaths": [
+        "C:\\Users\\User\\AppData\\Roaming\\NuGet\\NuGet.Config",
+        "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
+      ],
+      "originalTargetFrameworks": [
+        "netcoreapp3.1"
+      ],
+      "sources": {
+        "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
+        "https://api.nuget.org/v3/index.json": {}
+      },
+      "frameworks": {
+        "netcoreapp3.1": {
+          "targetAlias": "netcoreapp3.1",
+          "projectReferences": {}
+        }
+      },
+      "warningProperties": {
+        "warnAsError": [
+          "NU1605"
+        ]
+      }
+    },
+    "frameworks": {
+      "netcoreapp3.1": {
+        "targetAlias": "netcoreapp3.1",
+        "imports": [
+          "net461",
+          "net462",
+          "net47",
+          "net471",
+          "net472",
+          "net48",
+          "net481"
+        ],
+        "assetTargetFallback": true,
+        "warn": true,
+        "frameworkReferences": {
+          "Microsoft.NETCore.App": {
+            "privateAssets": "all"
+          },
+          "Microsoft.WindowsDesktop.App.WindowsForms": {
+            "privateAssets": "none"
+          }
+        },
+        "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.100\\RuntimeIdentifierGraph.json"
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/future_value3/FutureValue/obj/project.nuget.cache b/future_value3/FutureValue/obj/project.nuget.cache
new file mode 100644
index 0000000..3e002b7
--- /dev/null
+++ b/future_value3/FutureValue/obj/project.nuget.cache
@@ -0,0 +1,8 @@
+{
+  "version": 2,
+  "dgSpecHash": "LA8uOxg/78gi8turoxCK57cTl0GC0UnL8mE9c1t6s/C+bOZpbvEL4CKL3QOEKA5s/YEn1irqGCY0UhvJtt/oTg==",
+  "success": true,
+  "projectFilePath": "C:\\Users\\User\\Documents\\cs\\Exercise Starts\\Chapter 08\\FutureValue\\FutureValue\\FutureValue.csproj",
+  "expectedPackageFiles": [],
+  "logs": []
+}
\ No newline at end of file
-- 
cgit 1.4.1