Răsfoiți Sursa

Fixed tests

flabbet 9 luni în urmă
părinte
comite
997404663a

+ 1 - 1
src/PixiDocks

@@ -1 +1 @@
-Subproject commit a3ef65cf88fc059becf6146fd6f615f09da8f498
+Subproject commit c30588a79d76b3e09ffea15965d5a0ad10a93ee5

BIN
src/PixiEditor.Extensions.Sdk/build/PixiEditor.Api.CGlueMSBuild.dll


+ 1 - 0
tests/ChunkyImageLibTest/ChunkyImageLibTest.csproj

@@ -21,6 +21,7 @@
 
 
   <ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\..\src\ChunkyImageLib\ChunkyImageLib.csproj" />
     <ProjectReference Include="..\..\src\ChunkyImageLib\ChunkyImageLib.csproj" />
+    <ProjectReference Include="..\..\src\Drawie\src\Drawie.Backend.Skia\Drawie.Backend.Skia.csproj" />
     <ProjectReference Include="..\..\src\PixiEditor.DrawingApi.Skia\PixiEditor.DrawingApi.Skia.csproj" />
     <ProjectReference Include="..\..\src\PixiEditor.DrawingApi.Skia\PixiEditor.DrawingApi.Skia.csproj" />
   </ItemGroup>
   </ItemGroup>
 
 

+ 5 - 7
tests/ChunkyImageLibTest/ChunkyImageTests.cs

@@ -1,13 +1,11 @@
 using ChunkyImageLib;
 using ChunkyImageLib;
 using ChunkyImageLib.DataHolders;
 using ChunkyImageLib.DataHolders;
-using PixiEditor.DrawingApi.Core.Bridge;
-using PixiEditor.DrawingApi.Core.ColorsImpl;
-using PixiEditor.DrawingApi.Core.Numerics;
-using PixiEditor.DrawingApi.Core.Surfaces;
-using PixiEditor.DrawingApi.Skia;
-using PixiEditor.Numerics;
+using Drawie.Backend.Core.Bridge;
+using Drawie.Backend.Core.ColorsImpl;
+using Drawie.Backend.Core.Surfaces;
+using Drawie.Numerics;
+using Drawie.Skia;
 using Xunit;
 using Xunit;
-using static PixiEditor.DrawingApi.Core.Surface;
 
 
 namespace ChunkyImageLibTest;
 namespace ChunkyImageLibTest;
 public class ChunkyImageTests
 public class ChunkyImageTests

+ 1 - 3
tests/ChunkyImageLibTest/ClearRegionOperationTests.cs

@@ -1,9 +1,7 @@
 using System.Collections.Generic;
 using System.Collections.Generic;
 using ChunkyImageLib;
 using ChunkyImageLib;
-using ChunkyImageLib.DataHolders;
 using ChunkyImageLib.Operations;
 using ChunkyImageLib.Operations;
-using PixiEditor.DrawingApi.Core.Numerics;
-using PixiEditor.Numerics;
+using Drawie.Numerics;
 using Xunit;
 using Xunit;
 
 
 namespace ChunkyImageLibTest;
 namespace ChunkyImageLibTest;

+ 4 - 6
tests/ChunkyImageLibTest/ImageOperationTests.cs

@@ -1,12 +1,10 @@
 using System.Collections.Generic;
 using System.Collections.Generic;
 using ChunkyImageLib;
 using ChunkyImageLib;
-using ChunkyImageLib.DataHolders;
 using ChunkyImageLib.Operations;
 using ChunkyImageLib.Operations;
-using PixiEditor.DrawingApi.Core;
-using PixiEditor.DrawingApi.Core.Bridge;
-using PixiEditor.DrawingApi.Core.Numerics;
-using PixiEditor.DrawingApi.Skia;
-using PixiEditor.Numerics;
+using Drawie.Backend.Core;
+using Drawie.Backend.Core.Bridge;
+using Drawie.Numerics;
+using Drawie.Skia;
 using Xunit;
 using Xunit;
 
 
 namespace ChunkyImageLibTest;
 namespace ChunkyImageLibTest;

+ 1 - 3
tests/ChunkyImageLibTest/OperationHelperTests.cs

@@ -1,10 +1,8 @@
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
 using ChunkyImageLib;
 using ChunkyImageLib;
-using ChunkyImageLib.DataHolders;
 using ChunkyImageLib.Operations;
 using ChunkyImageLib.Operations;
