diff --git a/MatrixInviteLogger.sln b/MatrixInviteLogger.sln
new file mode 100644
index 0000000..a97dae9
--- /dev/null
+++ b/MatrixInviteLogger.sln
@@ -0,0 +1,308 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MatrixInviteLogger", "MatrixInviteLogger\MatrixInviteLogger.csproj", "{876AA01B-0F3F-4954-8C57-27A8540504EE}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "LibMatrix", "LibMatrix", "{6C4179B9-BFAA-0403-502F-9DAF28C26A6E}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ArcaneLibs", "ArcaneLibs", "{17E2FB3F-0F61-3CDC-2874-2686F1726316}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs", "LibMatrix\ArcaneLibs\ArcaneLibs\ArcaneLibs.csproj", "{F3D13E8E-EDFF-4407-9442-9963C61D9EFF}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs.Blazor.Components", "LibMatrix\ArcaneLibs\ArcaneLibs.Blazor.Components\ArcaneLibs.Blazor.Components.csproj", "{164E2865-D5CF-48CF-9036-CD70B945BE82}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs.Legacy", "LibMatrix\ArcaneLibs\ArcaneLibs.Legacy\ArcaneLibs.Legacy.csproj", "{9085E25B-2C3D-487E-9B52-304CAE2F88B8}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs.Logging", "LibMatrix\ArcaneLibs\ArcaneLibs.Logging\ArcaneLibs.Logging.csproj", "{5D0041E0-FEB3-460F-90FA-AE50173D8EE6}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs.StringNormalisation", "LibMatrix\ArcaneLibs\ArcaneLibs.StringNormalisation\ArcaneLibs.StringNormalisation.csproj", "{F98BECAE-E25F-436E-8D69-F00E83164E13}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs.Tests", "LibMatrix\ArcaneLibs\ArcaneLibs.Tests\ArcaneLibs.Tests.csproj", "{7CF6BBC9-2176-452A-A55F-A315F611923A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs.Timings", "LibMatrix\ArcaneLibs\ArcaneLibs.Timings\ArcaneLibs.Timings.csproj", "{C1F04A37-F946-4AA9-872D-A38A289F41BE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs.UsageTest", "LibMatrix\ArcaneLibs\ArcaneLibs.UsageTest\ArcaneLibs.UsageTest.csproj", "{545A47FC-6BAA-4C92-BAD1-C1ED413077BC}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix.EventTypes", "LibMatrix\LibMatrix.EventTypes\LibMatrix.EventTypes.csproj", "{59745535-3681-423D-AE8F-5C08D4671ADC}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix", "LibMatrix\LibMatrix\LibMatrix.csproj", "{6FE1B566-08DF-4BC0-AC2F-F9176AA17087}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix.Tests", "LibMatrix\Tests\LibMatrix.Tests\LibMatrix.Tests.csproj", "{F04E9976-C303-4DEA-AA8D-EEDE6DF44069}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix.DebugDataValidationApi", "LibMatrix\Utilities\LibMatrix.DebugDataValidationApi\LibMatrix.DebugDataValidationApi.csproj", "{A61BAD5E-77AC-49A0-8028-5E84EF990987}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix.DevTestBot", "LibMatrix\Utilities\LibMatrix.DevTestBot\LibMatrix.DevTestBot.csproj", "{E6F92ED7-6EE2-4D71-8962-15613CD379BC}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix.E2eeTestKit", "LibMatrix\Utilities\LibMatrix.E2eeTestKit\LibMatrix.E2eeTestKit.csproj", "{3D5DDCB4-3840-4ACE-AB17-A217F3A27F50}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix.HomeserverEmulator", "LibMatrix\Utilities\LibMatrix.HomeserverEmulator\LibMatrix.HomeserverEmulator.csproj", "{272B0A44-B985-47FF-8C93-32A77F5919C9}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix.JsonSerializerContextGenerator", "LibMatrix\Utilities\LibMatrix.JsonSerializerContextGenerator\LibMatrix.JsonSerializerContextGenerator.csproj", "{D852D486-F1DA-48A6-BBAF-43FF3396527D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix.TestDataGenerator", "LibMatrix\Utilities\LibMatrix.TestDataGenerator\LibMatrix.TestDataGenerator.csproj", "{6C5E7FB8-D6E8-4CBD-95FC-89EAB773472A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix.Utilities.Bot", "LibMatrix\Utilities\LibMatrix.Utilities.Bot\LibMatrix.Utilities.Bot.csproj", "{E526424D-ADC7-41DB-AD63-E359AC2954D9}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {876AA01B-0F3F-4954-8C57-27A8540504EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {876AA01B-0F3F-4954-8C57-27A8540504EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {876AA01B-0F3F-4954-8C57-27A8540504EE}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {876AA01B-0F3F-4954-8C57-27A8540504EE}.Debug|x64.Build.0 = Debug|Any CPU
+ {876AA01B-0F3F-4954-8C57-27A8540504EE}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {876AA01B-0F3F-4954-8C57-27A8540504EE}.Debug|x86.Build.0 = Debug|Any CPU
+ {876AA01B-0F3F-4954-8C57-27A8540504EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {876AA01B-0F3F-4954-8C57-27A8540504EE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {876AA01B-0F3F-4954-8C57-27A8540504EE}.Release|x64.ActiveCfg = Release|Any CPU
+ {876AA01B-0F3F-4954-8C57-27A8540504EE}.Release|x64.Build.0 = Release|Any CPU
+ {876AA01B-0F3F-4954-8C57-27A8540504EE}.Release|x86.ActiveCfg = Release|Any CPU
+ {876AA01B-0F3F-4954-8C57-27A8540504EE}.Release|x86.Build.0 = Release|Any CPU
+ {F3D13E8E-EDFF-4407-9442-9963C61D9EFF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F3D13E8E-EDFF-4407-9442-9963C61D9EFF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F3D13E8E-EDFF-4407-9442-9963C61D9EFF}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {F3D13E8E-EDFF-4407-9442-9963C61D9EFF}.Debug|x64.Build.0 = Debug|Any CPU
+ {F3D13E8E-EDFF-4407-9442-9963C61D9EFF}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {F3D13E8E-EDFF-4407-9442-9963C61D9EFF}.Debug|x86.Build.0 = Debug|Any CPU
+ {F3D13E8E-EDFF-4407-9442-9963C61D9EFF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F3D13E8E-EDFF-4407-9442-9963C61D9EFF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F3D13E8E-EDFF-4407-9442-9963C61D9EFF}.Release|x64.ActiveCfg = Release|Any CPU
+ {F3D13E8E-EDFF-4407-9442-9963C61D9EFF}.Release|x64.Build.0 = Release|Any CPU
+ {F3D13E8E-EDFF-4407-9442-9963C61D9EFF}.Release|x86.ActiveCfg = Release|Any CPU
+ {F3D13E8E-EDFF-4407-9442-9963C61D9EFF}.Release|x86.Build.0 = Release|Any CPU
+ {164E2865-D5CF-48CF-9036-CD70B945BE82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {164E2865-D5CF-48CF-9036-CD70B945BE82}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {164E2865-D5CF-48CF-9036-CD70B945BE82}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {164E2865-D5CF-48CF-9036-CD70B945BE82}.Debug|x64.Build.0 = Debug|Any CPU
+ {164E2865-D5CF-48CF-9036-CD70B945BE82}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {164E2865-D5CF-48CF-9036-CD70B945BE82}.Debug|x86.Build.0 = Debug|Any CPU
+ {164E2865-D5CF-48CF-9036-CD70B945BE82}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {164E2865-D5CF-48CF-9036-CD70B945BE82}.Release|Any CPU.Build.0 = Release|Any CPU
+ {164E2865-D5CF-48CF-9036-CD70B945BE82}.Release|x64.ActiveCfg = Release|Any CPU
+ {164E2865-D5CF-48CF-9036-CD70B945BE82}.Release|x64.Build.0 = Release|Any CPU
+ {164E2865-D5CF-48CF-9036-CD70B945BE82}.Release|x86.ActiveCfg = Release|Any CPU
+ {164E2865-D5CF-48CF-9036-CD70B945BE82}.Release|x86.Build.0 = Release|Any CPU
+ {9085E25B-2C3D-487E-9B52-304CAE2F88B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9085E25B-2C3D-487E-9B52-304CAE2F88B8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9085E25B-2C3D-487E-9B52-304CAE2F88B8}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {9085E25B-2C3D-487E-9B52-304CAE2F88B8}.Debug|x64.Build.0 = Debug|Any CPU
+ {9085E25B-2C3D-487E-9B52-304CAE2F88B8}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {9085E25B-2C3D-487E-9B52-304CAE2F88B8}.Debug|x86.Build.0 = Debug|Any CPU
+ {9085E25B-2C3D-487E-9B52-304CAE2F88B8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9085E25B-2C3D-487E-9B52-304CAE2F88B8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9085E25B-2C3D-487E-9B52-304CAE2F88B8}.Release|x64.ActiveCfg = Release|Any CPU
+ {9085E25B-2C3D-487E-9B52-304CAE2F88B8}.Release|x64.Build.0 = Release|Any CPU
+ {9085E25B-2C3D-487E-9B52-304CAE2F88B8}.Release|x86.ActiveCfg = Release|Any CPU
+ {9085E25B-2C3D-487E-9B52-304CAE2F88B8}.Release|x86.Build.0 = Release|Any CPU
+ {5D0041E0-FEB3-460F-90FA-AE50173D8EE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5D0041E0-FEB3-460F-90FA-AE50173D8EE6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5D0041E0-FEB3-460F-90FA-AE50173D8EE6}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {5D0041E0-FEB3-460F-90FA-AE50173D8EE6}.Debug|x64.Build.0 = Debug|Any CPU
+ {5D0041E0-FEB3-460F-90FA-AE50173D8EE6}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {5D0041E0-FEB3-460F-90FA-AE50173D8EE6}.Debug|x86.Build.0 = Debug|Any CPU
+ {5D0041E0-FEB3-460F-90FA-AE50173D8EE6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5D0041E0-FEB3-460F-90FA-AE50173D8EE6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5D0041E0-FEB3-460F-90FA-AE50173D8EE6}.Release|x64.ActiveCfg = Release|Any CPU
+ {5D0041E0-FEB3-460F-90FA-AE50173D8EE6}.Release|x64.Build.0 = Release|Any CPU
+ {5D0041E0-FEB3-460F-90FA-AE50173D8EE6}.Release|x86.ActiveCfg = Release|Any CPU
+ {5D0041E0-FEB3-460F-90FA-AE50173D8EE6}.Release|x86.Build.0 = Release|Any CPU
+ {F98BECAE-E25F-436E-8D69-F00E83164E13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F98BECAE-E25F-436E-8D69-F00E83164E13}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F98BECAE-E25F-436E-8D69-F00E83164E13}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {F98BECAE-E25F-436E-8D69-F00E83164E13}.Debug|x64.Build.0 = Debug|Any CPU
+ {F98BECAE-E25F-436E-8D69-F00E83164E13}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {F98BECAE-E25F-436E-8D69-F00E83164E13}.Debug|x86.Build.0 = Debug|Any CPU
+ {F98BECAE-E25F-436E-8D69-F00E83164E13}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F98BECAE-E25F-436E-8D69-F00E83164E13}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F98BECAE-E25F-436E-8D69-F00E83164E13}.Release|x64.ActiveCfg = Release|Any CPU
+ {F98BECAE-E25F-436E-8D69-F00E83164E13}.Release|x64.Build.0 = Release|Any CPU
+ {F98BECAE-E25F-436E-8D69-F00E83164E13}.Release|x86.ActiveCfg = Release|Any CPU
+ {F98BECAE-E25F-436E-8D69-F00E83164E13}.Release|x86.Build.0 = Release|Any CPU
+ {7CF6BBC9-2176-452A-A55F-A315F611923A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7CF6BBC9-2176-452A-A55F-A315F611923A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7CF6BBC9-2176-452A-A55F-A315F611923A}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {7CF6BBC9-2176-452A-A55F-A315F611923A}.Debug|x64.Build.0 = Debug|Any CPU
+ {7CF6BBC9-2176-452A-A55F-A315F611923A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {7CF6BBC9-2176-452A-A55F-A315F611923A}.Debug|x86.Build.0 = Debug|Any CPU
+ {7CF6BBC9-2176-452A-A55F-A315F611923A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7CF6BBC9-2176-452A-A55F-A315F611923A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7CF6BBC9-2176-452A-A55F-A315F611923A}.Release|x64.ActiveCfg = Release|Any CPU
+ {7CF6BBC9-2176-452A-A55F-A315F611923A}.Release|x64.Build.0 = Release|Any CPU
+ {7CF6BBC9-2176-452A-A55F-A315F611923A}.Release|x86.ActiveCfg = Release|Any CPU
+ {7CF6BBC9-2176-452A-A55F-A315F611923A}.Release|x86.Build.0 = Release|Any CPU
+ {C1F04A37-F946-4AA9-872D-A38A289F41BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C1F04A37-F946-4AA9-872D-A38A289F41BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C1F04A37-F946-4AA9-872D-A38A289F41BE}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {C1F04A37-F946-4AA9-872D-A38A289F41BE}.Debug|x64.Build.0 = Debug|Any CPU
+ {C1F04A37-F946-4AA9-872D-A38A289F41BE}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {C1F04A37-F946-4AA9-872D-A38A289F41BE}.Debug|x86.Build.0 = Debug|Any CPU
+ {C1F04A37-F946-4AA9-872D-A38A289F41BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C1F04A37-F946-4AA9-872D-A38A289F41BE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C1F04A37-F946-4AA9-872D-A38A289F41BE}.Release|x64.ActiveCfg = Release|Any CPU
+ {C1F04A37-F946-4AA9-872D-A38A289F41BE}.Release|x64.Build.0 = Release|Any CPU
+ {C1F04A37-F946-4AA9-872D-A38A289F41BE}.Release|x86.ActiveCfg = Release|Any CPU
+ {C1F04A37-F946-4AA9-872D-A38A289F41BE}.Release|x86.Build.0 = Release|Any CPU
+ {545A47FC-6BAA-4C92-BAD1-C1ED413077BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {545A47FC-6BAA-4C92-BAD1-C1ED413077BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {545A47FC-6BAA-4C92-BAD1-C1ED413077BC}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {545A47FC-6BAA-4C92-BAD1-C1ED413077BC}.Debug|x64.Build.0 = Debug|Any CPU
+ {545A47FC-6BAA-4C92-BAD1-C1ED413077BC}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {545A47FC-6BAA-4C92-BAD1-C1ED413077BC}.Debug|x86.Build.0 = Debug|Any CPU
+ {545A47FC-6BAA-4C92-BAD1-C1ED413077BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {545A47FC-6BAA-4C92-BAD1-C1ED413077BC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {545A47FC-6BAA-4C92-BAD1-C1ED413077BC}.Release|x64.ActiveCfg = Release|Any CPU
+ {545A47FC-6BAA-4C92-BAD1-C1ED413077BC}.Release|x64.Build.0 = Release|Any CPU
+ {545A47FC-6BAA-4C92-BAD1-C1ED413077BC}.Release|x86.ActiveCfg = Release|Any CPU
+ {545A47FC-6BAA-4C92-BAD1-C1ED413077BC}.Release|x86.Build.0 = Release|Any CPU
+ {59745535-3681-423D-AE8F-5C08D4671ADC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {59745535-3681-423D-AE8F-5C08D4671ADC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {59745535-3681-423D-AE8F-5C08D4671ADC}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {59745535-3681-423D-AE8F-5C08D4671ADC}.Debug|x64.Build.0 = Debug|Any CPU
+ {59745535-3681-423D-AE8F-5C08D4671ADC}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {59745535-3681-423D-AE8F-5C08D4671ADC}.Debug|x86.Build.0 = Debug|Any CPU
+ {59745535-3681-423D-AE8F-5C08D4671ADC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {59745535-3681-423D-AE8F-5C08D4671ADC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {59745535-3681-423D-AE8F-5C08D4671ADC}.Release|x64.ActiveCfg = Release|Any CPU
+ {59745535-3681-423D-AE8F-5C08D4671ADC}.Release|x64.Build.0 = Release|Any CPU
+ {59745535-3681-423D-AE8F-5C08D4671ADC}.Release|x86.ActiveCfg = Release|Any CPU
+ {59745535-3681-423D-AE8F-5C08D4671ADC}.Release|x86.Build.0 = Release|Any CPU
+ {6FE1B566-08DF-4BC0-AC2F-F9176AA17087}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6FE1B566-08DF-4BC0-AC2F-F9176AA17087}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6FE1B566-08DF-4BC0-AC2F-F9176AA17087}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {6FE1B566-08DF-4BC0-AC2F-F9176AA17087}.Debug|x64.Build.0 = Debug|Any CPU
+ {6FE1B566-08DF-4BC0-AC2F-F9176AA17087}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6FE1B566-08DF-4BC0-AC2F-F9176AA17087}.Debug|x86.Build.0 = Debug|Any CPU
+ {6FE1B566-08DF-4BC0-AC2F-F9176AA17087}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6FE1B566-08DF-4BC0-AC2F-F9176AA17087}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6FE1B566-08DF-4BC0-AC2F-F9176AA17087}.Release|x64.ActiveCfg = Release|Any CPU
+ {6FE1B566-08DF-4BC0-AC2F-F9176AA17087}.Release|x64.Build.0 = Release|Any CPU
+ {6FE1B566-08DF-4BC0-AC2F-F9176AA17087}.Release|x86.ActiveCfg = Release|Any CPU
+ {6FE1B566-08DF-4BC0-AC2F-F9176AA17087}.Release|x86.Build.0 = Release|Any CPU
+ {F04E9976-C303-4DEA-AA8D-EEDE6DF44069}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F04E9976-C303-4DEA-AA8D-EEDE6DF44069}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F04E9976-C303-4DEA-AA8D-EEDE6DF44069}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {F04E9976-C303-4DEA-AA8D-EEDE6DF44069}.Debug|x64.Build.0 = Debug|Any CPU
+ {F04E9976-C303-4DEA-AA8D-EEDE6DF44069}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {F04E9976-C303-4DEA-AA8D-EEDE6DF44069}.Debug|x86.Build.0 = Debug|Any CPU
+ {F04E9976-C303-4DEA-AA8D-EEDE6DF44069}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F04E9976-C303-4DEA-AA8D-EEDE6DF44069}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F04E9976-C303-4DEA-AA8D-EEDE6DF44069}.Release|x64.ActiveCfg = Release|Any CPU
+ {F04E9976-C303-4DEA-AA8D-EEDE6DF44069}.Release|x64.Build.0 = Release|Any CPU
+ {F04E9976-C303-4DEA-AA8D-EEDE6DF44069}.Release|x86.ActiveCfg = Release|Any CPU
+ {F04E9976-C303-4DEA-AA8D-EEDE6DF44069}.Release|x86.Build.0 = Release|Any CPU
+ {A61BAD5E-77AC-49A0-8028-5E84EF990987}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A61BAD5E-77AC-49A0-8028-5E84EF990987}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A61BAD5E-77AC-49A0-8028-5E84EF990987}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {A61BAD5E-77AC-49A0-8028-5E84EF990987}.Debug|x64.Build.0 = Debug|Any CPU
+ {A61BAD5E-77AC-49A0-8028-5E84EF990987}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {A61BAD5E-77AC-49A0-8028-5E84EF990987}.Debug|x86.Build.0 = Debug|Any CPU
+ {A61BAD5E-77AC-49A0-8028-5E84EF990987}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A61BAD5E-77AC-49A0-8028-5E84EF990987}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A61BAD5E-77AC-49A0-8028-5E84EF990987}.Release|x64.ActiveCfg = Release|Any CPU
+ {A61BAD5E-77AC-49A0-8028-5E84EF990987}.Release|x64.Build.0 = Release|Any CPU
+ {A61BAD5E-77AC-49A0-8028-5E84EF990987}.Release|x86.ActiveCfg = Release|Any CPU
+ {A61BAD5E-77AC-49A0-8028-5E84EF990987}.Release|x86.Build.0 = Release|Any CPU
+ {E6F92ED7-6EE2-4D71-8962-15613CD379BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E6F92ED7-6EE2-4D71-8962-15613CD379BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E6F92ED7-6EE2-4D71-8962-15613CD379BC}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {E6F92ED7-6EE2-4D71-8962-15613CD379BC}.Debug|x64.Build.0 = Debug|Any CPU
+ {E6F92ED7-6EE2-4D71-8962-15613CD379BC}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E6F92ED7-6EE2-4D71-8962-15613CD379BC}.Debug|x86.Build.0 = Debug|Any CPU
+ {E6F92ED7-6EE2-4D71-8962-15613CD379BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E6F92ED7-6EE2-4D71-8962-15613CD379BC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E6F92ED7-6EE2-4D71-8962-15613CD379BC}.Release|x64.ActiveCfg = Release|Any CPU
+ {E6F92ED7-6EE2-4D71-8962-15613CD379BC}.Release|x64.Build.0 = Release|Any CPU
+ {E6F92ED7-6EE2-4D71-8962-15613CD379BC}.Release|x86.ActiveCfg = Release|Any CPU
+ {E6F92ED7-6EE2-4D71-8962-15613CD379BC}.Release|x86.Build.0 = Release|Any CPU
+ {3D5DDCB4-3840-4ACE-AB17-A217F3A27F50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3D5DDCB4-3840-4ACE-AB17-A217F3A27F50}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3D5DDCB4-3840-4ACE-AB17-A217F3A27F50}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {3D5DDCB4-3840-4ACE-AB17-A217F3A27F50}.Debug|x64.Build.0 = Debug|Any CPU
+ {3D5DDCB4-3840-4ACE-AB17-A217F3A27F50}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3D5DDCB4-3840-4ACE-AB17-A217F3A27F50}.Debug|x86.Build.0 = Debug|Any CPU
+ {3D5DDCB4-3840-4ACE-AB17-A217F3A27F50}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3D5DDCB4-3840-4ACE-AB17-A217F3A27F50}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3D5DDCB4-3840-4ACE-AB17-A217F3A27F50}.Release|x64.ActiveCfg = Release|Any CPU
+ {3D5DDCB4-3840-4ACE-AB17-A217F3A27F50}.Release|x64.Build.0 = Release|Any CPU
+ {3D5DDCB4-3840-4ACE-AB17-A217F3A27F50}.Release|x86.ActiveCfg = Release|Any CPU
+ {3D5DDCB4-3840-4ACE-AB17-A217F3A27F50}.Release|x86.Build.0 = Release|Any CPU
+ {272B0A44-B985-47FF-8C93-32A77F5919C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {272B0A44-B985-47FF-8C93-32A77F5919C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {272B0A44-B985-47FF-8C93-32A77F5919C9}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {272B0A44-B985-47FF-8C93-32A77F5919C9}.Debug|x64.Build.0 = Debug|Any CPU
+ {272B0A44-B985-47FF-8C93-32A77F5919C9}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {272B0A44-B985-47FF-8C93-32A77F5919C9}.Debug|x86.Build.0 = Debug|Any CPU
+ {272B0A44-B985-47FF-8C93-32A77F5919C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {272B0A44-B985-47FF-8C93-32A77F5919C9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {272B0A44-B985-47FF-8C93-32A77F5919C9}.Release|x64.ActiveCfg = Release|Any CPU
+ {272B0A44-B985-47FF-8C93-32A77F5919C9}.Release|x64.Build.0 = Release|Any CPU
+ {272B0A44-B985-47FF-8C93-32A77F5919C9}.Release|x86.ActiveCfg = Release|Any CPU
+ {272B0A44-B985-47FF-8C93-32A77F5919C9}.Release|x86.Build.0 = Release|Any CPU
+ {D852D486-F1DA-48A6-BBAF-43FF3396527D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D852D486-F1DA-48A6-BBAF-43FF3396527D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D852D486-F1DA-48A6-BBAF-43FF3396527D}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {D852D486-F1DA-48A6-BBAF-43FF3396527D}.Debug|x64.Build.0 = Debug|Any CPU
+ {D852D486-F1DA-48A6-BBAF-43FF3396527D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D852D486-F1DA-48A6-BBAF-43FF3396527D}.Debug|x86.Build.0 = Debug|Any CPU
+ {D852D486-F1DA-48A6-BBAF-43FF3396527D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D852D486-F1DA-48A6-BBAF-43FF3396527D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D852D486-F1DA-48A6-BBAF-43FF3396527D}.Release|x64.ActiveCfg = Release|Any CPU
+ {D852D486-F1DA-48A6-BBAF-43FF3396527D}.Release|x64.Build.0 = Release|Any CPU
+ {D852D486-F1DA-48A6-BBAF-43FF3396527D}.Release|x86.ActiveCfg = Release|Any CPU
+ {D852D486-F1DA-48A6-BBAF-43FF3396527D}.Release|x86.Build.0 = Release|Any CPU
+ {6C5E7FB8-D6E8-4CBD-95FC-89EAB773472A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6C5E7FB8-D6E8-4CBD-95FC-89EAB773472A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6C5E7FB8-D6E8-4CBD-95FC-89EAB773472A}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {6C5E7FB8-D6E8-4CBD-95FC-89EAB773472A}.Debug|x64.Build.0 = Debug|Any CPU
+ {6C5E7FB8-D6E8-4CBD-95FC-89EAB773472A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6C5E7FB8-D6E8-4CBD-95FC-89EAB773472A}.Debug|x86.Build.0 = Debug|Any CPU
+ {6C5E7FB8-D6E8-4CBD-95FC-89EAB773472A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6C5E7FB8-D6E8-4CBD-95FC-89EAB773472A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6C5E7FB8-D6E8-4CBD-95FC-89EAB773472A}.Release|x64.ActiveCfg = Release|Any CPU
+ {6C5E7FB8-D6E8-4CBD-95FC-89EAB773472A}.Release|x64.Build.0 = Release|Any CPU
+ {6C5E7FB8-D6E8-4CBD-95FC-89EAB773472A}.Release|x86.ActiveCfg = Release|Any CPU
+ {6C5E7FB8-D6E8-4CBD-95FC-89EAB773472A}.Release|x86.Build.0 = Release|Any CPU
+ {E526424D-ADC7-41DB-AD63-E359AC2954D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E526424D-ADC7-41DB-AD63-E359AC2954D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E526424D-ADC7-41DB-AD63-E359AC2954D9}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {E526424D-ADC7-41DB-AD63-E359AC2954D9}.Debug|x64.Build.0 = Debug|Any CPU
+ {E526424D-ADC7-41DB-AD63-E359AC2954D9}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E526424D-ADC7-41DB-AD63-E359AC2954D9}.Debug|x86.Build.0 = Debug|Any CPU
+ {E526424D-ADC7-41DB-AD63-E359AC2954D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E526424D-ADC7-41DB-AD63-E359AC2954D9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E526424D-ADC7-41DB-AD63-E359AC2954D9}.Release|x64.ActiveCfg = Release|Any CPU
+ {E526424D-ADC7-41DB-AD63-E359AC2954D9}.Release|x64.Build.0 = Release|Any CPU
+ {E526424D-ADC7-41DB-AD63-E359AC2954D9}.Release|x86.ActiveCfg = Release|Any CPU
+ {E526424D-ADC7-41DB-AD63-E359AC2954D9}.Release|x86.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {17E2FB3F-0F61-3CDC-2874-2686F1726316} = {6C4179B9-BFAA-0403-502F-9DAF28C26A6E}
+ {F3D13E8E-EDFF-4407-9442-9963C61D9EFF} = {17E2FB3F-0F61-3CDC-2874-2686F1726316}
+ {164E2865-D5CF-48CF-9036-CD70B945BE82} = {17E2FB3F-0F61-3CDC-2874-2686F1726316}
+ {9085E25B-2C3D-487E-9B52-304CAE2F88B8} = {17E2FB3F-0F61-3CDC-2874-2686F1726316}
+ {5D0041E0-FEB3-460F-90FA-AE50173D8EE6} = {17E2FB3F-0F61-3CDC-2874-2686F1726316}
+ {F98BECAE-E25F-436E-8D69-F00E83164E13} = {17E2FB3F-0F61-3CDC-2874-2686F1726316}
+ {7CF6BBC9-2176-452A-A55F-A315F611923A} = {17E2FB3F-0F61-3CDC-2874-2686F1726316}
+ {C1F04A37-F946-4AA9-872D-A38A289F41BE} = {17E2FB3F-0F61-3CDC-2874-2686F1726316}
+ {545A47FC-6BAA-4C92-BAD1-C1ED413077BC} = {17E2FB3F-0F61-3CDC-2874-2686F1726316}
+ {59745535-3681-423D-AE8F-5C08D4671ADC} = {17E2FB3F-0F61-3CDC-2874-2686F1726316}
+ {6FE1B566-08DF-4BC0-AC2F-F9176AA17087} = {17E2FB3F-0F61-3CDC-2874-2686F1726316}
+ {F04E9976-C303-4DEA-AA8D-EEDE6DF44069} = {17E2FB3F-0F61-3CDC-2874-2686F1726316}
+ {A61BAD5E-77AC-49A0-8028-5E84EF990987} = {17E2FB3F-0F61-3CDC-2874-2686F1726316}
+ {E6F92ED7-6EE2-4D71-8962-15613CD379BC} = {17E2FB3F-0F61-3CDC-2874-2686F1726316}
+ {3D5DDCB4-3840-4ACE-AB17-A217F3A27F50} = {17E2FB3F-0F61-3CDC-2874-2686F1726316}
+ {272B0A44-B985-47FF-8C93-32A77F5919C9} = {17E2FB3F-0F61-3CDC-2874-2686F1726316}
+ {D852D486-F1DA-48A6-BBAF-43FF3396527D} = {17E2FB3F-0F61-3CDC-2874-2686F1726316}
+ {6C5E7FB8-D6E8-4CBD-95FC-89EAB773472A} = {17E2FB3F-0F61-3CDC-2874-2686F1726316}
+ {E526424D-ADC7-41DB-AD63-E359AC2954D9} = {17E2FB3F-0F61-3CDC-2874-2686F1726316}
+ EndGlobalSection
+EndGlobal
|