-using PixiEditor.DrawingApi.Core.Numerics;
-using PixiEditor.Numerics;
+using Drawie.Numerics;
 using Xunit;
 using Xunit;
 
 
 namespace ChunkyImageLibTest;
 namespace ChunkyImageLibTest;

+ 1 - 3
tests/ChunkyImageLibTest/RectITests.cs

@@ -1,7 +1,5 @@
 using System;
 using System;
-using ChunkyImageLib.DataHolders;
-using PixiEditor.DrawingApi.Core.Numerics;
-using PixiEditor.Numerics;
+using Drawie.Numerics;
 using Xunit;
 using Xunit;
 
 
 namespace ChunkyImageLibTest;
 namespace ChunkyImageLibTest;

+ 2 - 3
tests/ChunkyImageLibTest/RectangleOperationTests.cs

@@ -1,9 +1,8 @@
 using System.Collections.Generic;
 using System.Collections.Generic;
 using ChunkyImageLib;
 using ChunkyImageLib;
 using ChunkyImageLib.Operations;
 using ChunkyImageLib.Operations;
-using PixiEditor.DrawingApi.Core.ColorsImpl;
-using PixiEditor.DrawingApi.Core.Numerics;
-using PixiEditor.Numerics;
+using Drawie.Backend.Core.ColorsImpl;
+using Drawie.Numerics;
 using Xunit;
 using Xunit;
 
 
 namespace ChunkyImageLibTest;
 namespace ChunkyImageLibTest;

+ 3 - 3
tests/PixiEditor.Backend.Tests/MockDocument.cs

@@ -1,8 +1,8 @@
-using PixiEditor.ChangeableDocument.Changeables.Graph.Interfaces;
+using Drawie.Backend.Core.Surfaces.ImageData;
+using Drawie.Numerics;
+using PixiEditor.ChangeableDocument.Changeables.Graph.Interfaces;
 using PixiEditor.ChangeableDocument.Changeables.Interfaces;
 using PixiEditor.ChangeableDocument.Changeables.Interfaces;
 using PixiEditor.ChangeableDocument.Rendering;
 using PixiEditor.ChangeableDocument.Rendering;
-using PixiEditor.DrawingApi.Core.Surfaces.ImageData;
-using PixiEditor.Numerics;
 
 
 namespace PixiEditor.Backend.Tests;
 namespace PixiEditor.Backend.Tests;
 
 

+ 6 - 21
tests/PixiEditor.Backend.Tests/NodeSystemTests.cs

@@ -1,17 +1,14 @@
 using System.Reflection;
 using System.Reflection;
-using ChunkyImageLib.DataHolders;
+using Drawie.Backend.Core.Bridge;
+using Drawie.Interop.VulkanAvalonia;
+using Drawie.Skia;
 using PixiEditor.ChangeableDocument.Changeables.Graph;
 using PixiEditor.ChangeableDocument.Changeables.Graph;
 using PixiEditor.ChangeableDocument.Changeables.Graph.Nodes;
 using PixiEditor.ChangeableDocument.Changeables.Graph.Nodes;
 using PixiEditor.ChangeableDocument.Changeables.Interfaces;
 using PixiEditor.ChangeableDocument.Changeables.Interfaces;
 using PixiEditor.ChangeableDocument.Changes.NodeGraph;
 using PixiEditor.ChangeableDocument.Changes.NodeGraph;
-using PixiEditor.ChangeableDocument.Rendering;
-using PixiEditor.DrawingApi.Core.Bridge;
-using PixiEditor.DrawingApi.Skia;
 using PixiEditor.Models.Serialization;
 using PixiEditor.Models.Serialization;
 using PixiEditor.Models.Serialization.Factories;
 using PixiEditor.Models.Serialization.Factories;
-using PixiEditor.Numerics;
 using PixiEditor.Parser.Skia.Encoders;
 using PixiEditor.Parser.Skia.Encoders;
-using PixiEditor.Views.Rendering;
 using Xunit.Abstractions;
 using Xunit.Abstractions;
 
 
 namespace PixiEditor.Backend.Tests;
 namespace PixiEditor.Backend.Tests;
@@ -22,27 +19,15 @@ public class NodeSystemTests
 
 
     private Type[] knownNonSerializableTypes = new[]
     private Type[] knownNonSerializableTypes = new[]
     {
     {
-        typeof(Filter)
+        typeof(Filter),
+        typeof(Painter)
     };
     };
 
 
     public NodeSystemTests(ITestOutputHelper output)
     public NodeSystemTests(ITestOutputHelper output)
     {
     {
         this.output = output;
         this.output = output;
         if (!DrawingBackendApi.HasBackend)
         if (!DrawingBackendApi.HasBackend)
-            DrawingBackendApi.SetupBackend(new SkiaDrawingBackend(), new AvaloniaRenderingServer());
-    }
-
-    [Fact]
-    public void TestThatNodeGraphExecutesEmptyOutputNode()
-    {
-        NodeGraph graph = new NodeGraph();
-        OutputNode outputNode = new OutputNode();
-
-        graph.AddNode(outputNode);
-        using RenderingContext context = new RenderingContext(0, VecI.Zero, ChunkResolution.Full, new VecI(1, 1));
-        graph.Execute(context);
-
-        Assert.Null(outputNode.CachedResult);
+            DrawingBackendApi.SetupBackend(new SkiaDrawingBackend(), new AvaloniaRenderingDispatcher());
     }
     }
 
 
     [Fact]
     [Fact]

+ 0 - 111
tests/PixiEditor.Tests/FramebufferExtensionTests.cs

@@ -1,111 +0,0 @@
-using Avalonia;
-using Avalonia.Media;
-using Avalonia.Media.Imaging;
-using Avalonia.Platform;
-using PixiEditor.Helpers.Extensions;
-using PixiEditor.Numerics;
-
-namespace PixiEditor.Tests;
-
-public class FramebufferExtensionTests
-{
-    [Fact]
-    public void TestThatExtractPixelsFromBitmapReturnsCorrectAmountOfPixels()
-    {
-        var bitmap = new WriteableBitmap(new PixelSize(10, 10), new Vector(96, 96), PixelFormats.Bgra8888);
-        var pixels = bitmap.ExtractPixels();
-        Assert.Equal(400, pixels.Length);
-    }
-
-    [Theory]
-    [InlineData(255, 0, 0, 255)]
-    [InlineData(0, 255, 0, 255)]
-    [InlineData(0, 0, 255, 255)]
-    [InlineData(255, 255, 255, 255)]
-    [InlineData(0, 0, 0, 255)]
-    [InlineData(255, 255, 255, 0)]
-    [InlineData(0, 0, 0, 0)]
-    public void TestThatWritePixelSetsCorrectColor(byte r, byte g, byte b, byte a)
-    {
-        var bitmap = new WriteableBitmap(new PixelSize(1, 1), new Vector(96, 96), PixelFormats.Bgra8888);
-        using var framebuffer = bitmap.Lock();
-        framebuffer.WritePixel(0, 0, Color.FromArgb(a, r, g, b));
-        var pixels = framebuffer.GetPixels();
-        Assert.Equal(r, pixels[2]);
-        Assert.Equal(g, pixels[1]);
-        Assert.Equal(b, pixels[0]);
-        Assert.Equal(a, pixels[3]);
-    }
-
-    [Theory]
-    [InlineData(255, 0, 0, 255)]
-    [InlineData(0, 255, 0, 255)]
-    [InlineData(0, 0, 255, 255)]
-    [InlineData(255, 255, 255, 255)]
-    [InlineData(0, 0, 0, 255)]
-    [InlineData(255, 255, 255, 0)]
-    [InlineData(0, 0, 0, 0)]
-    public void TestThatWritePixelsSetsCorrectColor(byte r, byte g, byte b, byte a)
-    {
-        var bitmap = new WriteableBitmap(new PixelSize(1, 1), new Vector(96, 96), PixelFormats.Bgra8888);
-        using var framebuffer = bitmap.Lock();
-        framebuffer.WritePixels(new RectI(0, 0, 1, 1), new byte[] { b, g, r, a });
-        var pixels = framebuffer.GetPixels();
-        Assert.Equal(r, pixels[2]);
-        Assert.Equal(g, pixels[1]);
-        Assert.Equal(b, pixels[0]);
-        Assert.Equal(a, pixels[3]);
-    }
-
-    [Theory]
-    [InlineData(255, 0, 0, 255)]
-    [InlineData(0, 255, 0, 255)]
-    [InlineData(0, 0, 255, 255)]
-    [InlineData(255, 255, 255, 255)]
-    [InlineData(0, 0, 0, 255)]
-    [InlineData(255, 255, 255, 0)]
-    [InlineData(0, 0, 0, 0)]
-    public void TestThatGetPixelsReturnsCorrectColor(byte r, byte g, byte b, byte a)
-    {
-        WriteableBitmap bitmap = new WriteableBitmap(new PixelSize(1, 1), new Vector(96, 96), PixelFormats.Bgra8888, AlphaFormat.Premul);
-        using var framebuffer = bitmap.Lock();
-        framebuffer.WritePixel(0, 0, Color.FromArgb(a, r, g, b));
-        var color = framebuffer.GetPixel(0, 0);
-        Assert.Equal(r, color.R);
-        Assert.Equal(g, color.G);
-        Assert.Equal(b, color.B);
-        Assert.Equal(a, color.A);
-    }
-
-    [Fact]
-    public void TestThatExtractPixelsFromBitmapReturnsCorrectBgra8888ByteSequence()
-    {
-        var bitmap = new WriteableBitmap(new PixelSize(4, 1), new Vector(96, 96), PixelFormats.Bgra8888);
-        using var framebuffer = bitmap.Lock();
-        framebuffer.WritePixel(0, 0, Color.FromArgb(255, 255, 0, 0)); //Red
-        framebuffer.WritePixel(1, 0, Color.FromArgb(255, 0, 255, 0)); //Green
-        framebuffer.WritePixel(2, 0, Color.FromArgb(255, 0, 0, 255)); //Blue
-        framebuffer.WritePixel(3, 0, Color.FromArgb(255, 255, 255, 255)); //White
-        var pixels = bitmap.ExtractPixels();
-
-        Assert.Equal(0, pixels[0]);
-        Assert.Equal(0, pixels[1]);
-        Assert.Equal(255, pixels[2]);
-        Assert.Equal(255, pixels[3]);
-
-        Assert.Equal(0, pixels[4]);
-        Assert.Equal(255, pixels[5]);
-        Assert.Equal(0, pixels[6]);
-        Assert.Equal(255, pixels[7]);
-
-        Assert.Equal(255, pixels[8]);
-        Assert.Equal(0, pixels[9]);
-        Assert.Equal(0, pixels[10]);
-        Assert.Equal(255, pixels[11]);
-
-        Assert.Equal(255, pixels[12]);
-        Assert.Equal(255, pixels[13]);
-        Assert.Equal(255, pixels[14]);
-        Assert.Equal(255, pixels[15]);
-    }
-}

+ 1 - 1
tests/PixiEditor.Tests/PixiEditor.Tests.csproj

@@ -11,7 +11,7 @@
     </PropertyGroup>
     </PropertyGroup>
 
 
     <ItemGroup>
     <ItemGroup>
-        <PackageReference Include="Avalonia" Version="11.1.3" />
+        <PackageReference Include="Avalonia" Version="11.1.4" />
         <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.0"/>
         <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.0"/>
         <PackageReference Include="xunit" Version="2.4.2"/>
         <PackageReference Include="xunit" Version="2.4.2"/>
         <PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
         <PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">

+ 0 - 37
tests/PixiEditor.Tests/WriteableBitmapUtilityTests.cs

@@ -1,37 +0,0 @@
-using Avalonia.Media;
-using Avalonia.Media.Imaging;
-using Avalonia.Platform;
-using PixiEditor.Helpers;
-using PixiEditor.Helpers.Extensions;
-using PixiEditor.Numerics;
-
-namespace PixiEditor.Tests;
-
-public class WriteableBitmapUtilityTests
-{
-    [Fact]
-    public void TestThatFromBgra8888ArrayReturnsCorrectWriteableBitmap()
-    {
-        byte[] bgra8888 = new byte[4];
-        Color color = Color.FromArgb(5, 150, 200, 255);
-        bgra8888[0] = color.B;
-        bgra8888[1] = color.G;
-        bgra8888[2] = color.R;
-        bgra8888[3] = color.A;
-
-        VecI size = new(1, 1);
-        WriteableBitmap result = WriteableBitmapUtility.FromBgra8888Array(bgra8888, size);
-        Assert.NotNull(result);
-        Assert.Equal(1, result.PixelSize.Width);
-        Assert.Equal(1, result.PixelSize.Height);
-        Assert.Equal(96, result.Dpi.X);
-        Assert.Equal(96, result.Dpi.Y);
-        Assert.Equal(PixelFormats.Bgra8888, result.Format);
-
-        using ILockedFramebuffer frameBuffer = result.Lock();
-        Assert.Equal(4, frameBuffer.RowBytes);
-        Assert.Equal(1, frameBuffer.Size.Width);
-        Assert.Equal(1, frameBuffer.Size.Height);
-        Assert.Equal(color, frameBuffer.GetPixel(0, 0));
-    }
-}

+ 63 - 19
tests/PixiEditorTests.sln

@@ -25,12 +25,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PixiEditor.Platform.Steam",
 EndProject
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PixiEditor.Platform.MSStore", "..\src\PixiEditor.Platform.MSStore\PixiEditor.Platform.MSStore.csproj", "{8EF48E6C-8219-4EE2-87C6-5176D8D092E6}"
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PixiEditor.Platform.MSStore", "..\src\PixiEditor.Platform.MSStore\PixiEditor.Platform.MSStore.csproj", "{8EF48E6C-8219-4EE2-87C6-5176D8D092E6}"
 EndProject
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PixiEditor.DrawingApi.Skia", "..\src\PixiEditor.DrawingApi.Skia\PixiEditor.DrawingApi.Skia.csproj", "{DCFF0D46-C19C-4E6D-984C-56A95781AE0B}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PixiEditor.DrawingApi.Core", "..\src\PixiEditor.DrawingApi.Core\PixiEditor.DrawingApi.Core.csproj", "{61403ACE-FEA3-49E5-A916-68C0FADCFBE6}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PixiEditor.Numerics", "..\src\PixiEditor.Numerics\PixiEditor.Numerics.csproj", "{025BE1C7-EC9D-452A-9BA4-1F1CF31431FB}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PixiEditor.Api.CGlueMSBuild.Tests", "PixiEditor.Api.CGlueMSBuild.Tests\PixiEditor.Api.CGlueMSBuild.Tests.csproj", "{0CC4DF8D-4C6D-416E-98D9-27B318826490}"
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PixiEditor.Api.CGlueMSBuild.Tests", "PixiEditor.Api.CGlueMSBuild.Tests\PixiEditor.Api.CGlueMSBuild.Tests.csproj", "{0CC4DF8D-4C6D-416E-98D9-27B318826490}"
 EndProject
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PixiEditor.Api.CGlueMSBuild", "..\src\PixiEditor.Api.CGlueMSBuild\PixiEditor.Api.CGlueMSBuild.csproj", "{B2402415-02BA-41D1-8A6A-81B361DCE048}"
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PixiEditor.Api.CGlueMSBuild", "..\src\PixiEditor.Api.CGlueMSBuild\PixiEditor.Api.CGlueMSBuild.csproj", "{B2402415-02BA-41D1-8A6A-81B361DCE048}"
@@ -93,6 +87,24 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PixiEditor.Gen", "..\src\Pi
 EndProject
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PixiEditor.UpdateModule", "..\src\PixiEditor.UpdateModule\PixiEditor.UpdateModule.csproj", "{3028FEDC-E937-4432-B74E-4E29304CD5C0}"
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PixiEditor.UpdateModule", "..\src\PixiEditor.UpdateModule\PixiEditor.UpdateModule.csproj", "{3028FEDC-E937-4432-B74E-4E29304CD5C0}"
 EndProject
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Drawie.Backend.Core", "..\src\Drawie\src\Drawie.Backend.Core\Drawie.Backend.Core.csproj", "{07F69457-3508-4DF4-9AB0-09659AC5C00F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Drawie.Numerics", "..\src\Drawie\src\Drawie.Numerics\Drawie.Numerics.csproj", "{941E4206-4260-4363-A1A0-A7D2E641CE4F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Drawie.RenderApi", "..\src\Drawie\src\Drawie.RenderApi\Drawie.RenderApi.csproj", "{3061E7B1-ABE2-4E14-A650-CBC42450F21F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DrawiEngine", "..\src\Drawie\src\DrawiEngine\DrawiEngine.csproj", "{23A9B33D-118E-4BCE-85FB-0AAC6E4D15B6}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Drawie.Windowing", "..\src\Drawie\src\Drawie.Windowing\Drawie.Windowing.csproj", "{B8DFAB77-3FD1-4FFF-A018-215EFC73D916}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Drawie.Backend.Skia", "..\src\Drawie\src\Drawie.Backend.Skia\Drawie.Backend.Skia.csproj", "{8044BAB5-5EF5-45FE-B819-18BDCC914C1B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Drawie.Interop.VulkanAvalonia", "..\src\Drawie\src\Drawie.Interop.VulkanAvalonia\Drawie.Interop.VulkanAvalonia.csproj", "{B2C312C3-E1D6-4970-BBFF-FA2E47ED505C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Drawie.RenderApi.Vulkan", "..\src\Drawie\src\Drawie.RenderApi.Vulkan\Drawie.RenderApi.Vulkan.csproj", "{54C073D4-88F8-46D2-9EDB-86C0A7819968}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PixiEditor.SVG", "..\src\PixiEditor.SVG\PixiEditor.SVG.csproj", "{A0424CAD-F2F5-4A2A-A638-F5457BD098C6}"
+EndProject
 Global
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
 		Debug|Any CPU = Debug|Any CPU
@@ -118,14 +130,6 @@ Global
 		{4DC33EEF-4FD2-4038-BB0C-61E1B833A6B4}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{4DC33EEF-4FD2-4038-BB0C-61E1B833A6B4}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{4DC33EEF-4FD2-4038-BB0C-61E1B833A6B4}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{4DC33EEF-4FD2-4038-BB0C-61E1B833A6B4}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{4DC33EEF-4FD2-4038-BB0C-61E1B833A6B4}.Release|Any CPU.Build.0 = Release|Any CPU
 		{4DC33EEF-4FD2-4038-BB0C-61E1B833A6B4}.Release|Any CPU.Build.0 = Release|Any CPU
-		{61403ACE-FEA3-49E5-A916-68C0FADCFBE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{61403ACE-FEA3-49E5-A916-68C0FADCFBE6}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{61403ACE-FEA3-49E5-A916-68C0FADCFBE6}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{61403ACE-FEA3-49E5-A916-68C0FADCFBE6}.Release|Any CPU.Build.0 = Release|Any CPU
-		{025BE1C7-EC9D-452A-9BA4-1F1CF31431FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{025BE1C7-EC9D-452A-9BA4-1F1CF31431FB}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{025BE1C7-EC9D-452A-9BA4-1F1CF31431FB}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{025BE1C7-EC9D-452A-9BA4-1F1CF31431FB}.Release|Any CPU.Build.0 = Release|Any CPU
 		{0CC4DF8D-4C6D-416E-98D9-27B318826490}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{0CC4DF8D-4C6D-416E-98D9-27B318826490}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{0CC4DF8D-4C6D-416E-98D9-27B318826490}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{0CC4DF8D-4C6D-416E-98D9-27B318826490}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{0CC4DF8D-4C6D-416E-98D9-27B318826490}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{0CC4DF8D-4C6D-416E-98D9-27B318826490}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -172,8 +176,6 @@ Global
 		{E9C139E7-8078-477F-8BC3-C7A6BB5445CD}.Release|Any CPU.Build.0 = Release|Any CPU
 		{E9C139E7-8078-477F-8BC3-C7A6BB5445CD}.Release|Any CPU.Build.0 = Release|Any CPU
 		{493B3F23-DB1B-4633-8C6D-BAD18C59A239}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{493B3F23-DB1B-4633-8C6D-BAD18C59A239}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{493B3F23-DB1B-4633-8C6D-BAD18C59A239}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{493B3F23-DB1B-4633-8C6D-BAD18C59A239}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{DCFF0D46-C19C-4E6D-984C-56A95781AE0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{DCFF0D46-C19C-4E6D-984C-56A95781AE0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{8EF48E6C-8219-4EE2-87C6-5176D8D092E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{8EF48E6C-8219-4EE2-87C6-5176D8D092E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{8EF48E6C-8219-4EE2-87C6-5176D8D092E6}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{8EF48E6C-8219-4EE2-87C6-5176D8D092E6}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{9BCD0764-9C16-4A2A-B153-C676FEF38887}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{9BCD0764-9C16-4A2A-B153-C676FEF38887}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -260,6 +262,42 @@ Global
 		{3028FEDC-E937-4432-B74E-4E29304CD5C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{3028FEDC-E937-4432-B74E-4E29304CD5C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{3028FEDC-E937-4432-B74E-4E29304CD5C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{3028FEDC-E937-4432-B74E-4E29304CD5C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{3028FEDC-E937-4432-B74E-4E29304CD5C0}.Release|Any CPU.Build.0 = Release|Any CPU
 		{3028FEDC-E937-4432-B74E-4E29304CD5C0}.Release|Any CPU.Build.0 = Release|Any CPU
+		{07F69457-3508-4DF4-9AB0-09659AC5C00F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{07F69457-3508-4DF4-9AB0-09659AC5C00F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{07F69457-3508-4DF4-9AB0-09659AC5C00F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{07F69457-3508-4DF4-9AB0-09659AC5C00F}.Release|Any CPU.Build.0 = Release|Any CPU
+		{941E4206-4260-4363-A1A0-A7D2E641CE4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{941E4206-4260-4363-A1A0-A7D2E641CE4F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{941E4206-4260-4363-A1A0-A7D2E641CE4F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{941E4206-4260-4363-A1A0-A7D2E641CE4F}.Release|Any CPU.Build.0 = Release|Any CPU
+		{3061E7B1-ABE2-4E14-A650-CBC42450F21F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{3061E7B1-ABE2-4E14-A650-CBC42450F21F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{3061E7B1-ABE2-4E14-A650-CBC42450F21F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{3061E7B1-ABE2-4E14-A650-CBC42450F21F}.Release|Any CPU.Build.0 = Release|Any CPU
+		{23A9B33D-118E-4BCE-85FB-0AAC6E4D15B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{23A9B33D-118E-4BCE-85FB-0AAC6E4D15B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{23A9B33D-118E-4BCE-85FB-0AAC6E4D15B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{23A9B33D-118E-4BCE-85FB-0AAC6E4D15B6}.Release|Any CPU.Build.0 = Release|Any CPU
+		{B8DFAB77-3FD1-4FFF-A018-215EFC73D916}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{B8DFAB77-3FD1-4FFF-A018-215EFC73D916}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{B8DFAB77-3FD1-4FFF-A018-215EFC73D916}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B8DFAB77-3FD1-4FFF-A018-215EFC73D916}.Release|Any CPU.Build.0 = Release|Any CPU
+		{8044BAB5-5EF5-45FE-B819-18BDCC914C1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{8044BAB5-5EF5-45FE-B819-18BDCC914C1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{8044BAB5-5EF5-45FE-B819-18BDCC914C1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{8044BAB5-5EF5-45FE-B819-18BDCC914C1B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{B2C312C3-E1D6-4970-BBFF-FA2E47ED505C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{B2C312C3-E1D6-4970-BBFF-FA2E47ED505C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{B2C312C3-E1D6-4970-BBFF-FA2E47ED505C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B2C312C3-E1D6-4970-BBFF-FA2E47ED505C}.Release|Any CPU.Build.0 = Release|Any CPU
+		{54C073D4-88F8-46D2-9EDB-86C0A7819968}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{54C073D4-88F8-46D2-9EDB-86C0A7819968}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{54C073D4-88F8-46D2-9EDB-86C0A7819968}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{54C073D4-88F8-46D2-9EDB-86C0A7819968}.Release|Any CPU.Build.0 = Release|Any CPU
+		{A0424CAD-F2F5-4A2A-A638-F5457BD098C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{A0424CAD-F2F5-4A2A-A638-F5457BD098C6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{A0424CAD-F2F5-4A2A-A638-F5457BD098C6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A0424CAD-F2F5-4A2A-A638-F5457BD098C6}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	EndGlobalSection
 	GlobalSection(NestedProjects) = preSolution
 	GlobalSection(NestedProjects) = preSolution
 		{0EF3CAB9-7361-472C-8789-D17D4EA2DEBB} = {D914C08C-5F1A-4E13-AAA6-F25E8C9748E2}
 		{0EF3CAB9-7361-472C-8789-D17D4EA2DEBB} = {D914C08C-5F1A-4E13-AAA6-F25E8C9748E2}
@@ -267,9 +305,6 @@ Global
 		{9C7FFCAD-DDC1-4B69-9B39-30FD4A566CCB} = {AEB5E9CA-91FB-45DA-A9BF-7E286710C8EF}
 		{9C7FFCAD-DDC1-4B69-9B39-30FD4A566CCB} = {AEB5E9CA-91FB-45DA-A9BF-7E286710C8EF}
 		{4DC33EEF-4FD2-4038-BB0C-61E1B833A6B4} = {D914C08C-5F1A-4E13-AAA6-F25E8C9748E2}
 		{4DC33EEF-4FD2-4038-BB0C-61E1B833A6B4} = {D914C08C-5F1A-4E13-AAA6-F25E8C9748E2}
 		{493B3F23-DB1B-4633-8C6D-BAD18C59A239} = {E118E6FE-67E7-4472-A8D7-E7F470E66131}
 		{493B3F23-DB1B-4633-8C6D-BAD18C59A239} = {E118E6FE-67E7-4472-A8D7-E7F470E66131}
-		{DCFF0D46-C19C-4E6D-984C-56A95781AE0B} = {E118E6FE-67E7-4472-A8D7-E7F470E66131}
-		{61403ACE-FEA3-49E5-A916-68C0FADCFBE6} = {E118E6FE-67E7-4472-A8D7-E7F470E66131}
-		{025BE1C7-EC9D-452A-9BA4-1F1CF31431FB} = {E118E6FE-67E7-4472-A8D7-E7F470E66131}
 		{0CC4DF8D-4C6D-416E-98D9-27B318826490} = {D914C08C-5F1A-4E13-AAA6-F25E8C9748E2}
 		{0CC4DF8D-4C6D-416E-98D9-27B318826490} = {D914C08C-5F1A-4E13-AAA6-F25E8C9748E2}
 		{B2402415-02BA-41D1-8A6A-81B361DCE048} = {E118E6FE-67E7-4472-A8D7-E7F470E66131}
 		{B2402415-02BA-41D1-8A6A-81B361DCE048} = {E118E6FE-67E7-4472-A8D7-E7F470E66131}
 		{B6AAC494-8D5E-4378-8305-84EC80C0A358} = {D914C08C-5F1A-4E13-AAA6-F25E8C9748E2}
 		{B6AAC494-8D5E-4378-8305-84EC80C0A358} = {D914C08C-5F1A-4E13-AAA6-F25E8C9748E2}
@@ -304,5 +339,14 @@ Global
 		{8B147D8C-BDF5-4C04-8891-15014451CC63} = {E118E6FE-67E7-4472-A8D7-E7F470E66131}
 		{8B147D8C-BDF5-4C04-8891-15014451CC63} = {E118E6FE-67E7-4472-A8D7-E7F470E66131}
 		{57860CCA-903B-4871-89E8-A674D3EE4446} = {E118E6FE-67E7-4472-A8D7-E7F470E66131}
 		{57860CCA-903B-4871-89E8-A674D3EE4446} = {E118E6FE-67E7-4472-A8D7-E7F470E66131}
 		{3028FEDC-E937-4432-B74E-4E29304CD5C0} = {E118E6FE-67E7-4472-A8D7-E7F470E66131}
 		{3028FEDC-E937-4432-B74E-4E29304CD5C0} = {E118E6FE-67E7-4472-A8D7-E7F470E66131}
+		{07F69457-3508-4DF4-9AB0-09659AC5C00F} = {E118E6FE-67E7-4472-A8D7-E7F470E66131}
+		{941E4206-4260-4363-A1A0-A7D2E641CE4F} = {E118E6FE-67E7-4472-A8D7-E7F470E66131}
+		{3061E7B1-ABE2-4E14-A650-CBC42450F21F} = {E118E6FE-67E7-4472-A8D7-E7F470E66131}
+		{23A9B33D-118E-4BCE-85FB-0AAC6E4D15B6} = {E118E6FE-67E7-4472-A8D7-E7F470E66131}
+		{B8DFAB77-3FD1-4FFF-A018-215EFC73D916} = {E118E6FE-67E7-4472-A8D7-E7F470E66131}
+		{8044BAB5-5EF5-45FE-B819-18BDCC914C1B} = {E118E6FE-67E7-4472-A8D7-E7F470E66131}
+		{B2C312C3-E1D6-4970-BBFF-FA2E47ED505C} = {E118E6FE-67E7-4472-A8D7-E7F470E66131}
+		{54C073D4-88F8-46D2-9EDB-86C0A7819968} = {E118E6FE-67E7-4472-A8D7-E7F470E66131}
+		{A0424CAD-F2F5-4A2A-A638-F5457BD098C6} = {E118E6FE-67E7-4472-A8D7-E7F470E66131}
 	EndGlobalSection
 	EndGlobalSection
 EndGlobal
 EndGlobal